Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:configure alb listeners using albconfig

Última atualização: Jun 27, 2026

O campo listeners em um AlbConfig configura os listeners de um Application Load Balancer (ALB). Este tópico aborda o comportamento de atualização do campo listeners e demonstra como criar, configurar e excluir listeners.

Pré-requisitos

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

Parâmetros do listener

A tabela a seguir lista todos os parâmetros disponíveis em spec.listeners de um AlbConfig.

Parâmetro

Tipo

Padrão

Protocolos

Descrição

port

integer

—

HTTP, HTTPS, QUIC

Porta do listener. Obrigatório. Alterar este valor exclui o listener original e cria um novo.

protocol

string

—

HTTP, HTTPS, QUIC

Protocolo do listener. Obrigatório. Alterar este valor exclui o listener original e cria um novo.

certificates[].CertificateId

string

—

HTTPS

ID do certificado a atribuir ao listener.

certificates[].IsDefault

boolean

—

HTTPS

Indica se este é o certificado padrão.

caEnabled

boolean

false

HTTPS

Define se a verificação de certificado CA deve ser ativada.

securityPolicyId

string

—

HTTPS

ID da política de segurança TLS. Por exemplo, tls_cipher_policy_1_1.

requestTimeout

integer

60

HTTP, HTTPS

Tempo máximo (em segundos) de espera por uma resposta do backend antes de retornar HTTP 504. Valores válidos: 1–600.

tags[].key

string

—

—

Chave da tag.

tags[].value

string

—

—

Valor da tag.

gzipEnabled

boolean

—

HTTP, HTTPS

Controla a ativação da compactação de dados. true: compacta tipos de conteúdo específicos. false: desativa toda a compactação.

xForwardedForConfig.XForwardedForEnabled

boolean

true

HTTP, HTTPS

Define se o IP do cliente deve ser incluído no cabeçalho X-Forwarded-For. Sempre ativado; não pode ser desativado.

xForwardedForConfig.XForwardedForProtoEnabled

boolean

—

HTTP, HTTPS

Inclui o protocolo do listener nos cabeçalhos de solicitação encaminhados aos servidores backend.

xForwardedForConfig.XForwardedForSLBIdEnabled

boolean

—

HTTP, HTTPS

Adiciona o ID da instância SLB aos cabeçalhos de solicitação encaminhados aos servidores backend.

xForwardedForConfig.XForwardedForSLBPortEnabled

boolean

—

HTTP, HTTPS

Insere a porta de escuta nos cabeçalhos de solicitação encaminhados aos servidores backend.

xForwardedForConfig.XForwardedForClientSourceIpsEnabled

boolean

—

HTTP, HTTPS

Recupera o IP real do cliente a partir do cabeçalho X-Forwarded-For.

xForwardedForConfig.XForwardedForClientSourceIpsTrusted

string

—

HTTP, HTTPS

Lista separada por ponto e vírgula de endereços IP ou blocos CIDR de proxy confiáveis. Entra em vigor apenas quando XForwardedForClientSourceIpsEnabled é true.

aclConfig.aclType

string

—

HTTP, HTTPS

Tipo de ACL: White (lista de permissões) ou Black (lista de bloqueios).

aclConfig.aclEntries[]

string

—

HTTP, HTTPS

Blocos CIDR para controle de acesso. Cada entrada deve ser um bloco CIDR completo.

Comportamento de atualização do campo listeners

Como o campo listeners é um array, sua atualização ocorre por substituição completa: a nova configuração substitui integralmente a existente. Compreender esse comportamento ajuda a prever o resultado ao aplicar um AlbConfig atualizado.

Termos principais

  • Arquivo de configuração do objeto: O arquivo YAML aplicado, contendo o estado desejado do AlbConfig.

  • Arquivo de configuração existente: A configuração já em execução no cluster.

  • last-applied-configuration: Uma anotação do Kubernetes que registra a configuração anterior. Não é atualizada em tempo real.

Regras de atualização

Cenário

Na nova config

Na config existente

**Em last-applied-configuration**

Resultado

①

Sim

Sim

—

Mesclagem: aplica valores da nova configuração para atualizar o objeto existente.

②

Sim

Não

—

Criação: adiciona o novo listener.

③

Não

—

Sim

Exclusão: remove o listener. Pode redefinir para o valor padrão.

④

Não

Sim

Não

Remoção: exclui o listener da configuração existente.

Exemplo

O exemplo a seguir ilustra a aplicação das regras durante a atualização do campo listeners.

Nova configuração (arquivo de configuração do objeto):

listeners:
- port: 8001
  protocol: HTTP
- port: 8003
  protocol: HTTP
- port: 8005     # New — will be added
  protocol: HTTP

Configuração existente:

listeners:
- port: 8001
  protocol: HTTP
- port: 8002     # Missing from new config and in last-applied-configuration — will be deleted
  protocol: HTTP
- port: 8003
  protocol: HTTP
- port: 8004     # Missing from new config but not in last-applied-configuration — will be deleted
  protocol: HTTP

last-applied-configuration:

listeners:
- port: 8001
  protocol: HTTP
- port: 8002
  protocol: HTTP
- port: 8003
  protocol: HTTP

Resultado após aplicar a nova configuração:

listeners:
- port: 8001    # Meets condition ① — retained
  protocol: HTTP
- port: 8003    # Meets condition ① — retained
  protocol: HTTP
- port: 8005    # Meets condition ② — added
  protocol: HTTP
# port 8002 meets condition ③ — deleted
# port 8004 meets condition ④ — deleted

Criar um listener

Um listener atua como ponto de entrada pelo qual uma instância ALB recebe e distribui tráfego com base em informações da camada de aplicação. Os campos port e protocol identificam exclusivamente um listener.

Importante

Modificar port, protocol ou qualquer outra propriedade do listener exclui o listener original e cria um novo.

Listeners HTTP suportam WebSocket automaticamente. Nenhuma configuração adicional é necessária.

Opções de protocolo para protocol: HTTP, HTTPS, QUIC.

Console

  1. Faça login no console do Container Service e clique em Clusters no painel de navegação à esquerda.

  2. Clique no nome do cluster. No painel de navegação à esquerda, escolha Workloads > Custom Resources.

  3. Na aba Resource Object Browser, insira AlbConfig na caixa de pesquisa e clique no resultado AlbConfig.

  4. No painel AlbConfig, localize o recurso AlbConfig (nomeado alb por padrão) e clique em Edit YAML na coluna Actions.

  5. No painel View YAML, adicione os campos spec.listeners.port e spec.listeners.protocol e clique em OK.

    image

kubectl

Execute o comando a seguir para editar o AlbConfig:

kubectl edit albconfig <AlbConfig_Name>

Adicione o campo listeners em spec:

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
    # ... other config fields
  listeners:
  - port: 80
    protocol: HTTP   # Options: HTTP, HTTPS, QUIC

Configurar certificados HTTPS

Defina o campo certificates para atribuir um ou mais certificados a um listener HTTPS. O ALB define o primeiro certificado como padrão. Outros certificados são usados para criptografia de solicitações apenas se o certificado padrão expirar ou deixar de ser aplicável.

Se você não especificar um certificado, o listener não será criado imediatamente. Em vez disso, ele será criado após a associação de um Ingress e a descoberta automática de um certificado com base no nome de domínio. Para detalhes, consulte Configurar certificados HTTPS para comunicação criptografada .
listeners:
- caEnabled: false
  certificates:
  - CertificateId: 756****-cn-hangzhou   # Certificate ID
    IsDefault: true
  port: 443
  protocol: HTTPS

Configurar uma política de segurança TLS

Defina securityPolicyId para aplicar uma política de segurança TLS a um listener HTTPS. As políticas podem ser personalizadas ou predefinidas. Para mais informações, consulte Política de segurança TLS.

listeners:
- port: 443
  protocol: HTTPS
  securityPolicyId: tls_cipher_policy_1_1   # Security policy ID

Definir o tempo limite da solicitação

Configure requestTimeout para controlar por quanto tempo o Server Load Balancer (SLB) aguarda uma resposta de um servidor backend após receber uma solicitação do cliente. Caso nenhuma resposta seja retornada dentro do tempo limite, a instância SLB interrompe a espera e devolve um erro HTTP 504 ao cliente.

  • Padrão: 60 segundos

  • Valores válidos: 1–600 (inteiro, em segundos)

  • Para utilizar um valor acima de 600, solicite um aumento de cota no Quota Center.

listeners:
- port: 80
  protocol: HTTP
  requestTimeout: 60   # Seconds. Default: 60. Valid values: 1–600.

Adicionar tags ao listener

Use o campo tags para adicionar tags de chave-valor a um listener.

listeners:
- port: 80
  protocol: HTTP
  tags:
  - key: "key"
    value: "value1"

Ativar compactação de dados

Defina gzipEnabled para controlar se o ALB compacta os dados de resposta antes de encaminhá-los aos clientes.

  • true: Compacta respostas usando Brotli ou Gzip, dependendo do tipo de conteúdo.

  • false: Desativa a compactação para todos os tipos de conteúdo.

A compactação ocorre apenas quando Content-Length no cabeçalho de resposta excede 1.024 bytes. Os dois algoritmos funcionam da seguinte forma:

  • Brotli: Compacta todos os tipos de conteúdo.

  • Gzip: Compacta text/plain, text/css, application/javascript, application/x-javascript, application/rss+xml, application/atom+xml, application/xml e application/json.

O exemplo abaixo desativa a compactação:

listeners:
- port: 80
  protocol: HTTP
  gzipEnabled: false   # true: compress specific content types. false: disable all compression.

Configurar cabeçalhos X-Forwarded-For

Use o campo xForwardedForConfig para controlar quais informações o ALB inclui nos cabeçalhos de solicitação ao encaminhar tráfego para servidores backend.

Importante

Todos os parâmetros de xForwardedForConfig aplicam-se apenas a listeners HTTP e HTTPS.

Recuperar o endereço IP do cliente

XForwardedForEnabled permanece sempre ativo e não pode ser desativado. Quando habilitado, o ALB adiciona o IP de origem do cliente ao cabeçalho X-Forwarded-For.

listeners:
- port: 80
  protocol: HTTP
  xForwardedForConfig:
    XForwardedForEnabled: true

Recuperar o protocolo do listener

Defina XForwardedForProtoEnabled como true para incluir o protocolo do listener nos cabeçalhos encaminhados aos servidores backend.

listeners:
- port: 80
  protocol: HTTP
  xForwardedForConfig:
    XForwardedForProtoEnabled: true

Recuperar o ID da instância SLB

Configure XForwardedForSLBIdEnabled como true para inserir o ID da instância SLB nos cabeçalhos encaminhados aos servidores backend.

listeners:
- port: 80
  protocol: HTTP
  xForwardedForConfig:
    XForwardedForSLBIdEnabled: true   # true: include SLB instance ID. false: omit it.

Recuperar a porta de escuta

Defina XForwardedForSLBPortEnabled como true para incluir a porta de escuta nos cabeçalhos encaminhados aos servidores backend.

listeners:
- port: 80
  protocol: HTTP
  xForwardedForConfig:
    XForwardedForSLBPortEnabled: true   # true: include listening port. false: omit it.

Recuperar o IP real do cliente atrás de proxies

Quando as solicitações passam por proxies, o cabeçalho X-Forwarded-For pode conter uma cadeia de endereços IP. Defina XForwardedForClientSourceIpsEnabled como true para permitir que o ALB identifique o IP real do cliente percorrendo a lista da direita para a esquerda e selecionando o primeiro IP que não esteja na lista de confiáveis.

Use XForwardedForClientSourceIpsTrusted para especificar quais IPs de proxy são confiáveis. Isso viabiliza cenários como limitação de taxa por IP de origem.

  • Formato: endereços IP ou blocos CIDR separados por ponto e vírgula, sem espaços.

  • XForwardedForClientSourceIpsTrusted entra em vigor somente quando XForwardedForClientSourceIpsEnabled é true.

listeners:
- port: 80
  protocol: HTTP
  xForwardedForConfig:
    XForwardedForClientSourceIpsEnabled: true
    XForwardedForClientSourceIpsTrusted: 192.168.x.x;192.168.x.x/16   # Semicolon-separated, no spaces

Definir controle de acesso

Use o campo aclConfig para ativar o controle de acesso em um listener do ALB. Esse mecanismo permite autorizar ou bloquear endereços IP específicos mediante a configuração de uma lista de permissões ou de bloqueios. Para mais informações, consulte Configurar ACLs para controle de acesso.

  • aclType: Defina como White para lista de permissões ou Black para lista de bloqueios.

  • aclEntries: Lista de blocos CIDR. Cada entrada deve ser um bloco CIDR completo.

listeners:
- port: 80
  protocol: HTTP
  aclConfig:
    aclEntries:
    - 127.0.0.1/32   # CIDR block must be complete
    aclType: White    # White: allowlist. Black: blocklist.

Excluir um listener

Para excluir um listener, remova-o do campo albconfig.spec.listeners.

Importante

Remova todos os Ingresses associados ao listener antes de excluí-lo. Se algum Ingress ainda estiver associado, a exclusão falhará.

Antes:

listeners:
- port: 8001
  protocol: HTTP
- port: 8002     # Listener to delete
  protocol: HTTP

Depois:

listeners:
- port: 8001
  protocol: HTTP