Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Configure ALB instances with AlbConfig

Última atualização: Sep 12, 2026

Crie, configure e reutilize instâncias e listeners ALB por meio de CRDs AlbConfig, com suporte a IPv6, logs de acesso do Simple Log Service (SLS), políticas TLS e ACLs de rede.

Pré-requisitos

  • O ALB Ingress Controller está instalado no cluster.

  • Dois vSwitches em zonas diferentes e compatíveis com ALB foram criados na mesma VPC do cluster ACK.

Para usar o ALB Ingress com um cluster dedicado ACK, conceda as permissões necessárias ao cluster primeiro.

Observações de uso

  • Para modificar configurações de recursos, use kubectl edit. Caso utilize kubectl apply, execute kubectl diff antes para visualizar as alterações antes de aplicá-las.

  • Se o cluster utilizar o plugin de rede Flannel, os services de backend para o ALB Ingress devem ser do tipo NodePort ou LoadBalancer.

  • As instâncias ALB criadas pelo AlbConfig são recursos gerenciados controlados pelo ALB Ingress Controller. Não modifique essas instâncias diretamente no console ALB (por exemplo, não altere tags, ACLs, logs de acesso ou configurações de timeout no console). O loop de reconciliação do controller sobrescreve as alterações feitas no console ou elas podem causar erros. Para atualizar a configuração de uma instância ALB gerenciada, modifique o recurso AlbConfig no cluster. O controller sincroniza automaticamente as alterações na instância ALB.

Principais parâmetros em resumo

Parâmetros do AlbConfig mais utilizados:

Parâmetro

Tipo

Padrão

Apenas na criação

Descrição

spec.config.name

string

—

Não

Nome da instância ALB

spec.config.addressAllocatedMode

string

Dynamic

Não

Define o modo de IP da instância ALB. Valores válidos: Dynamic (modo de IP dinâmico, padrão) e Fixed (modo de IP fixo).

spec.config.addressType

string

Internet

Sim

Internet (público) ou Intranet (interno à VPC)

spec.config.addressIpVersion

string

—

Sim

Defina como DualStack para ativar a pilha dupla IPv4/IPv6

spec.config.zoneMappings

array

—

Sim

IDs de vSwitch (pelo menos dois, em zonas diferentes)

spec.config.edition

string

Standard

Não

Edição da instância ALB

spec.config.id

string

—

Não

ID de uma instância ALB existente para reutilização

spec.config.forceOverride

boolean

false

Não

Indica se os atributos de uma instância ALB reutilizada devem ser sobrescritos

spec.config.listenerForceOverride

boolean

false

Não

Indica se os atributos dos listeners de uma instância reutilizada devem ser sobrescritos

spec.config.accessLogConfig.logProject

string

—

Não

Projeto de log do SLS

spec.config.accessLogConfig.logStore

string

—

Não

Logstore do SLS (deve começar com alb_)

spec.config.billingConfig.bandWidthPackageId

string

—

Não

ID da instância de Internet Shared Bandwidth

spec.listeners[].port

integer

—

Não

Porta do listener

spec.listeners[].protocol

string

—

Não

HTTP, HTTPS ou QUIC

spec.listeners[].requestTimeout

integer

60

Não

Timeout de requisição em segundos (1–600)

spec.listeners[].gzipEnabled

boolean

false

Não

Ativa a compressão Gzip/Brotli

Configurações da instância ALB

Criar um AlbConfig

Cada AlbConfig configura uma instância ALB. Para usar várias instâncias ALB, crie um AlbConfig por instância.

Importante

Ao instalar o ALB Ingress Controller e selecionar Create ou Select Existing para Gateway Source, o controller cria automaticamente um AlbConfig chamado alb e uma IngressClass chamada alb.

  1. Crie o arquivo alb.yaml com o seguinte conteúdo:

    Parâmetro

    Descrição

    spec.config.name

    Nome da instância ALB. Deve ser único dentro do cluster.

    spec.config.addressType

    Internet (padrão): IP público. Intranet: apenas interno à VPC. Definido apenas na criação; não pode ser alterado posteriormente.

    spec.config.zoneMappings

    Pelo menos dois vSwitches em zonas compatíveis com ALB diferentes, na mesma VPC do cluster. Definido apenas na criação; não pode ser alterado posteriormente. Regiões de zona única permitem um vSwitch.

    spec.config.zoneMappings[].allocationId

    (Opcional) ID do EIP a ser associado à instância ALB. Se omitido, um EIP BGP (multi-ISP) pago conforme o uso é criado automaticamente. Apenas EIPs pagos conforme o uso (pagamento por transferência de dados) que não estejam em uma instância de Internet Shared Bandwidth são suportados. Os EIPs para zonas diferentes devem ser do mesmo tipo.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        name: alb
        addressType: Internet
        zoneMappings:
        - vSwitchId: vsw-uf6ccg2a9g71hx8go****  # Replace with your vSwitch ID.
          allocationId: eip-asdfas****            # Replace with your EIP ID. If omitted, an EIP is assigned automatically.
        - vSwitchId: vsw-uf6nun9tql5t8nh15****
          allocationId: eip-dpfmss****
      listeners:
        - port: 80
          protocol: HTTP

    Configurações padrão do AlbConfig (exceto vSwitchId):

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        accessLogConfig:
          logProject: ""
          logStore: ""
        addressAllocatedMode: Dynamic
        addressType: Internet
        billingConfig:
          internetBandwidth: 0
          internetChargeType: ""
          payType: PostPay
        deletionProtectionEnabled: true
        edition: Standard
        forceOverride: false
        zoneMappings:
        - vSwitchId: #...
        - vSwitchId: #...
    status:
      loadBalancer:
        dnsname: alb-s2em8fr9debkg5****.cn-shenzhen.alb.aliyuncs.com
        id: alb-s2em8fr9debkg5****
  2. Aplique a configuração:

    kubectl apply -f alb.yaml

    Saída esperada:

    AlbConfig.alibabacloud.com/alb created
  3. Verifique o AlbConfig:

    Os campos PORT&PROTOCOL e CERTID permanecem vazios até que você configure listeners HTTPS e certificados.
    kubectl get AlbConfig

    Saída esperada:

    NAME   ALBID        DNSNAME                                  PORT&PROTOCOL   CERTID   AGE
    alb    alb-******   alb-******.<regionID>.alb.aliyuncs.com                            28m

Atualizar um AlbConfig

  1. Liste seus AlbConfigs:

    kubectl get AlbConfig
  2. Edite o AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME>

    Por exemplo, para renomear a instância ALB para new_alb:

    spec:
      config:
        name: new_alb

Excluir um AlbConfig

Se uma instância ALB foi criada com um AlbConfig, excluir o AlbConfig também exclui a instância ALB.

Importante

Exclua todos os Ingresses associados ao AlbConfig antes de excluí-lo.

kubectl delete AlbConfig <AlbConfig_NAME>

Vincular uma instância de Internet Shared Bandwidth

Para vincular uma instância de Internet Shared Bandwidth à instância ALB, defina billingConfig.bandWidthPackageId:

Isso se aplica apenas a instâncias ALB voltadas para a internet. Para adquirir uma instância de Internet Shared Bandwidth, consulte Criar uma instância de Internet Shared Bandwidth .
spec:
  config:
    name: alb
    addressType: Internet
    edition: Standard
    zoneMappings:
    - vSwitchId: vsw-2vcqeyvwsnd***
    - vSwitchId: vsw-2vcbhjlqu7y***
    billingConfig:
      bandWidthPackageId: cbwp-2vcjucp49otd8qolhm***

Criar e usar múltiplas instâncias ALB

Para utilizar várias instâncias ALB, crie um AlbConfig e uma IngressClass separados para cada instância.

  1. Crie o arquivo alb-2.yaml:

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-2
    spec:
      config:
        name: alb-2
        addressType: Internet
        zoneMappings:
        - vSwitchId: vsw-uf6ccg2a9g71hx8go****
        - vSwitchId: vsw-uf6nun9tql5t8nh15****
  2. Aplique a configuração:

    kubectl apply -f alb-2.yaml
  3. Crie o arquivo ingress_class2.yaml:

    Clusters v1.19 and later

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: alb-2
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb-2

    Clusters earlier than v1.19

    apiVersion: networking.k8s.io/v1beta1
    kind: IngressClass
    metadata:
      name: alb-2
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb-2
  4. Aplique a configuração:

    kubectl apply -f ingress_class2.yaml
  5. Crie o arquivo ingress2.yaml. Defina ingressClassName como a IngressClass da instância ALB de destino:

    Clusters v1.19 and later

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: cafe-ingress2
    spec:
      ingressClassName: alb-2
      rules:
      - http:
          paths:
          - path: /tea
            pathType: ImplementationSpecific
            backend:
              service:
                name: tea-svc
                port:
                  number: 80
          - path: /coffee
            pathType: ImplementationSpecific
            backend:
              service:
                name: coffee-svc
                port:
                  number: 80

    Clusters earlier than v1.19

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: cafe-ingress2
    spec:
      ingressClassName: alb-2
      rules:
      - http:
          paths:
          - path: /tea
            backend:
              serviceName: tea-svc
              servicePort: 80
          - path: /coffee
            backend:
              serviceName: coffee-svc
              servicePort: 80
  6. Aplique a configuração:

    kubectl apply -f ingress2.yaml

Associar um AlbConfig a um Ingress usando IngressClass

Utilize uma IngressClass para vincular um AlbConfig a um ALB Ingress.

Criar uma IngressClass

Crie o arquivo ingress_class.yaml:

Clusters v1.19 and later

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: alb

Clusters earlier than v1.19

apiVersion: networking.k8s.io/v1beta1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: alb

Aplique a configuração:

kubectl apply -f ingress_class.yaml

Saída esperada:

ingressclass.networking.k8s.io/alb created

Criar um Ingress que referencie a IngressClass

Crie o arquivo ingress.yaml e defina ingressClassName como o nome da IngressClass:

Clusters v1.19 and later

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cafe-ingress
spec:
  ingressClassName: alb
  rules:
  - http:
      paths:
      - path: /tea
        pathType: ImplementationSpecific
        backend:
          service:
            name: tea-svc
            port:
              number: 80
      - path: /coffee
        pathType: ImplementationSpecific
        backend:
          service:
            name: coffee-svc
            port:
              number: 80

Clusters earlier than v1.19

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress
spec:
  ingressClassName: alb
  rules:
  - http:
      paths:
      - path: /tea
        backend:
          serviceName: tea-svc
          servicePort: 80
      - path: /coffee
        backend:
          serviceName: coffee-svc
          servicePort: 80

Aplique a configuração:

kubectl apply -f ingress.yaml

Saída esperada:

ingress.networking.k8s.io/cafe-ingress created

Gerenciamento de instâncias ALB reutilizadas

Reutilizar uma instância ALB existente

Defina spec.config.id para reutilizar uma instância ALB existente. Instâncias Standard e com WAF ativado no console ALB são suportadas; instâncias Basic não podem ser reutilizadas. Uma instância ALB pode ser reutilizada por apenas um cluster e por apenas um AlbConfig dentro desse cluster.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: reuse-alb
spec:
  config:
    id: ****
    forceOverride: false
    listenerForceOverride: false

Como id, forceOverride e listenerForceOverride interagem:

id

forceOverride

listenerForceOverride

Resultado

Não definido

—

—

A instância ALB não é reutilizada. forceOverride e listenerForceOverride não têm efeito.

Definido

true

—

Os atributos da instância ALB e dos listeners são sobrescritos.

Definido

false

false

Quando listenerForceOverride é false, o ALB Ingress Controller gerencia apenas os listeners criados automaticamente pelo AlbConfig (nomeados ingress-auto-listener-{port}). Listeners criados manualmente não são gerenciados pelo AlbConfig.

Definido

false

true

Os atributos da instância ALB não são sobrescritos. O controller gerencia todos os listeners. A existência e a configuração dos listeners são determinadas pelo AlbConfig.

Importante

Não renomeie listeners em uma instância ALB reutilizada. Listeners nomeados ingress-auto-listener-{port} são gerenciados pelo ACK; listeners com outros nomes são gerenciados no console ALB.

Excluir o AlbConfig de uma instância ALB reutilizada

Excluir o AlbConfig de uma instância ALB reutilizada não exclui a própria instância ALB.

  1. Para o ALB Ingress Controller 2.10.0-aliyun.1 ou anterior: execute kubectl edit para remover todas as entradas de spec.listeners, o que exclui os listeners configurados através do AlbConfig. Para versões posteriores a 2.10.0-aliyun.1, pule esta etapa.

  2. Exclua todos os Ingresses associados ao AlbConfig e, em seguida, exclua o AlbConfig:

    kubectl delete AlbConfig <AlbConfig_NAME>

Configurações avançadas

Ativar o SLS para coletar logs de acesso

Defina logProject e logStore em spec.config.accessLogConfig:

spec:
  config:
    accessLogConfig:
      logProject: "k8s-log-xz92lvykqj1siwvif****"
      logStore: "alb_****"
O valor de logStore deve começar com alb_ . Se o Logstore especificado não existir, um novo será criado automaticamente.
Encontre o projeto de log no console ACK nas Cluster Information > Basic Information do seu cluster.
Para ativar o SLS em uma instância ALB reutilizada , defina forceOverride: true .

Após ativar, clique em no nome do projeto ao lado de Log Service Project em Basic Information para visualizar os logs no SLS.

Ativar IPv6

Defina addressIpVersion: DualStack para ativar a pilha dupla IPv4/IPv6:

Importante

addressIpVersion entra em vigor apenas na criação e não pode ser alterado posteriormente.

spec:
  config:
    addressIpVersion: DualStack

Configurações de listener

Criar listeners

Defina port e protocol em spec.listeners para definir como o ALB recebe tráfego. Protocolos suportados: HTTP, HTTPS e Quick UDP Internet Connections (QUIC).

Importante

Modificar a port, o protocol ou outros atributos de um listener exclui o listener existente e cria um novo. Para configurar vários listeners com protocolos diferentes, adicione as anotações necessárias ao seu Ingress.

HTTP listener

spec:
  listeners:
    - port: 80
      protocol: HTTP
O HTTP suporta WebSocket nativamente. Nenhuma configuração adicional é necessária.

HTTPS listener

spec:
  listeners:
    - port: 443
      protocol: HTTPS
Importante

Listeners HTTPS exigem certificados.

QUIC listener

spec:
  listeners:
    - port: 443
      protocol: QUIC
Importante

Listeners QUIC recebem requisições HTTP/3 dos clientes.

Especificar um certificado

Para adicionar um certificado a um listener HTTPS, execute kubectl edit albconfig <Albconfig_Name> e defina o campo certificates:

spec:
  listeners:
  - caEnabled: false
    certificates:
    - CertificateId: 756****-cn-hangzhou
      IsDefault: true
    port: 443
    protocol: HTTPS

Se nenhum certificado padrão for especificado, o ALB Ingress usa o primeiro certificado como padrão.

Se nenhum certificado for especificado, a criação do listener é adiada até que um Ingress seja associado e um certificado seja descoberto automaticamente com base no nome de domínio.

Consulte Configurar certificados HTTPS para comunicação criptografada.

Excluir um listener

Execute kubectl edit albconfig <Albconfig_Name> e remova a entrada do listener de spec.listeners.

Importante

Desassocie todos os Ingresses do listener antes de excluí-lo. Caso contrário, a exclusão falhará com erros.

Por exemplo, para excluir o listener na porta 8002:

# Before
listeners:
- port: 8001
  protocol: HTTP
- port: 8002
  protocol: HTTP

# After
listeners:
- port: 8001
  protocol: HTTP

Como funcionam as atualizações de listener

O array listeners é reconciliado comparando a nova configuração com o estado ativo e a anotação last-applied-configuration:

Na nova configuração

Na configuração ativa

Em last-applied-configuration

Resultado

Sim

Sim

—

O listener é mantido.

Sim

Não

—

O listener é adicionado.

Não

—

Sim

O listener é excluído. Os campos podem ser redefinidos para os padrões.

Não

Sim

Não

O listener é excluído.

Exemplo:

Dados estes três estados:

# New configuration
listeners:
- port: 8001
  protocol: HTTP
- port: 8003
  protocol: HTTP
- port: 8005  # New
  protocol: HTTP

# Live configuration
listeners:
- port: 8001
  protocol: HTTP
- port: 8002
  protocol: HTTP
- port: 8003
  protocol: HTTP
- port: 8004
  protocol: HTTP

# last-applied-configuration
listeners:
- port: 8001
  protocol: HTTP
- port: 8002
  protocol: HTTP
- port: 8003
  protocol: HTTP

Após aplicar a nova configuração:

listeners:
- port: 8001  # Retained (in new config and live config)
  protocol: HTTP
- port: 8003  # Retained (in new config and live config)
  protocol: HTTP
- port: 8005  # Added (in new config, not in live config)
  protocol: HTTP
# Port 8002: deleted (not in new config, in last-applied-configuration)
# Port 8004: deleted (not in new config, in live config, not in last-applied-configuration)

Definir o período de timeout de conexão

Defina requestTimeout para controlar quanto tempo o ALB aguarda por uma resposta do backend antes de retornar HTTP 504 ao cliente. Intervalo válido: 1–600 segundos. Padrão: 60 segundos.

spec:
  listeners:
  - port: 80
    protocol: HTTP
    requestTimeout: 40

Configurações avançadas de listener

Configurar compressão de dados

Defina gzipEnabled: true para ativar a compressão. Todos os tipos de arquivo suportam compressão Brotli. Os seguintes tipos de arquivo também suportam compressão Gzip: text/xml, text/plain, text/css, application/javascript, application/x-javascript, application/rss+xml, application/atom+xml, application/xml e application/json.

Nota
  • Algoritmo de compressão: Se um cliente suportar tanto Brotli quanto Gzip, o ALB usa Brotli por ser mais eficiente.

  • Condições de compressão: O ALB comprime uma resposta apenas quando o cabeçalho de resposta Content-Length excede 1.024 bytes e o cabeçalho de requisição Accept-Encoding do cliente inclui o algoritmo de compressão correspondente.

spec:
  listeners:
  - port: 80
    protocol: HTTP
    gzipEnabled: true

Preservar endereços IP do cliente

O ALB adiciona o endereço IP do cliente ao cabeçalho X-Forwarded-For antes de encaminhar a requisição para o backend.

Importante
  • Disponível apenas para listeners HTTP e HTTPS.

  • XForwardedForEnabled está ativado por padrão e não pode ser desativado.

spec:
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForEnabled: true # This parameter cannot be set to false.

Melhor prática para ambientes com múltiplas camadas de proxy: Embora XForwardedForEnabled: true propague o cabeçalho X-Forwarded-For por padrão, o valor do IP pode ser falsificado quando as requisições passam por vários proxies. Em ambientes de produção com múltiplas camadas de proxy, use XForwardedForClientSourceIpsEnabled: true juntamente com XForwardedForClientSourceIpsTrusted para recuperar o endereço IP do cliente de uma cadeia de proxy confiável.

Recuperar metadados de conexão do cliente

Use xForwardedForConfig para anexar metadados do cliente e do listener aos cabeçalhos de requisição encaminhados para o backend. Todos os campos abaixo estão disponíveis para listeners HTTP e HTTPS.

Campo

Quando definido como true

XForwardedForClientSrcPortEnabled

Adiciona a porta que o cliente usou para se conectar à instância ALB.

XForwardedForProtoEnabled

Adiciona o protocolo do listener usado pela instância ALB.

XForwardedForSLBIdEnabled

Adiciona o ID da instância ALB.

XForwardedForSLBPortEnabled

Adiciona a porta de escuta da instância ALB.

Exemplo — anexar todos os quatro cabeçalhos:

spec:
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForClientSrcPortEnabled: true
      XForwardedForProtoEnabled: true
      XForwardedForSLBIdEnabled: true
      XForwardedForSLBPortEnabled: true

Recuperar o endereço IP do cliente de uma cadeia de proxy confiável

Defina XForwardedForClientSourceIpsEnabled: true para extrair o IP real do cliente de X-Forwarded-For quando as requisições passarem por múltiplos proxies. Use XForwardedForClientSourceIpsTrusted para listar IPs de proxy confiáveis ou blocos CIDR. O ALB percorre X-Forwarded-For da direita para a esquerda e trata o primeiro IP não confiável como o IP do cliente.

Por exemplo, se X-Forwarded-For for <client IP, proxy-1, proxy-2>, adicione proxy-1 e proxy-2 à lista de confiáveis.

Importante

Disponível apenas para listeners HTTP e HTTPS.

spec:
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForClientSourceIpsEnabled: true
      XForwardedForClientSourceIpsTrusted: 192.168.x.x;192.168.x.x/16

Configurar uma política de segurança TLS personalizada

Defina securityPolicyId em um listener HTTPS para aplicar uma política de segurança TLS padrão ou personalizada.

spec:
  listeners:
  - port: 443
    protocol: HTTPS
    securityPolicyId: tls_cipher_policy_1_1

Configurar um endereço IP de proxy confiável

Consulte Especificar um endereço IP de proxy confiável.

Configurar ACLs de rede

Use aclConfig para permitir ou negar tráfego de endereços IP específicos ou blocos CIDR no nível do listener.

spec:
  listeners:
  - port: 80
    protocol: HTTP
    aclConfig:
      aclEntries:
      - 127.0.0.1/32
      aclType: White

Parâmetro

Descrição

aclType

White: lista de permissões — apenas os IPs listados podem acessar o listener. Black: lista de bloqueios — os IPs listados têm o acesso negado.

aclEntries

Endereços IP ou blocos CIDR a serem incluídos na regra de ACL. Exemplo: 127.0.0.1/32.

Consulte Configurar ACLs.

Solução de problemas

Erro ao salvar um arquivo YAML do AlbConfig: alb: listener port number must between [1:65535], or you should set listen port explicitly in listener config.

Causa

Em um arquivo YAML do AlbConfig, o símbolo - na seção spec.listener marca o início de uma configuração de listener individual. No exemplo incorreto à esquerda, três símbolos - são usados, o que define três listeners. Ocorre um erro porque a seção certificates da última entrada - está sem a configuração de port.

Solução

Cada configuração de listener deve começar com um hífen (-). No exemplo corrigido à direita, o hífen (-) antes de certificates foi removido, o que torna a configuração do certificado parte do listener HTTPS: 443.

Exemplo incorreto:

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
  ...
  listeners:
  - port: 80
    protocol: HTTP
  - port: 443
    protocol: HTTPS
  - certificates:  # Incorrect: This extra hyphen defines a third listener.
    - CertificateId: 756****-cn-hangzhou
      IsDefault: true
  ...

Exemplo corrigido:

apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-demo
    spec:
      config:
      ...
      listeners:
      - port: 80
        protocol: HTTP
      - port: 443
        protocol: HTTPS
        certificates:  # Correct: The extra hyphen is deleted to include the certificate configuration in the HTTPS: 443 listener.
        - CertificateId: 756****-cn-hangzhou
          IsDefault: true
      ...

Por que as alterações no tipo de rede (addressType) ou vSwitch (zoneMappings.vSwitchId) de uma instância ALB não entram em vigor quando feitas através de um arquivo YAML do AlbConfig?

Causa

Não é possível alterar o tipo de rede ou a configuração de vSwitch de uma instância Application Load Balancer (ALB) modificando addressType ou zoneMappings.vSwitchId em seu arquivo YAML do AlbConfig.

image

Solução

Primeiro, desative o modo somente leitura de configuração para a instância no console ALB. Em seguida, altere manualmente o tipo de rede ou a configuração de vSwitch da instância ALB. Após alterar a configuração, ative o modo somente leitura de configuração novamente.

  1. Faça login no console ALB. Na região de destino, clique em no ID da instância que corresponde a status.loadBalancer.id no arquivo AlbConfig.

  2. Na aba Instance Details, na seção Instance Information, clique em Disable Configuration Read-only Mode e confirme.

  3. Clique em Change Network Type ou Modify Zone/Subnet para alterar o tipo de rede ou a configuração de vSwitch da instância ALB.

  4. Após concluir as alterações, reative o configuration read-only mode.

Erro de listener HTTPS: empty https listener default certs

Causa

Um listener HTTPS está configurado no AlbConfig, mas nenhum ID de certificado foi especificado no campo certificates. O controller não consegue criar o listener porque não existe nenhum Ingress associado para descobrir automaticamente um certificado com base no nome de domínio.

Soluções

  • Método 1 (Recomendado): Especifique um ID de certificado no campo certificates para o listener HTTPS. Para mais informações, consulte especificar um certificado.

    listeners:
    - port: 443
      protocol: HTTPS
      certificates:
      - CertificateId: <your-certificate-id>  # Replace with your actual certificate ID.
        IsDefault: true
  • Método 2: No AlbConfig, configure um listener HTTP na porta 80 e crie um recurso Ingress associado ao nome de domínio de destino. Após a criação do Ingress, o ALB Ingress Controller descobre automaticamente o certificado do Ingress com base no nome de domínio e o anexa ao listener HTTPS.