Todos os produtos
Search
Central de documentação

Container Compute Service:Configure a Classic Load Balancer (CLB) with annotations

Última atualização: Jul 01, 2026

Utilize annotations em um arquivo YAML de Service para configurar instâncias de CLB, listeners e grupos de servidores de backend.

Índice

Conteúdo principal

Links rápidos

Uso de annotations

Operações do CLB

Operações de listener

Operações de grupo de servidores de backend

Documentação relacionada

Annotations

  • As annotations diferenciam maiúsculas de minúsculas.

  • Verifique a versão necessária do CCM para cada annotation antes de usá-la. Para atualizar o CCM, consulte gerenciar componentes. Log de alterações do CCM: Cloud Controller Manager.

  • A partir de 11 de setembro de 2019, para annotations, o prefixo alicloud foi atualizado para alibaba-cloud.

    Por exemplo:

    Antes da atualização: service.beta.kubernetes.io/alicloud-loadbalancer-id

    Após a atualização: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

    O sistema mantém compatibilidade com o formato alicloud. Não é necessário alterar as configurações existentes.

Operações do CLB

Criar um balanceador de carga público

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Criar um balanceador de carga privado

Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Descrição

Padrão

Versões suportadas do CCM

Define o tipo de endereço do balanceador de carga. Valores válidos:

  • internet: Expõe o Service pela rede pública. Este é o valor padrão. A IP Version da instância de CLB deve ser Internet-facing.

  • intranet: Expõe o Service pela rede privada. A IP Version da instância de CLB deve ser Internal-facing.

internet

v1.9.3 e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Especificar a especificação do balanceador de carga

Annotation: Múltiplas, conforme mostrado na tabela a seguir.

Annotation

Descrição

Padrão

Versões suportadas do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

Define o método de faturamento da instância. Use PayBySpec para criar uma instância com pagamento por especificação.

  • paybytraffic

  • paybybandwidth

PayBySpec

v1.9.3 e posteriores

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec

A especificação da instância de CLB. Utilize esta annotation para criar uma instância com uma especificação específica ou atualizar uma existente. CreateLoadBalancer.

Importante

Se você modificar a especificação no console do CLB (operação suportada apenas para instâncias com pagamento por especificação), o CCM poderá reverter a alteração.

slb.s1.small

v1.9.3 e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayBySpec"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Usar um balanceador de carga existente

Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

Descrição

Padrão

Versões suportadas do CCM

O ID da instância do balanceador de carga. Use esta annotation para especificar uma instância de CLB existente.

  • Por padrão, o uso de uma instância de balanceador de carga existente não substitui seus listeners. Para substituir forçadamente os listeners existentes, defina service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners como "true". Essa configuração substitui apenas os listeners do Service atual e não afeta outros listeners.

    Nota

    Por padrão, os listeners existentes não são substituídos pelos seguintes motivos:

    • Se já houver workloads vinculados aos listeners na instância de balanceador de carga existente, forçar a substituição pode causar interrupções no serviço.

    • O CCM suporta um conjunto limitado de configurações de backend e não consegue gerenciar configurações complexas. Para requisitos complexos, configure os listeners no console e garanta que eles não sejam substituídos.

    Não force a substituição de listeners a menos que a porta do listener na instância de CLB existente não esteja mais em uso.

  • Não é possível adicionar tags adicionais usando a annotation service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags ao reutilizar uma instância de balanceador de carga existente.

Nenhum

v1.9.3.81-gca19cd4-aliyun e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}" # Multiple policy groups cannot be configured.
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Usar um balanceador de carga existente e substituir listeners

Annotation: Múltiplas, conforme mostrado na tabela a seguir. Esta operação substitui forçadamente os listeners existentes. Se houver conflito de porta de listener, o listener existente será excluído.

Annotation

Descrição

Padrão

Versões suportadas do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

O ID da instância de CLB existente.

  • Por padrão, o uso de uma instância de balanceador de carga existente não substitui seus listeners. Para forçar a substituição dos listeners existentes, defina a annotation service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners como "true". Essa configuração substitui apenas os listeners do Service atual e não afeta outros listeners.

    Nota

    Por padrão, a reutilização de um balanceador de carga existente não substitui seus listeners por dois motivos:

    • Se houver serviços vinculados aos listeners do balanceador de carga existente, forçar a substituição pode causar interrupções no serviço.

    • O Cloud Controller Manager (CCM) tem suporte limitado para configurações de backend e não consegue lidar com configurações complexas. Se você precisar de configurações de backend complexas, configure os listeners no console sem substituí-los.

    Não force a substituição a menos que a porta do listener na instância de CLB existente não esteja mais em uso.

  • Ao usar um balanceador de carga existente, não há suporte para adicionar tags extras com a annotation service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags.

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners

Define se os listeners da instância de CLB devem ser substituídos forçadamente. Valores válidos:

  • "true": Substitui os listeners. Isso substitui apenas os listeners do Service atual e não afeta outros listeners.

  • "false": Não substitui os listeners.

Importante

Ao reutilizar um CLB existente e definir force-override como "true", não reutilize o mesmo listener no mesmo CLB para múltiplos Services. Caso contrário, ocorrerão conflitos de configuração de listener.

"false"

v1.9.3.81-gca19cd4-aliyun e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Especificar zonas de disponibilidade primária e secundária

Annotation: Múltiplas, conforme mostrado na tabela a seguir. As zonas de disponibilidade primária e secundária não podem ser alteradas após a criação da instância.

A disponibilidade varia por região. Verifique a página de criação de instância de CLB.

Annotation

Descrição

Padrão

Versões suportadas do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid

O ID da zona de disponibilidade primária.

Nenhum

v1.9.3.10-gfb99107-aliyun e posteriores

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid

O ID da zona de disponibilidade secundária.

Nenhum

v1.9.3.10-gfb99107-aliyun e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Criar um balanceador de carga com pagamento por largura de banda

Annotation: Múltiplas, conforme mostrado na tabela a seguir. As duas annotations a seguir são obrigatórias.

Annotation

Descrição

Padrão

Versões suportadas do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type

O método de faturamento da instância do balanceador de carga. Valores válidos:

  • paybytraffic

  • paybybandwidth

paybytraffic

v1.9.3 e posteriores

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth

A largura de banda de pico da instância de CLB. Aplica-se apenas a instâncias de CLB públicas. Alterar o método de faturamento de uma instância de balanceador de carga pública.

50

v1.9.3.10-gfb99107-aliyun e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Especificar um vSwitch para um balanceador de carga

Annotation: Múltiplas, conforme mostrado na tabela a seguir. As duas annotations a seguir são obrigatórias.

Annotation

Descrição

Padrão

Versões suportadas do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Define o tipo de endereço do balanceador de carga. Valores válidos:

  • internet: Expõe o Service pela rede pública. Este é o valor padrão. A IP Version da instância de CLB deve ser Internet-facing.

  • intranet: Expõe o Service pela rede privada. A IP Version da instância de CLB deve ser Internal-facing.

internet

v1.9.3 e posteriores

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

O ID do vSwitch ao qual a instância do balanceador de carga pertence. O vSwitch deve estar na mesma VPC que o cluster Kubernetes.

Esta annotation requer a definição de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type como "intranet".

Você pode encontrar o ID do vSwitch no console da VPC.

Nenhum

v1.9.3 e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Especificar um endereço IP para um balanceador de carga privado

Annotation: Múltiplas, conforme mostrado na tabela a seguir. As três annotations a seguir são obrigatórias.

Annotation

Descrição

Padrão

Versões suportadas do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Define o tipo de endereço do balanceador de carga. Valores válidos:

  • internet: Expõe o Service pela rede pública. Este é o valor padrão. A IP Version da instância de CLB deve ser Internet-facing.

  • intranet: Expõe o Service pela rede privada. A IP Version da instância de CLB deve ser Internal-facing.

internet

v1.9.3 e posteriores

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

O ID do vSwitch ao qual a instância do balanceador de carga pertence. O vSwitch deve estar na mesma VPC que o cluster Kubernetes.

Esta annotation requer a definição de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type como "intranet".

Você pode encontrar o ID do vSwitch no console da VPC.

Nenhum

v1.9.3 e posteriores

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip

O endereço IP da instância do balanceador de carga privado.

  • O endereço IP deve estar dentro do bloco CIDR do vSwitch. Apenas endereços IPv4 são suportados. Esta annotation deve ser usada em conjunto com a annotation service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id.

  • O endereço IP não pode ser alterado após a criação da instância do balanceador de carga.

Nenhum

v2.7.0 e posteriores

apiVersion: v1
kind: Service
metadata:
 annotations:
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
 name: nginx
 namespace: default
spec:
 type: LoadBalancer
 ports:
 - port: 80
   targetPort: 80
   name: http
 selector:
   app: nginx

Adicionar tags a um balanceador de carga

Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags

Descrição

Padrão

Versões suportadas do CCM

Uma lista separada por vírgulas de tags a serem adicionadas, por exemplo, "k1=v1,k2=v2".

Nenhum

v1.9.3 e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2" 
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Criar um balanceador de carga IPv6

Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version

Descrição

Padrão

Versões suportadas do CCM

A versão de IP da instância do balanceador de carga. A versão de IP não pode ser alterada após a criação da instância. Para usar este recurso, o kube-proxy no seu cluster deve executar no modo IPVS. Valores válidos:

  • ipv4: IPv4.

  • ipv6: IPv6. O endereço IPv6 resultante só é acessível a partir de ambientes habilitados para IPv6.

ipv4

v1.9.3.220-g24b1885-aliyun e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
  name: nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Ativar proteção contra exclusão para um balanceador de carga

Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection

Descrição

Padrão

Versões suportadas do CCM

Define se a proteção contra exclusão está ativada para a instância do balanceador de carga. Valores válidos:

  • on

  • off

Importante

Observe que, se você ativar a proteção contra exclusão no console do CLB, a instância do balanceador de carga ainda poderá ser excluída executando o comando kubectl delete svc {your-svc-name}.

on

v1.9.3.313-g748f81e-aliyun e posteriores

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Ativar proteção contra modificações para um balanceador de carga

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

Descrição

Padrão

Versões do CCM suportadas

Define o status de proteção contra modificações para a instância do balanceador de carga. Valores válidos:

  • ConsoleProtection

  • NonProtection

ConsoleProtection

v1.9.3.313-g748f81e-aliyun e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Especificar um nome para o balanceador de carga

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name

Descrição

Padrão

Versões do CCM suportadas

Nome da instância CLB. Deve ter entre 2 e 128 caracteres, começando com uma letra ou caractere chinês. Pode conter dígitos, pontos (.), sublinhados (_) e hifens (-).

Nenhum

v1.9.3.313-g748f81e-aliyun e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Especificar um grupo de recursos para um balanceador de carga

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id

Descrição

Padrão

Versões do CCM suportadas

ID do grupo de recursos da instância do balanceador de carga. O ID do grupo de recursos não pode ser alterado após definido. Encontre os IDs dos grupos de recursos no console Resource Management.

Nenhum

v1.9.3.313-g748f81e-aliyun e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Definir um hostname para um Service

Anotação: Múltiplas, conforme mostrado na tabela a seguir.

Anotação

Descrição

Padrão

Versões do CCM suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com vírgulas (,), por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname

Define um hostname para o Service. O hostname deve estar em conformidade com as convenções de nomenclatura DNS.

Observe o seguinte:

  • Após adicionar esta anotação, o EXTERNAL-IP do Service muda do endereço IP padrão do CLB para ${your_service_hostname}. Ao acessar o endereço IP do CLB de dentro do cluster, o tráfego é roteado pela instância CLB e depois encaminhado de volta ao cluster.

  • Se você adicionar esta anotação e o protocolo do listener for TCP ou UDP, ocorrerá um problema de hairpinning ao acessar o endereço IP do CLB de dentro do cluster. Clientes não conseguem acessar um balanceador de carga.

  • Esta anotação não cria automaticamente um registro DNS. Crie manualmente um registro DNS A ou CNAME que aponte o hostname para o endereço IP da instância CLB. O que é Alibaba Cloud Domains?.

Nenhum

v2.3.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname: "${your_service_hostname}"
  name: nginx-svc
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Saída esperada:

NAME         TYPE           CLUSTER-IP       EXTERNAL-IP            PORT(S)                      AGE
nginx-svc    LoadBalancer   47.100.XX.XX     www.example.com        80/TCP,443/TCP   10s

Criar um balanceador de carga com pagamento conforme o uso

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

Descrição

Padrão

Versões do CCM suportadas

Método de faturamento da instância. Valores válidos:

  • PayBySpec: Valor padrão. Faturado por especificação.

  • PayByCLCU: Faturado por consumo.

Importante

Não é possível definir uma especificação para uma instância de balanceador de carga faturada por consumo. O valor PayByCLCU não pode ser usado junto com a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec.

PayBySpec

v2.4.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Ações comuns de listener

Configurar persistência de sessão TCP

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout

Descrição

Padrão

Versões do CCM suportadas

Define o tempo de persistência de sessão para listeners TCP. Se uma instância de balanceador de carga tiver vários listeners TCP, essa configuração se aplica a todos eles por padrão.

Faixa de valores: 0–3600 segundos. Padrão: 0 (persistência de sessão desativada). CreateLoadBalancerTCPListener.

0

v1.9.3 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Configurar sessão persistente (inserir cookie)

São necessárias várias anotações, conforme mostrado na tabela a seguir. O método de inserção de cookie requer três anotações.

  • Este recurso aplica-se apenas a instâncias de balanceador de carga com listeners HTTP ou HTTPS.

  • Por padrão, essa configuração de sessão persistente aplica-se a todos os listeners HTTP e HTTPS configurados.

Anotação

Descrição

Padrão

Versão do CCM suportada

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session

Ativa ou desativa sessões persistentes. Esta configuração aplica-se apenas a listeners HTTP e HTTPS. Valores válidos:

  • on

  • off

CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

off

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type

Especifica o método de tratamento de cookies. Esta configuração é efetiva apenas para listeners HTTP e HTTPS. Esta anotação é obrigatória quando service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session está definido como on. Valores válidos:

  • insert: Insere um cookie.

  • server: Reescreve um cookie.

CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout

Tempo limite do cookie em segundos. A faixa válida é de 1 a 86.400. Esta anotação é obrigatória quando service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session está definido como on e service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type está definido como insert.

CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie

Nome do cookie configurado no servidor.

O nome deve ter entre 1 e 200 caracteres e conter apenas letras ASCII e dígitos. Não pode conter vírgulas (,), ponto e vírgula (;) ou espaços, e não deve começar com um cifrão ($).

Esta anotação é obrigatória quando service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session está definido como on e service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type está definido como server.

CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Especifica as portas do listener às quais as configurações de sessão persistente se aplicam. Por padrão, as configurações aplicam-se a todos os listeners. Separe várias entradas com uma vírgula (,). Exemplo: https:443,http:80.

Nenhum

v1.9.3 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurar uma lista de controle de acesso

Nota: As três anotações na tabela a seguir são obrigatórias.

Antes de usar essas anotações, crie uma lista de controle de acesso no console Classic Load Balancer (CLB) e registre seu ID.

Anotação

Descrição

Padrão

Versões suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status

Define se o controle de acesso deve ser ativado. Valores válidos:

  • on

  • off

off

v1.9.3.164-g2105d2e-aliyun e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id

ID da lista de controle de acesso a ser associada ao listener. Este parâmetro é obrigatório quando service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status está definido como "on".

Nenhum

v1.9.3.164-g2105d2e-aliyun e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type

Tipo de controle de acesso. Valores possíveis:

  • white: Uma lista de permissões que encaminha apenas solicitações dos endereços IP ou faixas de endereços IP na lista de controle de acesso selecionada. Adequada para cenários em que um aplicativo deve ser acessível apenas de endereços IP específicos. O uso de uma lista de permissões pode apresentar riscos comerciais. Se você ativar uma lista de permissões, mas a lista de controle de acesso estiver vazia, o listener encaminhará todas as solicitações.

  • black: Uma lista de bloqueios que bloqueia todas as solicitações dos endereços IP ou faixas de endereços IP na lista de controle de acesso selecionada. Indicada para cenários em que você deseja restringir o acesso de endereços IP específicos. Se você ativar uma lista de bloqueios, mas a lista de controle de acesso estiver vazia, todas as solicitações serão encaminhadas.

Nenhum

v1.9.3.164-g2105d2e-aliyun e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Configurar redirecionamento de porta para um balanceador de carga

O redirecionamento de porta encaminha solicitações de uma porta HTTP para uma porta HTTPS.

Anotações: As três anotações a seguir são obrigatórias.

Anotação

Descrição

Padrão

Versões do CCM suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com uma vírgula, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID do certificado Alibaba Cloud.

Faça login no console CLB e visualize o ID do certificado na página Certificates.

Nota

Para criar um certificado, consulte Selecionar um certificado emitido pela Alibaba Cloud.

Nenhum

v1.9.3.164-g2105d2e-aliyun e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port

Encaminha solicitações HTTP para uma porta HTTPS, por exemplo, 80:443.

Nenhum

v1.9.3.164-g2105d2e-aliyun e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Algoritmo de agendamento do balanceador de carga

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

Descrição

Padrão

Versões suportadas

Algoritmo de agendamento. Valores válidos:

  • wrr: round robin ponderado. Um servidor backend com maior peso recebe mais solicitações de entrada.

  • rr: round robin. Os servidores backend recebem solicitações sequencialmente.

rr

v1.9.3 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Criar um listener UDP

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Criar um listener HTTP

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Descrição

Padrão

Versões do CCM suportadas

Separe vários valores com vírgulas, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Criar um listener HTTPS

Anotação: Para as anotações obrigatórias, consulte a tabela a seguir.

A camada CLB descriptografa solicitações HTTPS e as envia aos Pods backend como solicitações HTTP.

Anotação

Descrição

Padrão

Versões do CCM suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com vírgulas, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID do certificado Alibaba Cloud.

Faça login no console CLB e visualize o ID do certificado na página Certificates.

Nota

Para criar um certificado, consulte Selecionar um certificado emitido pela Alibaba Cloud.

Nenhum

v1.9.3.164-g2105d2e-aliyun e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Criar um listener com verificação de integridade

Configurar uma verificação de integridade TCP

Anotações: A tabela a seguir lista as anotações obrigatórias.

Por padrão, as verificações de integridade estão ativadas para portas TCP.

Anotação

Descrição

Padrão

Versão do CCM suportada

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Define se as verificações de integridade devem ser ativadas para listeners TCP e UDP. Valores válidos:

  • on

  • off

on

v2.6.0 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

Tipo de verificação de integridade. Valores válidos:

  • tcp

  • http

CreateLoadBalancerTCPListener.

tcp

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

Tempo de espera por uma resposta de verificação de integridade, em segundos. Se um servidor backend não responder dentro desse período, a verificação de integridade falhará. Valores válidos: 1–300.

Se o valor de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout for menor que o valor de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, a primeira configuração será inválida e o tempo limite será definido como o valor da segunda. CreateLoadBalancerTCPListener.

5

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Número de verificações de integridade bem-sucedidas consecutivas necessárias para alterar o status de um servidor backend de fail para success.

Valores válidos: 2–10. CreateLoadBalancerTCPListener.

3

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Número de verificações de integridade com falha consecutivas necessárias para alterar o status de um servidor backend de success para fail. Valores válidos: 2–10. CreateLoadBalancerTCPListener.

3

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Intervalo entre verificações de integridade, em segundos. Valores válidos: 1–50. CreateLoadBalancerTCPListener.

2

v1.9.3 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurar verificações de integridade UDP

Anotação: Múltiplas, conforme a tabela abaixo. Todas as anotações a seguir são obrigatórias.

Por padrão, as verificações de integridade estão ativadas para portas UDP.

Anotação

Descrição

Padrão

Versões do CCM suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Define se as verificações de integridade devem ser ativadas para listeners TCP e UDP. Valores válidos:

  • on

  • off

on

v2.6.0 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

Tempo limite de resposta para uma verificação de integridade. Este parâmetro aplica-se a listeners UDP. Se um servidor de backend não responder dentro desse tempo limite, a verificação de integridade falhará. Unidade: segundos. Intervalo de valores: [1, 300].

Se o valor de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout for menor que o valor de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, a primeira configuração será inválida e o tempo limite assumirá o valor da segunda. CreateLoadBalancerUDPListener.

5

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Número de verificações de integridade consecutivas com sucesso necessárias para alterar o status de um servidor de backend de fail para success.

Intervalo de valores: [2, 10]. CreateLoadBalancerUDPListener.

3

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Quantidade de verificações de integridade consecutivas com falha necessárias para alterar o status de um servidor de backend de success para fail. Intervalo de valores: [2, 10]. CreateLoadBalancerUDPListener.

3

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Intervalo entre as verificações de integridade. Unidade: segundos. Intervalo de valores: [1, 50]. CreateLoadBalancerUDPListener.

2

v1.9.3 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Desativar verificações de integridade para TCP e UDP

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Descrição

Padrão

Versões do CCM suportadas

Define se as verificações de integridade devem ser ativadas para listeners TCP e UDP. Valores válidos:

  • on

  • off

on

v2.6.0 ou posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # Disable the health check.
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Configurar uma verificação de integridade HTTP

Anotação: Múltiplas, conforme a tabela a seguir.

Anotação

Descrição

Padrão

Versão do CCM suportada

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag

Valores válidos:

  • on: O valor padrão para listeners TCP é on e não pode ser alterado.

  • off: O valor padrão para listeners HTTP é off.

off

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

Protocolo utilizado na verificação de integridade. Valores válidos:

  • tcp

  • http

CreateLoadBalancerHTTPListener.

tcp

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri

Caminho URI para a verificação de integridade. Esta anotação é obrigatória apenas para verificações de integridade HTTP.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode

Códigos de status HTTP que indicam uma verificação de integridade bem-sucedida. Separe vários valores com vírgula. Valores válidos:

  • http_2xx

  • http_3xx

  • http_4xx

  • http_5xx

CreateLoadBalancerHTTPListener.

http_2xx

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain

Nome de domínio usado para a verificação de integridade. Valores válidos:

  • $_ip: Usa o IP privado do servidor de backend. Este também é o comportamento padrão caso esta anotação não seja especificada.

  • domain: O nome de domínio, que deve ter entre 1 e 80 caracteres e conter apenas letras, dígitos, pontos (.) e hífens (-).

CreateLoadBalancerHTTPListener.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout

Tempo, em segundos, para aguardar uma resposta a uma verificação de integridade HTTP. Se nenhuma resposta for recebida dentro desse período, a verificação de integridade falhará.

Unidade: segundos. Valores válidos: 1 a 300.

Se o valor de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout for menor que o valor de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout será inválido e o tempo limite assumirá o valor de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval.

CreateLoadBalancerHTTPListener.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Número de verificações de integridade consecutivas com sucesso necessárias antes que um servidor de backend seja considerado íntegro (o status muda de fail para success).

Valores válidos: 2 a 10. CreateLoadBalancerHTTPListener.

3

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Quantidade de verificações de integridade consecutivas com falha necessárias antes que um servidor de backend seja considerado não íntegro (o status muda de success para fail). Valores válidos: 2 a 10. CreateLoadBalancerHTTPListener.

3

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Intervalo entre as verificações de integridade. Unidade: segundos. Valores válidos: 1 a 50. CreateLoadBalancerHTTPListener.

2

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com vírgula, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method

Método HTTP a ser usado na verificação de integridade. Valores válidos:

  • head

  • get

Nenhum

v2.3.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    # Set the HTTP status code for the health check (optional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
    # Set the domain name for the health check (optional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
    # Set the health check method (optional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Drenagem de conexão

Anotação: Múltiplas, conforme a tabela a seguir. Todas essas anotações são obrigatórias.

Somente TCP e UDP são suportados.

Anotação

Descrição

Padrão

Versões do CCM suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain

Ativa ou desativa a drenagem de conexão. Valores válidos:

  • on

  • off

Nenhum

v2.0.1 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout

Define o tempo limite de drenagem de conexão em segundos. O intervalo válido é de 10 a 900.

Nenhum

v2.0.1 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurar cabeçalhos de solicitação adicionais para um listener

Configuração: Use as anotações na tabela a seguir para configurar este recurso.

Este recurso suporta apenas listeners HTTP e HTTPS.

Anotação

Descrição

Padrão

Versão do CCM suportada

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com vírgula, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto

Define se o campo de cabeçalho X-Forwarded-Proto deve ser usado para obter o protocolo do listener da instância CLB. Valores válidos:

  • on

  • off

off

v2.1.0 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport

Define se o campo de cabeçalho XForwardedFor_SLBPORT deve ser usado para obter a porta do listener da instância do balanceador de carga. Valores válidos:

  • on

  • off

off

v2.9.1 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport

Define se o campo de cabeçalho XForwardedFor_ClientSrcPort deve ser usado para obter a porta de origem do cliente. Valores válidos:

  • on

  • off

off

v2.9.1 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Definir tempo limite de ociosidade para um listener

Anotações: Consulte a tabela abaixo.

Este recurso suporta apenas listeners que utilizam o protocolo HTTP ou HTTPS.

Anotação

Descrição

Padrão

Versões do CCM suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com vírgula (,), por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout

Especifica o tempo limite de ociosidade para o listener. Unidade: segundos. Valores válidos: [1, 60].

15

v2.1.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Desativar HTTP/2 para um listener

Anotação: São utilizadas múltiplas anotações, conforme a tabela a seguir.

Este recurso está disponível apenas para listeners HTTPS.

Anotação

Descrição

Padrão

Versão do CCM suportada

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Use vírgula (,) para separar vários valores, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

O ID do certificado no Alibaba Cloud.

Faça login no console CLB e localize o ID do certificado na página Certificates.

Nota

Para criar um certificado, consulte Selecionar um certificado emitido pelo Alibaba Cloud.

Nenhum

v1.9.3.164-g2105d2e-aliyun e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled

Ativa ou desativa o recurso HTTP/2. Valores válidos:

  • on

  • off

on

v2.1.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled: "off"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Tempo limite de solicitação para um listener

Anotações: As anotações obrigatórias estão listadas na tabela a seguir.

Este recurso suporta apenas listeners que utilizam o protocolo HTTP ou HTTPS.

Anotação

Descrição

Padrão

Versão do CCM suportada

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com vírgula, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout

Especifica o tempo limite de solicitação em segundos. O valor deve estar entre 1 e 180.

Se um servidor de backend não responder dentro do tempo limite especificado, o balanceador de carga retornará um erro HTTP 504 ao cliente.

60

v2.3.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Especificar tempo limite de conexão

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout

Somente listeners TCP são suportados.

Descrição

Padrão

Versão do CCM suportada

Especifica o tempo limite de conexão em segundos. O valor deve ser um número inteiro de 10 a 900. CreateLoadBalancerTCPListener.

Nenhum

v2.3.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurar uma política de segurança de listener

Anotações: Consulte a tabela abaixo para ver as anotações obrigatórias.

Somente o protocolo HTTPS é suportado.

Anotação

Descrição

Padrão

Versões do CCM suportadas

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Separe vários valores com vírgula, por exemplo, https:443,http:80.

Nenhum

v1.9.3 e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

Especifica o ID de um certificado do Alibaba Cloud.

No console SLB, localize o ID do certificado na página Certificates.

Nota

Para criar um certificado, consulte Selecionar um certificado emitido pelo Alibaba Cloud.

Nenhum

v1.9.3.164-g2105d2e-aliyun e posterior

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy

Especifica a política de segurança, que determina as versões do protocolo TLS e os conjuntos de cifras suportados para um listener HTTPS. CreateLoadBalancerHTTPSListener. Valores válidos:

  • tls_cipher_policy_1_0

  • tls_cipher_policy_1_1

  • tls_cipher_policy_1_2

  • tls_cipher_policy_1_2_strict

  • tls_cipher_policy_1_2_strict_with_1_3

tls_cipher_policy_1_0

v2.4.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_2"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurar TCP e UDP

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 81
  selector:
    app: nginx
  sessionAffinity: None
  type: LoadBalancer

Configurar Proxy Protocol para listeners TCP e UDP

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol

Descrição

Padrão

Versões suportadas

Ativa o Proxy Protocol para listeners TCP e UDP. Quando ativado, o balanceador de carga transmite o endereço de origem do cliente para os servidores de backend. Valores válidos:

  • on

  • off

Importante

Este recurso não suporta migração transparente. Ativar ou desativar o Proxy Protocol exige uma atualização do serviço, causando uma interrupção. Configure esta definição com cautela.

off

v2.6.0 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Operações de grupo de servidores de backend

Reutilizar um grupo de servidores virtuais existente

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port. Esta anotação permite reutilizar um grupo de servidores virtuais existente. Ela se aplica somente quando você reutiliza uma instância CLB existente. Para um exemplo detalhado, consulte Implantar serviços em clusters reutilizando um balanceador de carga existente.

Definir peso de tráfego do Service

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight

Quando vários Services reutilizam a mesma instância CLB, use esta anotação para definir o peso de tráfego do Service atual. Esta configuração aplica-se somente quando você reutiliza um grupo de servidores virtuais existente. Para um exemplo detalhado, consulte Implantar serviços em clusters reutilizando um balanceador de carga existente.

Ignorar atualizações de peso do servidor de backend

Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update

Descrição

Versões do CCM suportadas

Ignora a atualização dos pesos dos servidores de backend no grupo de servidores virtuais durante a sincronização do Service. Isso permite gerenciar manualmente os pesos dos servidores de backend. Valores válidos:

  • on

  • off

Valor padrão: off

v2.11.1 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer