Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 27, 2026

Recomendamos o uso de ALB Ingresses para rotear o tráfego de Serviços do Knative em aplicações web de grande escala, aplicações que exigem roteamento de tráfego refinado ou Auto Scaling e aplicações com requisitos complexos de roteamento para requisições HTTP/HTTPS. O ALB opera na camada de aplicação e suporta protocolos como HTTP, HTTPS e Quick UDP Internet Connections (QUIC). O ALB oferece alta elasticidade e processa grandes volumes de tráfego de rede na Camada 7. Os ALB Ingresses funcionam como um gateway totalmente gerenciado, livre de O&M, com suporte a Auto Scaling e múltiplas regras de canary release.

Pré-requisitos

  • O Knative está implantado no cluster. Para mais informações, consulte Implantar e gerenciar componentes do Knative.

  • O controlador de ALB Ingress está instalado. Para mais informações, consulte Gerencie o controlador de ALB Ingress.

  • Em clusters que utilizam o plugin de rede Flannel, exponha os serviços do Knative via tipo de serviço NodePort. Para ativar esse comportamento, adicione o parâmetro eni: false no ConfigMap config-network.

    1. Abra o arquivo config-network.yaml para edição.

      kubectl -n knative-serving edit configmap config-network
    2. No editor aberto, adicione a linha eni: false abaixo da seção data, conforme mostrado abaixo:

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

Etapa 1: Implantar um ALB Ingress

Ao implantar um ALB Ingress no Knative, use a instância de ALB criada automaticamente pelo Knative ou especifique uma instância de ALB existente.

Método 1: Crie automaticamente uma instância de ALB ao implantar um ALB Ingress

Configure um ALB Ingress durante a implantação do Knative. Caso o Knative já esteja implantado, modifique o arquivo de configuração do Knative para definir um ALB Ingress.

Configure um ALB Ingress ao implantar o Knative

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

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

  3. Na aba Components, clique em Deploy Knative. Na página Deploy Knative, selecione ALB e escolha pelo menos dois vSwitches. Siga as instruções na página para implantar o Knative.

    Para mais informações sobre como criar vSwitches, consulte Criar e gerenciar um vSwitch.

Modifique o arquivo de configuração do Knative para configurar um ALB Ingress

Se o Knative já estiver implantado, modifique o arquivo de configuração do Knative para especificar um ALB Ingress. Para mais informações sobre como implantar o Knative, consulte Implantar o Knative em um cluster ACK e Implantar o Knative em um cluster ACK Serverless.

  1. Execute o comando a seguir para modificar o arquivo config-network.yaml:

    kubectl -n knative-serving edit configmap config-network
  2. Utilize o modelo a seguir para modificar e salvar o arquivo config-network.yaml.

    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 ALB Ingresses, consulte Regiões e zonas do ALB.

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # Specify the ALB Ingress controller. 
      vswitch-ids: vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38**** # Replace with the IDs of the two vSwitches that you created in different zones. The system automatically binds the vSwitches when you create an ALB instance. 
      intranet: "true" # Create an internal ALB instance.
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

Método 2: Usar uma instância de ALB existente para configurar um ALB Ingress

Modifique o arquivo de configuração do Knative para configurar um ALB Ingress utilizando uma instância de ALB existente.

  1. Execute o comando a seguir para modificar o arquivo config-network.yaml:

    kubectl -n knative-serving edit configmap config-network
  2. Modifique e salve o arquivo config-network.yaml com base no modelo a seguir.

    Altere ingress.class: alb.ingress.networking.knative.dev no arquivo de configuração e defina albconfig como um ALB Ingress existente. Não é necessário configurar o parâmetro vswitch-ids.

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # Specify the ALB Ingress controller. 
      albconfig: alb-dev-albconfig # Specify the name of an existing, public-facing ALB instance to reuse.
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

Etapa 2: Usar o ALB Ingress para acessar um Serviço

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

  2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em 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 a seguir para o editor de código e clique em Create.

    O modelo cria um Serviço chamado helloworld-go.

    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 the sample region with your actual region.
            env:
            - name: TARGET
              value: "Knative"
  4. Na página Services, anote o nome de domínio e o endereço IP do gateway do Serviço helloworld-go nas colunas Default Domain e Gateway, respectivamente.

  5. Execute o comando a seguir para acessar o Serviço chamado helloworld-go:

    curl -H "Host: helloworld-go.default.example.com" http://alb-******.cn-beijing.alb.aliyuncs.com	 # Replace the IP address and domain name with the actual values.

    Saída esperada:

    Hello Knative!

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

O Knative oferece recursos de monitoramento prontos para uso. Na página Knative, clique na aba Monitoring Dashboards para visualizar os dados de monitoramento do Serviço especificado. Para mais informações sobre como ativar o painel de monitoramento do Knative, consulte Visualizar o painel de monitoramento de serviços do Knative.

Etapas relacionadas

Configure acesso via HTTPS

Para proteger seus Serviços do Knative com Transport Layer Security (TLS), especifique um certificado no ALBConfig. Ative o acesso TLS em um Serviço do Knative usando a anotação knative.k8s.alibabacloud/tls: "true". Exemplo:

Nota

Para gerenciar um certificado como Secret, consulte Configure acesso HTTPS.

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 the sample region with your actual region.
        env:
        - name: TARGET
          value: "Knative"

Execute o comando a seguir para acessar o Serviço HTTPS:

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

Saída esperada:

Hello Knative!

Redirecionar requisições HTTP para a porta HTTPS 443

Redirecione requisições HTTP para a porta HTTPS 443 em um Serviço do Knative usando a anotação networking.knative.dev/http-protocol. Exemplo:

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 the sample region with your actual region.
        env:
        - name: TARGET
          value: "Knative"

Adicionar um registro CNAME

Para facilitar o acesso aos recursos de rede, utilize um registro CNAME para mapear um nome de domínio personalizado ao nome de domínio de uma instância de ALB. Para mais informações, consulte Configure um registro CNAME para uma instância de ALB.

Referências