Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use ALB Ingress to route traffic in Knative

Última atualização: Jun 27, 2026

O ALB (Application Load Balancer) Ingress é um gateway totalmente gerenciado e livre de O&M que roteia tráfego da camada 7 para Serviços do Knative. Ele oferece suporte a HTTP, HTTPS e QUIC (Quick UDP Internet Connections), além de fornecer dimensionamento automático e múltiplas estratégias de canary release — sendo ideal para aplicações web em grande escala, roteamento de tráfego refinado e requisitos complexos de roteamento HTTP/HTTPS.

Pré-requisitos

Antes de começar, certifique-se de que:

Se o seu cluster utilizar o plugin de rede Flannel, os Serviços do Knative devem ser expostos via tipo de serviço NodePort. Adicione eni: false ao ConfigMap config-network antes de prosseguir:

  1. Abra o ConfigMap para edição:

    kubectl -n knative-serving edit configmap config-network
  2. Adicione eni: false na seção data:

    apiVersion: v1
    data:
      ...
      eni: false  # Add this line.
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

Etapa 1: Configure o ALB Ingress

Escolha um dos métodos abaixo, dependendo se você deseja que o Knative crie uma nova instância do ALB ou reutilize uma existente.

Método 1: Crie automaticamente uma instância do ALB

Utilize este método caso não possua uma instância do ALB existente. O Knative cria e gerencia a instância do ALB para você.

Opção A: Configure durante a implantação do Knative

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

  2. Localize o cluster desejado e clique no nome dele. No painel de navegação à esquerda, escolha Applications > Knative.

  3. Na aba Components, clique em Deploy Knative. Na página Deploy Knative, selecione ALB e escolha pelo menos dois vSwitches em zonas diferentes. Siga as instruções na página para concluir a implantação. Para informações sobre a criação de vSwitches, consulte Criar e gerenciar um vSwitch.

Opção B: Modifique uma implantação existente do Knative

Caso o Knative já esteja implantado, execute o comando a seguir para abrir o ConfigMap para edição:

kubectl -n knative-serving edit configmap config-network

Modifique ingress.class: alb.ingress.networking.knative.dev, configure o parâmetro vswitch-ids, salve o arquivo config-network e saia. Para mais informações sobre as regiões e zonas que suportam o ALB Ingress, consulte Regiões e zonas.

apiVersion: v1
data:
  ...
  ingress.class: alb.ingress.networking.knative.dev  # Specifies the ALB Ingress controller.
  vswitch-ids: vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38****  # Two vSwitch IDs in different zones. The system automatically binds the vSwitches when creating the ALB instance.
  intranet: "true"  # Creates an internal ALB instance.
  internet: "true"  # Default true. Creates a public ALB instance. Set to "false" to disable the public ALB.
  ...
kind: ConfigMap
metadata:
  name: config-network
  namespace: knative-serving
  ...

Importante: Se você ativar apenas uma instância privada (intranet) do ALB, configure os Serviços do Knative para acesso interno definindo o rótulo networking.knative.dev/visibility: cluster-local. Para mais informações sobre a implantação do Knative, consulte Implantar o Knative em um cluster ACK e Implantar o Knative em um cluster ACK Serverless.

Método 2: Usar uma instância existente do ALB

Este método é indicado quando você já possui uma instância pública do ALB e deseja que o Knative roteie o tráfego através dela. Não é necessário configurar vswitch-ids.

Execute o comando a seguir para abrir o ConfigMap para edição:

kubectl -n knative-serving edit configmap config-network

Modifique ingress.class: alb.ingress.networking.knative.dev e defina albconfig como o nome de um recurso ALBConfig existente (por exemplo, alb-dev-albconfig):

apiVersion: v1
data:
  ...
  ingress.class: alb.ingress.networking.knative.dev  # Specifies the ALB Ingress controller.
  albconfig: alb-dev-albconfig  # Name of the existing ALBConfig resource.
  ...
kind: ConfigMap
metadata:
  name: config-network
  namespace: knative-serving
  ...

Etapa 2: Acessar um Serviço do Knative através do ALB Ingress

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

  2. Localize o cluster desejado e clique no nome dele. No painel de navegação à esquerda, escolha Applications > Knative.

  3. Na aba Services, selecione default na lista suspensa Namespace e clique em Create from Template. Cole o YAML a seguir no editor e clique em Create:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56  # Replace with your region.
            env:
            - name: TARGET
              value: "Knative"

    Isso cria um Serviço do Knative chamado helloworld-go.

  4. Na página Services, anote o nome de domínio e o endereço IP do gateway nas colunas Default Domain e Gateway referentes ao Serviço helloworld-go.

  5. Execute o comando a seguir para verifique o acesso:

    Este comando utiliza um cabeçalho Host porque o DNS ainda não está configurado. Para acessar o Serviço diretamente pelo nome de domínio, configure um registro CNAME conforme descrito em Adicionar um registro CNAME .
    curl -H "Host: helloworld-go.default.example.com" http://alb-******.cn-beijing.alb.aliyuncs.com

    Substitua o valor do cabeçalho Host e o endereço do ALB pelos valores reais obtidos na etapa 4. Saída esperada:

    Hello Knative!

(Opcional) Etapa 3: Visualize o painel de monitoramento do Knative

O Knative oferece monitoramento pronto para uso. Na página Knative, clique na aba Monitoring Dashboards para visualizar as métricas dos seus Serviços. Para mais informações, consulte Visualize o painel de monitoramento do Knative.

Mais operações

Ative HTTPS com TLS

Para proteger seus Serviços do Knative com Transport Layer Security (TLS), adicione a anotação a seguir ao Serviço do Knative. Certifique-se primeiro de ter um certificado especificado no ALBConfig.

annotations:
  knative.k8s.alibabacloud/tls: "true"

Exemplo completo:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld
  namespace: default
  annotations:
    knative.k8s.alibabacloud/tls: "true"
spec:
  template:
    spec:
      containers:
      - image: registry-vpc.cn-shenzhen.aliyuncs.com/knative-sample/helloworld-go:73fbdd56  # Replace with your region.
        env:
        - name: TARGET
          value: "Knative"

Para gerencie um certificado como Secret, consulte Criar um certificado gerenciado como Secret.

Verifique o acesso via HTTPS:

curl -H "Host: helloworld.default.knative.top" https://alb-ppcate4ox6ge9m1wik.cn-shenzhen.alb.aliyuncs.com -k

Saída esperada:

Hello Knative!

Redirecionar HTTP para HTTPS

Para redirecionar requisições HTTP para HTTPS no nível de cada Serviço, adicione a seguinte anotação ao seu Serviço do Knative:

annotations:
  networking.knative.dev/http-protocol: redirected

Exemplo completo:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
  annotations:
    networking.knative.dev/http-protocol: redirected
spec:
  template:
    spec:
      containers:
      - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56  # Replace with your region.
        env:
        - name: TARGET
          value: "Knative"

Adicionar um registro CNAME

Mapeie um nome de domínio personalizado para o domínio da instância do ALB adicionando um registro CNAME. Isso permite que os usuários acessem seu Serviço do Knative diretamente pelo nome de domínio. Para mais informações, consulte Configure um registro CNAME para uma instância do ALB.

Referência de parâmetros do config-network

A tabela a seguir lista os parâmetros do ConfigMap config-network utilizados neste documento:

Parâmetro

Descrição

Método

ingress.class

Especifica o controlador de ingress. Defina como alb.ingress.networking.knative.dev para ALB.

Ambos

vswitch-ids

IDs separados por vírgula de dois vSwitches em zonas diferentes. Obrigatório ao criar uma nova instância do ALB.

Apenas Método 1

intranet

Defina como "true" para criar uma instância interna do ALB.

Apenas Método 1

albconfig

Nome de um recurso ALBConfig existente a ser reutilizado.

Apenas Método 2

Próximos passos