Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Use Knative on ASM to deploy a serverless application

Última atualização: Jun 28, 2026

Service Mesh (ASM) integra-se estreitamente aos recursos do componente Knative Serving implantado em um cluster Container Service for Kubernetes (ACK) ou ACK Serverless. Essa integração simplifica a implantação e o gerenciamento de aplicações serverless em diversos ambientes de cluster. O Knative no ASM oferece uma solução completa para construir, implantar e gerenciar rapidamente aplicações baseadas em contêineres, especialmente quando há necessidade de dimensionamento automático e faturamento conforme o uso. Essa solução acelera a implantação e o dimensionamento de aplicações serverless, aumentando a eficiência do desenvolvimento e a elasticidade dos serviços. Este tópico descreve como usar o Knative no ASM para implantar um Knative Service.

Pré-requisitos

  • Uma instância do ASM versão 1.16.3.50 ou posterior deve estar criada, com um cluster ACK ou ACK Serverless cluster adicionado a ela. Para mais informações, consulte Criar uma instância do ASM e Adicionar um cluster a uma instância do ASM.

    Importante
    • Ao criar uma instância do ASM, certifique-se de que a opção Allow data plane cluster KubeAPI to access Istio CR esteja selecionada na seção Resource configuration. Essa caixa de seleção vem marcada por padrão, permitindo o acesso aos recursos do Istio por meio da API Kubernetes dos clusters no plano de dados.

    • O acesso ao servidor de API do cluster ACK ou ACK Serverless cluster deve estar habilitado para suportar acesso rápido.

    • A instância do ASM e o cluster ACK ou ACK Serverless cluster precisam estar na mesma virtual private cloud (VPC), na mesma região e utilizar o mesmo vSwitch.

  • Um gateway de entrada deve estar criado para o cluster. O exemplo a seguir utiliza um gateway de entrada do ASM. Para mais informações, consulte Criar um gateway de entrada.

    Nota
    • Não é mais necessário criar gateways de entrada manualmente para instâncias do ASM versão V1.21.6.84 ou posterior.

    • O gateway do ASM permite dividir o tráfego entre diferentes Knative Revisions, acessar serviços Google Remote Procedure Call (gRPC), definir configurações de timeout e nova tentativa, montar certificados Transport Layer Security (TLS) e realizar autenticação e autorização externas. Para mais informações, consulte Gateways do ASM.

Etapa 1: Instalar o Knative

Para uma instância do ASM com versão anterior a 1.18.2.104

  1. Implante o componente Knative Serving no cluster ACK ou ACK Serverless. Selecione Kourier para o parâmetro Gateway.

    • Para mais informações sobre como implantar o Knative em um cluster ACK, consulte Implantar e gerenciar componentes do Knative.

    • Para mais informações sobre como implantar o Knative em um cluster ACK Serverless, consulte Implantar o Knative.

      Importante

      Após a instalação do componente Knative Serving, clique em Components. Na seção Add-on Component, desinstale o componente Kourier.

  2. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  3. Na página Mesh Management, clique em Mesh Management. No painel de navegação à esquerda, escolha Ecosystem > Knative on ASM.

  4. Na página Knative on ASM, clique em Enable Knative on ASM.

Para uma instância do ASM com versão entre 1.18.2.104 e 1.21.6.83

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em Mesh Management. No painel de navegação à esquerda, escolha Ecosystem > Knative on ASM.

  3. Na página Knative on ASM, selecione uma versão do Knative conforme suas necessidades de negócio e clique em Enable Knative on ASM.

  4. Implante o Knative no cluster ACK ou ACK Serverless. Selecione ASM para o parâmetro Gateway.

Para uma instância do ASM com versão 1.21.6.84 ou posterior

Importante

Se a versão da sua instância do ASM for 1.21.6.84 ou posterior, não é mais necessário ativar o recurso Knative on ASM no console do ASM.

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em Clusters. Em seguida, no painel de navegação à esquerda, escolha Applications > Knative.

  3. Na aba Components da página Knative, clique em Deploy Knative. Na seção Gateway, clique em ASM e depois clique em Deploy.

    Após a instalação do Knative, você poderá utilizá-lo com o ASM.

    Nota

    Quando aparecer uma mensagem indicando que o Knative foi instalado, verifique se o gateway de entrada está criado e funcionando corretamente antes de prosseguir com a implantação de um Knative Service.

Etapa 2: Implantar um Knative Service

O Knative no ASM permite implantar um Knative Service pelo console do ACK ou por meio de um arquivo de configuração YAML. Escolha o método de implantação mais adequado às suas necessidades.

Método 1: Implantar um Knative Service pelo console do ACK

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em Clusters. No painel de navegação à esquerda, clique em Applications > Knative.

  3. Na página Knative, clique em Services. No canto superior direito, clique em Create Service, defina os parâmetros necessários e clique em Create.

    Para mais informações sobre os parâmetros, consulte Início rápido: Implantar um serviço Knative.

    Parâmetro

    Descrição

    Exemplo

    Namespace

    Selecione o namespace ao qual o Service pertence.

    default

    Service Name

    Insira um nome para o Service.

    helloworld-go

    Image Name

    Para selecionar uma imagem, clique em Select Image. Na caixa de diálogo Select Image, escolha uma imagem e clique em OK. É possível especificar uma imagem em um registro privado. O endereço da imagem deve seguir o formato domainname/namespace/imagename:tag.

    registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go

    Image Version

    Para selecionar uma versão da imagem, clique em Select Image Version. Na caixa de diálogo Image Version, escolha a versão desejada e clique em OK.

    73fbdd56

    Access Protocol

    Os protocolos HTTP e gRPC são suportados.

    HTTP

    Container Port

    Especifique a porta do contêiner que deseja expor. O número da porta deve estar no intervalo de 1 a 65535.

    8080

    Environment Variables

    Clique em Advanced. Na seção Environment Variables, clique em Add para configurar variáveis de ambiente em pares chave-valor.

    Type: Selecione Custom.

    Variable Key: Defina como TARGET.

    Value/ValueFrom: Defina como Knative.

Método 2: Implantar um Knative Service usando um arquivo de configuração YAML

  1. Salve o conteúdo abaixo em um arquivo chamado helloworld-go.yaml.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
      annotations:
        knative.k8s.alibabacloud/tls: "false"
    spec:
      template:
        spec:
          containers:
            - image: registry.cn-hangzhou.aliyuncs.com/acs/helloworld-go:160e4dc8
              ports:
                - containerPort: 8080
              env:
                - name: TARGET
                  value: "Knative"
  2. Conecte-se ao cluster ACK usando kubectl. Execute o comando a seguir para criar um Knative Service e aguarde a conclusão da criação.

    kubectl apply -f helloworld-go.yaml
  3. Execute o comando a seguir para visualizar a lista de Knative Services:

    kubectl get ksvc

    O sistema exibirá informações semelhantes à saída abaixo:

    NAME            URL                                        LATESTCREATED         LATESTREADY           READY   REASON
    helloworld-go   http://helloworld-go.default.example.com   helloworld-go-00001   helloworld-go-00001   True

Método 3: Criar um Knative Service usando um modelo

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em Clusters. Em seguida, no painel de navegação à esquerda, escolha Applications > Knative.

  3. Na aba Services da página Knative, selecione default na lista suspensa Namespace, clique em Create from Template, copie o conteúdo YAML abaixo para o editor de código e clique em Create para criar um Service chamado helloworld-go.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73 fbdd56 # Replace {REGION-ID} with the region where your cluster resides. 
            env:
            - name: TARGET
              value: "Knative"

Etapa 3: Consultar o endereço do gateway

Método 1: Consultar o endereço do gateway pelo console do ACK

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em Clusters. No painel de navegação à esquerda, clique em Applications > Knative.

  3. Clique em Services. Na lista de Services, clique em Services cujo endereço de gateway você deseja consultar para ver seus detalhes. Na seção Basic Information, visualize e obtenha as informações de Gateway e Default Domain.

Método 2: Consultar o endereço do gateway pelo console do ASM

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em Mesh Management. No painel de navegação à esquerda, escolha ASM Gateways > Ingress Gateway.

  3. Na seção Service address da página Ingress Gateway, visualize e anote o endereço do gateway.

Etapa 4: Acessar o Knative Service

Após a implantação do Knative Service, aponte seu nome de domínio para o endereço IP de um gateway para associar o Service a ele. Isso permite acessar o Knative Service por meio de sua URL.

  1. Na página Services, obtenha o endereço do gateway do serviço helloworld-go na coluna Gateway.

  2. Execute o comando a seguir para acessar o serviço helloworld-go:

    curl -H "host: helloworld-go.default.example.com" http://39.XX.XX.XX # Replace the IP address and domain name with the actual values.

    Saída esperada:

    Hello Knative!

    Essa saída indica que o acesso ao serviço foi bem-sucedido.

Referências

  • O nome de domínio padrão de um Knative Service é example.com. O Knative no ASM permite configurar um nome de domínio personalizado como padrão. Para mais informações, consulte Definir um nome de domínio personalizado no Knative on ASM.

  • Um gateway do ASM suporta HTTPS e permite carregar certificados dinamicamente. Ao usar o Knative no ASM, utilize um gateway do ASM para acessar o Knative Service via HTTPS. Para mais informações, consulte Acessar serviço Knative via HTTPS com um gateway do ASM.

  • O Knative no ASM possibilita realizar uma canary release baseada em divisão de tráfego para um Knative Service. Ao criar um Knative Service, o Knative gera automaticamente a primeira Revision. Sempre que a configuração do serviço muda, uma nova Revision é criada e a porcentagem de tráfego distribuída entre as Revisions é ajustada para implementar a canary release. Para mais informações, consulte Realizar uma canary release baseada em divisão de tráfego para um Knative Service usando o Knative on ASM.

  • O Knative Serving adiciona o contêiner Queue Proxy a cada pod. Esse contêiner envia as métricas de concorrência dos contêineres de aplicação para o Knative Pod Autoscaler (KPA). Ao receber essas métricas, o KPA ajusta automaticamente o número de pods provisionados para um Deployment com base na quantidade de requisições simultâneas e nos algoritmos de dimensionamento automático correspondentes. Para mais informações, consulte Dimensionar serviços automaticamente com base no tráfego.