Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use the Kourier gateway in Knative

Última atualização: Jun 27, 2026

O Kourier é um gateway de entrada nativo do Knative, leve e de código aberto, desenvolvido sobre o Envoy e mantido pela comunidade Knative. Implante-o para rotear tráfego HTTP e HTTPS entre revisões do Knative, configure serviços gRPC, defina timeouts e retentativas, gerencie certificados TLS (Transport Layer Security) e integre serviços externos de autorização.

Pré-requisitos

Antes de começar, verifique se você possui:

Implantar o gateway Kourier

Implante o Kourier durante a configuração inicial do Knative (pelo console ACK) ou após a implantação (usando kubectl).

Para uma nova instalação do Knative

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

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

  3. Na aba Components, localize Kourier na seção Add-on Component e clique em Deploy na coluna Actions. Na caixa de diálogo exibida, confirme Confirm. A coluna Status do Kourier mudará para Deployed.

Para uma instalação existente do Knative

  1. Execute o comando a seguir para abrir o ConfigMap config-network no seu editor padrão:

    kubectl -n knative-serving edit configmap config-network
  2. No editor, localize a chave ingress.class na seção data e altere seu valor para kourier.ingress.networking.knative.dev, conforme mostrado abaixo:

    apiVersion: v1
    data:
      ...
      ingress.class: kourier.ingress.networking.knative.dev # Use the Kourier gateway
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
  3. Salve e feche o arquivo. O Kubernetes aplica a alteração automaticamente.

(Opcional) Configure um CLB interno

Por padrão, o Kourier cria um Classic Load Balancer (CLB) voltado para a Internet. Para usar um CLB interno, adicione a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet" ao manifesto do Service do Kourier:

apiVersion: v1
kind: Service
metadata:
  name: kourier
  namespace: knative-serving
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  ...
spec:
  ports:
    - name: http2
      port: 80
      protocol: TCP
      targetPort: 8080
    - name: https
      port: 443
      protocol: TCP
      targetPort: 8443
  selector:
    app: 3scale-kourier-gateway
  type: LoadBalancer
O valor padrão da anotação é internet . Defina-o como intranet para alternar para um CLB interno.

Acessar um Service do Knative pelo gateway Kourier

Os passos a seguir utilizam um Service de exemplo do Knative chamado helloworld-go para demonstrar o acesso via HTTP e HTTPS. Implante o Service primeiro e depois escolha o protocolo necessário.

Os comandos curl abaixo passam o nome de domínio no cabeçalho Host porque o DNS não é configurado por padrão. Se você configurar o DNS para o gateway, poderá omitir a flag -H "Host:" .

Implantar o serviço de exemplo

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

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

  3. Na aba Services, defina Namespace como default, 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.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
            env:
            - name: TARGET
              value: "Knative"

    Quando Status exibir Created, o Service estará pronto.

  4. Na aba Services, anote o nome de domínio na coluna Default Domain e o endereço IP do gateway na coluna Gateway referentes ao Service helloworld-go. Você precisará desses valores nas próximas etapas.

Acesso via HTTP

Execute o comando a seguir, substituindo o endereço IP do gateway e o nome de domínio pelos valores que você anotou:

curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX

Saída esperada:

Hello Knative!

Acesso via HTTPS

Etapa 1: Gerar um certificado TLS.

Execute os comandos a seguir para criar um certificado autoassinado:

openssl genrsa -out tls.key 4096
openssl req -subj "/CN=*.example.com/L=*.example.com" -sha256 -new -key tls.key -out tls.csr
echo subjectAltName = DNS:helloworld-go.default.example.com,DNS:helloworld-go.default.example.cn > extfile.cnf
openssl x509 -req -days 3650 -sha256 -in tls.csr -signkey tls.key -out tls.crt -extfile extfile.cnf

Isso gera uma chave RSA de 4096 bits e um certificado válido por 3650 dias, com Subject Alternative Names para helloworld-go.default.example.com e helloworld-go.default.example.cn.

Etapa 2: Crie um Secret a partir do certificado.

kubectl -n knative-serving create secret tls kourier-cert --key tls.key --cert tls.crt

Etapa 3: Verifique se o Deployment net-kourier-controller existe.

kubectl get deployments -n knative-serving

Etapa 4: Configure o certificado no controller.

kubectl -n knative-serving edit deployment net-kourier-controller

Em spec.containers[].env, adicione as duas variáveis de ambiente a seguir:

...
spec:
  containers:
  - env:
    - name: CERTS_SECRET_NAMESPACE
      value: knative-serving
    - name: CERTS_SECRET_NAME
      value: kourier-cert
...

Parâmetro

Descrição

CERTS_SECRET_NAMESPACE

Namespace onde o Secret foi criado (knative-serving)

CERTS_SECRET_NAME

Nome do Secret (kourier-cert)

Etapa 5: Verifique se o pod do controller está em execução.

kubectl -n knative-serving get po

Saída esperada:

NAME                               READY   STATUS    RESTARTS   AGE
net-kourier-controller-******      1/1     Running   0          10s

Etapa 6: Acessar o Service via HTTPS.

curl -H "Host: helloworld-go.default.example.com" -k --cert tls.crt --key tls.key https://8.141.XX.XX

Saída esperada:

Hello Knative!

(Opcional) Visualize o painel de monitoramento do Knative

O Knative inclui monitoramento integrado. Na página Knative, clique em na aba Monitoring Dashboards para visualizar métricas dos seus Services. Para instruções de configuração, consulte Visualizar o painel de monitoramento do Knative.

Próximos passos