Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use anotações para configurar instâncias CLB

Última atualização: Jul 04, 2026

Adicione anotações a um arquivo YAML de Service do Kubernetes para configurar instâncias de Classic Load Balancer (CLB), listeners e grupos de servidores de backend.

Antes de começar

  • Os valores das anotações diferenciam maiúsculas de minúsculas.

  • Verifique a versão do componente Cloud Controller Manager (CCM) antes de usar qualquer anotação. Para atualizar o CCM, consulte Gerenciar componentes. Para obter detalhes sobre as versões, consulte Cloud Controller Manager.

  • Desde 11 de setembro de 2019, a palavra-chave alicloud nas chaves de anotação mudou para alibaba-cloud. Antes: service.beta.kubernetes.io/alicloud-loadbalancer-id. Depois: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id. Anotações com a palavra-chave antiga alicloud ainda são compatíveis.

Anotações de instância CLB

Criar uma instância CLB voltada para a Internet

Um Service com type: LoadBalancer cria uma instância CLB voltada para a Internet por padrão. Nenhuma anotação é necessária.

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

Criar uma instância CLB interna

Anotação

Descrição

Padrão

Versão do CCM

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

Tipo de endereço da instância CLB. Valores válidos: internet, intranet.

internet

1.9.3 e posterior

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

Criar uma instância CLB com especificações definidas

Anotação

Descrição

Padrão

Versão do CCM

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

Método de faturamento da instância CLB. Valores válidos: PayBySpec (por especificação), PayByCLCU (por Unidades de Capacidade do Load Balancer). Não é possível alterar a especificação de uma instância CLB com pagamento por LCU. Não especifique PayByCLCU e a anotação loadbalancer-spec simultaneamente.

PayBySpec

2.4.0 e posterior

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

Especificação da instância CLB. Valores válidos: slb.s1.small, slb.s2.small, slb.s2.medium, slb.s3.small, slb.s3.medium, slb.s3.large. Para mais detalhes, consulte CreateLoadBalancer. Se você atualizar as especificações pelo console CLB, o CCM poderá restaurá-las. O console CLB só permite modificar especificações de instâncias com pagamento por especificação.

slb.s1.small

1.9.3 e posterior

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 uma instância CLB existente

Anotação

Descrição

Padrão

Versão do CCM

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

ID de uma instância CLB existente. Os listeners não são sobrescritos por padrão. Para sobrescrevê-los, defina force-override-listeners como "true". O CCM não sobrescreve listeners por padrão pelos seguintes motivos: (1) Sobrescrever listeners associados a aplicações pode causar interrupções no serviço. (2) O CCM oferece suporte limitado a configurações de backend e não lida com configurações complexas. Sobrescreva listeners apenas quando as portas não estiverem mais em uso. Em versões do CCM anteriores à V2.10.0, não é possível adicionar tags adicionais ao usar uma instância CLB existente.

Nenhum

1.9.3.81-gca19cd4-aliyun e posterior

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

Usar uma instância CLB existente e forçar a sobrescrita de listeners

Se ocorrer um conflito de porta de listener, o listener original será excluído.

Anotação

Descrição

Padrão

Versão do CCM

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

ID da instância CLB existente. Os listeners não são sobrescritos por padrão. Para sobrescrevê-los, defina force-override-listeners como "true". Isso sobrescreve apenas os listeners gerenciados pelo Service atual. O CCM não sobrescreve listeners por padrão pelos seguintes motivos: (1) Sobrescrever listeners associados a aplicações pode causar interrupções no serviço. (2) O CCM oferece suporte limitado a configurações de backend e não lida com configurações complexas. Em versões do CCM anteriores à V2.10.0, não é possível adicionar tags adicionais ao usar uma instância CLB existente.

Nenhum

1.9.3.81-gca19cd4-aliyun e posterior

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

Define se os listeners da instância CLB existente devem ser sobrescritos. Valores válidos: "true", "false".

Importante

Se definido como "true", não associe um listener da instância CLB a múltiplos Services. Caso contrário, ocorrerá um conflito de configuração quando esses Services tentarem sobrescrever o mesmo listener.

"false"

1.9.3.81-gca19cd4-aliyun e posterior

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 as zonas primária e secundária

Após a definição, as zonas não podem ser alteradas. Algumas regiões não oferecem suporte a zonas primárias e secundárias. Verifique a disponibilidade na página de criação de instância CLB.

Anotação

Descrição

Padrão

Versão do CCM

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

ID da zona primária.

Nenhum

1.9.3.10-gfb99107-aliyun e posterior

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

ID da zona secundária.

Nenhum

1.9.3.10-gfb99107-aliyun e posterior

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 uma instância CLB com pagamento por largura de banda

Ambas as anotações são obrigatórias.

Anotação

Descrição

Padrão

Versão do CCM

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

Método de medição. Valores válidos: paybytraffic, paybybandwidth.

paybytraffic

1.9.3 e posterior

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

Largura de banda máxima em Mbit/s. Aplica-se apenas a instâncias CLB voltadas para a Internet. Para detalhes de faturamento, consulte ModifyLoadBalancerInstanceSpec.

50

1.9.3.10-gfb99107-aliyun e posterior

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 uma instância CLB

Ambas as anotações são obrigatórias.

Anotação

Descrição

Padrão

Versão do CCM

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

Defina como intranet para criar uma instância CLB interna. Valores válidos: internet, intranet.

internet

1.9.3 e posterior

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

ID do vSwitch. O vSwitch e o cluster devem estar na mesma Virtual Private Cloud (VPC). Defina address-type como "intranet" ao usar esta anotação. Consulte os IDs dos vSwitches no console VPC.

Nenhum

1.9.3 e posterior

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 uma instância CLB interna

Todas as três anotações são obrigatórias.

Anotação

Descrição

Padrão

Versão do CCM

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

Defina como intranet para criar uma instância CLB interna. Valores válidos: internet, intranet.

internet

1.9.3 e posterior

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

ID do vSwitch. O vSwitch e o cluster devem estar na mesma VPC. Consulte os IDs dos vSwitches no console VPC.

Nenhum

1.9.3 e posterior

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

Endereço IP da instância CLB interna. Deve estar dentro do bloco CIDR do vSwitch. Apenas endereços IPv4 são compatíveis. Use em conjunto com a anotação vswitch-id. O endereço IP não pode ser alterado após a definição.

Nenhum

2.7.0 e posterior

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 adicionais a uma instância CLB

Anotação

Descrição

Padrão

Versão do CCM

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

Tags para a instância CLB. Formato: "k1=v1,k2=v2". O CCM 2.10.0 e posterior permite modificar tags de instâncias existentes ou reutilizadas.

Importante

Após adicionar esta anotação, operações de tag realizadas no console CLB podem ser sobrescritas.

Nenhum

1.9.3 e posterior

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 uma instância CLB IPv6

Anotação

Descrição

Padrão

Versão do CCM

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

Versão do IP da instância CLB. Não pode ser alterada após a definição. Defina o modo kube-proxy do cluster como IPVS. Valores válidos: ipv4, ipv6. O endereço IPv6 só pode ser usado em uma rede IPv6.

ipv4

1.9.3.220-g24b1885-aliyun e posterior

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 uma instância CLB

Anotação

Descrição

Padrão

Versão do CCM

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

Define se a proteção contra exclusão deve ser ativada. Valores válidos: on, off.

Importante

Mesmo que você ative manualmente a proteção contra exclusão no console CLB para uma instância criada para um Service LoadBalancer, a execução de kubectl delete svc {your-svc-name} ainda pode excluir a instância CLB.

on

1.9.3.313-g748f81e-aliyun e posterior

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 o modo somente leitura de configuração para uma instância CLB

Anotação

Descrição

Padrão

Versão do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

Define se o modo somente leitura de configuração deve ser ativado. Valores válidos: ConsoleProtection, NonProtection.

ConsoleProtection

1.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 o nome de uma instância CLB

Anotação

Descrição

Padrão

Versão do CCM

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

Nome da instância CLB. Deve ter de 2 a 128 caracteres. Pode conter letras, dígitos, pontos (.), sublinhados (_) e hífens (-). Deve começar com uma letra.

Nenhum

1.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 o grupo de recursos para uma instância CLB

Anotação

Descrição

Padrão

Versão do CCM

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

ID do grupo de recursos. Não pode ser alterado após a definição. Consulte os IDs dos grupos de recursos no console Resource Management.

Nenhum

1.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

Especificar um hostname para um Service

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

Hostname para o Service. Deve obedecer às convenções de nomenclatura de nomes de domínio. Após adicionar esta anotação, o endereço IP externo do Service muda do IP do CLB para o hostname. Se você acessar o IP do CLB de dentro do cluster, as solicitações serão primeiro encaminhadas para a instância CLB correspondente.

Nota

(1) Se o protocolo do listener for TCP ou UDP, ocorrerá um loop quando solicitações internas do cluster forem encaminhadas para o IP do CLB. Para detalhes, consulte Por que não consigo acessar uma instância SLB?. (2) Esta anotação não associa automaticamente um nome de domínio à instância CLB. Compre e associe um nome de domínio separadamente. Para detalhes, consulte Comprar um nome de domínio.

Nenhum

2.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:30248/TCP,443:32670/TCP   10s

Criar uma instância CLB com pagamento por LCU

Anotação

Descrição

Padrão

Versão do CCM

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

Método de faturamento. Valores válidos: PayBySpec (por especificação), PayByCLCU (por Unidades de Capacidade do Load Balancer, ou LCUs).

Importante

Não é possível alterar a especificação de uma instância CLB com pagamento por LCU. Não especifique PayByCLCU e a anotação loadbalancer-spec simultaneamente.

PayBySpec

2.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

Reter instâncias CLB criadas automaticamente na exclusão do Service

Anotação

Descrição

Padrão

Versão do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete

Retém instâncias CLB criadas pelo Service quando este é excluído. Quando retidas, as tags kubernetes.do.not.delete e ack.aliyun.com são removidas da instância CLB e dos grupos de servidores. Os servidores existentes no grupo são mantidos. Um evento de Warning do tipo PreservedOnDelete é gerado durante a sincronização do Service. Verifique esse evento para confirmar se o recurso está ativado. Qualquer valor não vazio ativa a retenção.

Importante

Exclua o Service em vez de modificar seu tipo. Caso contrário, o Service pode ser reassociado incorretamente às instâncias CLB retidas.

Não ativado

2.10.0 e posterior

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

Anotações de listener

Especificar o período de persistência de sessão para um listener TCP

Anotação

Descrição

Padrão

Versão do CCM

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

Período de persistência de sessão em segundos. Aplica-se apenas a listeners TCP. Se uma instância CLB tiver múltiplos listeners TCP, esta configuração aplica-se a todos eles. Valores válidos: 0 a 3600. O valor 0 desativa a persistência de sessão. Para detalhes, consulte CreateLoadBalancerTCPListener.

0

1.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

Ativar persistência de sessão para listeners HTTP ou HTTPS

Estas anotações aplicam-se apenas a listeners HTTP e HTTPS. Se uma instância CLB tiver múltiplos listeners HTTP ou HTTPS, a configuração aplica-se a todos eles.

Anotação

Descrição

Padrão

Versão do CCM

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

Define se a persistência de sessão deve ser ativada. Valores válidos: on, off. Para detalhes, consulte CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

off

1.9.3 e posterior

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

Método de tratamento de cookie. Obrigatório quando sticky-session é on. Valores válidos: insert (insere o cookie), server (reescreve o cookie). Para detalhes, consulte CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

Nenhum

1.9.3 e posterior

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

Tempo limite do cookie em segundos. Obrigatório quando sticky-session é on e sticky-session-type é insert. Valores válidos: 1 a 86400. Para detalhes, consulte CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

Nenhum

1.9.3 e posterior

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

Nome de um cookie configurado em um servidor de backend. Deve ter de 1 a 200 caracteres. Pode conter apenas letras ASCII e dígitos. Não pode conter vírgulas (,), ponto e vírgula (;) ou espaços. Não pode começar com cifrão ($). Obrigatório quando sticky-session é on e sticky-session-type é server. Para detalhes, consulte CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener.

Nenhum

1.9.3 e posterior

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.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 (ACL) para uma instância CLB

Crie uma ACL no console CLB e anote o ID da ACL antes de usar estas anotações. Você pode configurar apenas uma ACL por listener.

Anotação

Descrição

Padrão

Versão do CCM

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

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

off

1.9.3.164-g2105d2e-aliyun e posterior

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

ID da ACL a ser associada a um listener. Obrigatório quando acl-status é "on".

Nenhum

1.9.3.164-g2105d2e-aliyun e posterior

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

Tipo de ACL. Valores válidos: white (lista de permissões -- apenas solicitações de endereços IP listados são encaminhadas; se vazia, todas as solicitações são encaminhadas), black (lista de bloqueios -- solicitações de endereços IP listados são bloqueadas; se vazia, todas as solicitações são encaminhadas). Obrigatório quando acl-status é "on".

Importante

Uma lista de permissões configurada incorretamente pode gerar riscos. Se você ativar uma lista de permissões mas não adicionar um endereço IP à ACL, todas as solicitações serão encaminhadas.

Nenhum

1.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 uma instância CLB

O redirecionamento de porta encaminha solicitações de uma porta HTTP para uma porta HTTPS. Todas as três anotações são obrigatórias.

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

ID do certificado para a instância CLB. Visualize os IDs de certificados na página Certificates do console CLB. Para detalhes, consulte Usar um certificado do Alibaba Cloud SSL Certificates Service.

Nenhum

1.9.3.164-g2105d2e-aliyun e posterior

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

Encaminhar solicitações de uma porta HTTP para a porta HTTPS especificada. Formato: 80:443.

Nenhum

1.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

Especificar o algoritmo de agendamento para uma instância CLB

Anotação

Descrição

Padrão

Versão do CCM

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

Algoritmo de agendamento. Valores válidos: wrr (round-robin ponderado -- servidores de backend com pesos maiores recebem mais solicitações), rr (round-robin -- solicitações são distribuídas sequencialmente aos servidores de backend), sch (hashing consistente baseado no IP de origem), tch (hashing consistente baseado em quádrupla: IP de origem, IP de destino, porta de origem, porta de destino). Para detalhes, consulte o campo Scheduler em CreateLoadBalancerTCPListener.

rr

1.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

Nenhuma anotação é necessária. Defina o campo protocol como UDP na especificação do Service.

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

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.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

Listeners HTTPS na instância CLB descriptografam solicitações HTTPS em solicitações HTTP e as encaminham para pods nos servidores de backend.

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

ID do certificado para a instância CLB. Visualize os IDs de certificados na página Certificates do console CLB. Para detalhes, consulte Usar um certificado do Alibaba Cloud SSL Certificates Service.

Nenhum

1.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

Configurar verificações de integridade

Ativar verificações de integridade TCP

As verificações de integridade são ativadas por padrão para listeners TCP.

Anotação

Descrição

Padrão

Versão do CCM

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

Define se as verificações de integridade devem ser ativadas para um listener TCP ou UDP. Valores válidos: on, off.

on

2.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. Para detalhes, consulte CreateLoadBalancerTCPListener.

tcp

1.9.3 e posterior

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

Tempo limite da verificação de integridade em segundos. Se um servidor de backend não retornar uma resposta dentro desse período, ele falha na verificação. Valores válidos: 1 a 300. Se o valor do tempo limite for menor que o valor do intervalo, o tempo limite não terá efeito. Para detalhes, consulte CreateLoadBalancerTCPListener.

5

1.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 antes que um servidor de backend não íntegro seja declarado íntegro (de fail para success). Valores válidos: 2 a 10. Para detalhes, consulte CreateLoadBalancerTCPListener.

3

1.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 antes que um servidor de backend íntegro seja declarado não íntegro. Valores válidos: 2 a 10. Para detalhes, consulte CreateLoadBalancerTCPListener.

3

1.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 a 50. Para detalhes, consulte CreateLoadBalancerTCPListener.

2

1.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

Ativar verificações de integridade UDP

As verificações de integridade são ativadas por padrão para listeners UDP.

Anotação

Descrição

Padrão

Versão do CCM

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

Define se as verificações de integridade devem ser ativadas para um listener TCP ou UDP. Valores válidos: on, off.

on

2.6.0 e posterior

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

Tempo limite da verificação de integridade em segundos. Se um servidor de backend não retornar uma resposta dentro desse período, ele falha na verificação. Valores válidos: 1 a 300. Se o valor do tempo limite for menor que o valor do intervalo, o tempo limite não terá efeito. Para detalhes, consulte CreateLoadBalancerUDPListener.

5

1.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 antes que um servidor de backend não íntegro seja declarado íntegro. Valores válidos: 2 a 10. Para detalhes, consulte CreateLoadBalancerUDPListener.

3

1.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 antes que um servidor de backend íntegro seja declarado não íntegro. Valores válidos: 2 a 10. Para detalhes, consulte CreateLoadBalancerUDPListener.

3

1.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 a 50. Para detalhes, consulte CreateLoadBalancerUDPListener.

2

1.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 um listener TCP ou UDP

Anotação

Descrição

Padrão

Versão do CCM

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

Define se as verificações de integridade devem ser ativadas para um listener TCP ou UDP. Valores válidos: on, off.

on

2.6.0 e posterior

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

Ativar verificações de integridade HTTP

Anotação

Descrição

Padrão

Versão do CCM

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

Define se as verificações de integridade devem ser ativadas. Para listeners TCP, isso é sempre on e não pode ser alterado. Para listeners HTTP, o padrão é off. Valores válidos: on, off.

off

1.9.3 e posterior

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

Tipo de verificação de integridade. Valores válidos: tcp, http. Para detalhes, consulte CreateLoadBalancerHTTPListener.

tcp

1.9.3 e posterior

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

URI para verificações de integridade. Não é necessário para verificações TCP.

Nenhum

1.9.3 e posterior

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

Código de status HTTP para uma verificação de integridade bem-sucedida. Separe múltiplos códigos com vírgulas. Valores válidos: http_2xx, http_3xx, http_4xx, http_5xx. Para detalhes, consulte CreateLoadBalancerHTTPListener.

http_2xx

1.9.3 e posterior

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

Nome de domínio para verificações de integridade. $_ip usa o endereço IP privado do servidor de backend. Ou especifique um domínio personalizado (1 a 80 caracteres, pode conter letras, dígitos, pontos e hífens). Para detalhes, consulte CreateLoadBalancerHTTPListener.

Nenhum

1.9.3 e posterior

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

Tempo limite da verificação de integridade em segundos. Aplica-se a verificações HTTP. Se um servidor de backend não responder dentro desse período, ele falha na verificação. Valores válidos: 1 a 300. Se o valor do tempo limite for menor que o valor do intervalo, o tempo limite não terá efeito. Para detalhes, consulte CreateLoadBalancerHTTPListener.

Nenhum

1.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 antes que um servidor de backend não íntegro seja declarado íntegro. Valores válidos: 2 a 10. Para detalhes, consulte CreateLoadBalancerHTTPListener.

3

1.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 antes que um servidor de backend íntegro seja declarado não íntegro. Valores válidos: 2 a 10. Para detalhes, consulte CreateLoadBalancerHTTPListener.

3

1.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 a 50. Para detalhes, consulte CreateLoadBalancerHTTPListener.

2

1.9.3 e posterior

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

Método de verificação de integridade para listeners HTTP. Valores válidos: head, get.

Nenhum

2.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"
    # Optional: Specify the HTTP status codes for health checks.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
    # Optional: Specify the domain name for health checks.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
    # Optional: Specify the health check method.
    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

Configurar drenagem de conexão para um listener

Aplica-se apenas a listeners TCP e UDP.

Anotação

Descrição

Padrão

Versão do CCM

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

Define se a drenagem de conexão deve ser ativada. Valores válidos: on, off.

Nenhum

2.0.1 e posterior

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

Tempo limite da drenagem de conexão em segundos. Valores válidos: 10 a 900.

Nenhum

2.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

Aplica-se apenas a listeners HTTP e HTTPS.

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

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

off

2.1.0 e posterior

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

Define se o cabeçalho XForwardedFor_SLBPORT deve ser usado para recuperar as portas do listener da instância CLB. Valores válidos: on, off.

off

2.9.1 e posterior

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

Define se o cabeçalho XForwardedFor_ClientSrcPort deve ser usado para recuperar a porta de origem do cliente. Valores válidos: on, off.

off

2.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

Especificar o tempo limite de conexão ociosa para um listener

Aplica-se apenas a listeners HTTP e HTTPS.

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

Tempo limite de conexão ociosa em segundos. Valores válidos: 1 a 60.

15

2.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

Aplica-se apenas a listeners HTTPS.

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

ID do certificado para a instância CLB. Visualize os IDs de certificados na página Certificates do console CLB. Para detalhes, consulte Usar um certificado do Alibaba Cloud SSL Certificates Service.

Nenhum

1.9.3.164-g2105d2e-aliyun e posterior

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

Define se o HTTP/2 deve ser ativado. Valores válidos: on, off.

on

2.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

Especificar o tempo limite de solicitação para um listener

Aplica-se apenas a listeners HTTP e HTTPS.

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

Tempo limite de solicitação em segundos. Se o servidor de backend não responder dentro desse período, a instância CLB retorna um erro HTTP 504 ao cliente. Valores válidos: 1 a 180.

60

2.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 o tempo limite de conexão para um listener

Aplica-se apenas a listeners TCP.

Anotação

Descrição

Padrão

Versão do CCM

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

Tempo limite de conexão em segundos. Valores válidos: 10 a 900. Para detalhes, consulte CreateLoadBalancerTCPListener.

Nenhum

2.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 políticas de segurança para um listener

Aplica-se apenas a listeners HTTPS.

Anotação

Descrição

Padrão

Versão do CCM

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

Mapeamento de protocolo e porta. Formato: https:443,http:80.

Nenhum

1.9.3 e posterior

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

ID do certificado para a instância CLB. Visualize os IDs de certificados na página Certificates do console CLB. Para detalhes, consulte Usar um certificado do Alibaba Cloud SSL Certificates Service.

Nenhum

1.9.3.164-g2105d2e-aliyun e posterior

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

Política de segurança TLS. Cada política contém versões do protocolo TLS e conjuntos de cifras para HTTPS. 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. Para detalhes, consulte CreateLoadBalancerHTTPSListener.

tls_cipher_policy_1_0

2.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 simultaneamente para um listener

Requer clusters executando Kubernetes 1.24 ou posterior. Para atualizar um cluster, consulte Atualizar manualmente clusters ACK .
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

Descrição

Padrão

Versão do CCM

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

Define se o Proxy Protocol deve ser ativado para um listener TCP ou UDP. Transmite endereços IP do cliente para os servidores de backend. Valores válidos: on, off.

Importante

Ativar o Proxy Protocol pode causar interrupções no serviço. Pare e atualize suas aplicações antes de ativar o Proxy Protocol.

off

2.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

Anotações de grupo de servidores de backend

Adicionar nós workers com rótulos específicos como servidores de backend

Anotação

Descrição

Padrão

Versão do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label

Rótulos dos nós workers a serem adicionados como servidores de backend. Formato: "k1=v1,k2=v2". Um nó deve ter todos os rótulos especificados para ser adicionado como servidor de backend.

Nenhum

1.9.3 e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label: "failure-domain.beta.kubernetes.io/zone=ap-southeast-5a"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Adicionar nós hospedeiros dos pods como servidores de backend

Por padrão, externalTrafficPolicy é definido como Cluster. No modo Cluster, todos os nós do cluster são adicionados como servidores de backend. No modo Local, apenas os nós onde os pods estão implantados são adicionados.

Anotação

Descrição

Padrão

Versão do CCM

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

Algoritmo de agendamento. No modo Local, defina o algoritmo de agendamento como wrr. Para CCM V1.9.3.164-g2105d2e-aliyun e posterior, os pesos dos nós são calculados com base no número de pods em execução em cada nó quando externalTrafficPolicy está definido como Local. Para detalhes, consulte Como o CCM calcula os pesos dos nós no modo Local? no FAQ de Services. Valores válidos: wrr (round-robin ponderado), rr (round-robin).

rr

1.9.3 e posterior

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

Remover nós não agendáveis do grupo de servidores de backend

Anotação

Descrição

Padrão

Versão do CCM

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend

Define se os nós não agendáveis devem ser removidos do grupo de servidores de backend. Valores válidos: on (remove nós não agendáveis), off (nós definidos como não agendáveis por kubectl cordon ou kubectl drain permanecem no grupo de servidores de backend).

off

1.9.3.164-g2105d2e-aliyun e posterior

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

Adicionar pods com interfaces de rede elásticas (ENIs) como servidores de backend

Anotação

Descrição

Padrão

Versão do CCM

service.beta.kubernetes.io/backend-type

Tipo de recursos a serem adicionados como servidores de backend. Valores válidos: eni (adiciona pods para melhorar o desempenho de encaminhamento de rede; funciona apenas no modo Terway; você pode alternar de "eni" para "ecs"), ecs (adiciona instâncias ECS). O comportamento padrão varia conforme o modo de rede: Flannel usa ecs por padrão; Terway criado antes de 10 de agosto de 2020 usa ecs por padrão; Terway criado após 10 de agosto de 2020 usa eni por padrão.

Varia conforme o modo

1.9.3.164-g2105d2e-aliyun e posterior

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/backend-type: "eni"
  name: nginx
spec:
  ports:
  - name: http
    port: 30080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Reutilizar um grupo vServer existente

Anotação

Descrição

Padrão

Versão do CCM

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

Reutiliza um grupo vServer existente. Funciona apenas quando você usa uma instância CLB existente. Para detalhes, consulte Usar o CCM para implantar serviços em vários clusters.

Nenhum

--

Especificar pesos para Services para ativar round-robin ponderado

Anotação

Descrição

Padrão

Versão do CCM

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

Porcentagem de tráfego distribuída ao Service atual quando múltiplos Services compartilham a mesma instância CLB. Funciona apenas quando um grupo vServer existente é reutilizado. Para detalhes, consulte Usar o CCM para implantar serviços em vários clusters.

Nenhum

--

Referências