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
alicloudnas chaves de anotação mudou paraalibaba-cloud. Antes:service.beta.kubernetes.io/alicloud-loadbalancer-id. Depois:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id. Anotações com a palavra-chave antigaalicloudainda 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 |
|
|
Tipo de endereço da instância CLB. Valores válidos: |
|
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 |
|
|
Método de faturamento da instância CLB. Valores válidos: |
|
2.4.0 e posterior |
|
|
Especificação da instância CLB. Valores válidos: |
|
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 |
|
|
ID de uma instância CLB existente. Os listeners não são sobrescritos por padrão. Para sobrescrevê-los, defina |
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 |
|
ID da instância CLB existente. Os listeners não são sobrescritos por padrão. Para sobrescrevê-los, defina |
Nenhum |
1.9.3.81-gca19cd4-aliyun e posterior |
|
Define se os listeners da instância CLB existente devem ser sobrescritos. Valores válidos: Importante
Se definido como |
|
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 |
|
|
ID da zona primária. |
Nenhum |
1.9.3.10-gfb99107-aliyun e posterior |
|
|
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 |
|
|
Método de medição. Valores válidos: |
|
1.9.3 e posterior |
|
|
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. |
|
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 |
|
|
Defina como |
|
1.9.3 e posterior |
|
|
ID do vSwitch. O vSwitch e o cluster devem estar na mesma Virtual Private Cloud (VPC). Defina |
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 |
|
|
Defina como |
|
1.9.3 e posterior |
|
|
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 |
|
|
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 |
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 |
|
Tags para a instância CLB. Formato: 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 |
|
|
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: |
|
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 |
|
Define se a proteção contra exclusão deve ser ativada. Valores válidos: 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 |
|
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 |
|
|
Define se o modo somente leitura de configuração deve ser ativado. Valores válidos: |
|
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 |
|
|
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 |
|
|
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 |
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
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 |
|
Método de faturamento. Valores válidos: Importante
Não é possível alterar a especificação de uma instância CLB com pagamento por LCU. Não especifique |
|
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 |
|
Retém instâncias CLB criadas pelo Service quando este é excluído. Quando retidas, as tags 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 |
|
|
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. |
|
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 |
|
|
Define se a persistência de sessão deve ser ativada. Valores válidos: |
|
1.9.3 e posterior |
|
|
Método de tratamento de cookie. Obrigatório quando |
Nenhum |
1.9.3 e posterior |
|
|
Tempo limite do cookie em segundos. Obrigatório quando |
Nenhum |
1.9.3 e posterior |
|
|
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 |
Nenhum |
1.9.3 e posterior |
|
|
Mapeamento de protocolo e porta. Formato: |
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 |
|
Define se o controle de acesso deve ser ativado. Valores válidos: |
|
1.9.3.164-g2105d2e-aliyun e posterior |
|
ID da ACL a ser associada a um listener. Obrigatório quando |
Nenhum |
1.9.3.164-g2105d2e-aliyun e posterior |
|
Tipo de ACL. Valores válidos: 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 |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
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 |
|
|
Encaminhar solicitações de uma porta HTTP para a porta HTTPS especificada. Formato: |
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 |
|
|
Algoritmo de agendamento. Valores válidos: |
|
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 |
|
|
Mapeamento de protocolo e porta. Formato: |
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 |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
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 |
|
|
Define se as verificações de integridade devem ser ativadas para um listener TCP ou UDP. Valores válidos: |
|
2.6.0 e posterior |
|
|
Tipo de verificação de integridade. Valores válidos: |
|
1.9.3 e posterior |
|
|
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. |
|
1.9.3 e posterior |
|
|
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 |
|
1.9.3 e posterior |
|
|
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. |
|
1.9.3 e posterior |
|
|
Intervalo entre verificações de integridade em segundos. Valores válidos: 1 a 50. Para detalhes, consulte CreateLoadBalancerTCPListener. |
|
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 |
|
|
Define se as verificações de integridade devem ser ativadas para um listener TCP ou UDP. Valores válidos: |
|
2.6.0 e posterior |
|
|
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. |
|
1.9.3 e posterior |
|
|
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. |
|
1.9.3 e posterior |
|
|
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. |
|
1.9.3 e posterior |
|
|
Intervalo entre verificações de integridade em segundos. Valores válidos: 1 a 50. Para detalhes, consulte CreateLoadBalancerUDPListener. |
|
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 |
|
|
Define se as verificações de integridade devem ser ativadas para um listener TCP ou UDP. Valores válidos: |
|
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 |
|
|
Define se as verificações de integridade devem ser ativadas. Para listeners TCP, isso é sempre |
|
1.9.3 e posterior |
|
|
Tipo de verificação de integridade. Valores válidos: |
|
1.9.3 e posterior |
|
|
URI para verificações de integridade. Não é necessário para verificações TCP. |
Nenhum |
1.9.3 e posterior |
|
|
Código de status HTTP para uma verificação de integridade bem-sucedida. Separe múltiplos códigos com vírgulas. Valores válidos: |
|
1.9.3 e posterior |
|
|
Nome de domínio para verificações de integridade. |
Nenhum |
1.9.3 e posterior |
|
|
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 |
|
|
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. |
|
1.9.3 e posterior |
|
|
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. |
|
1.9.3 e posterior |
|
|
Intervalo entre verificações de integridade em segundos. Valores válidos: 1 a 50. Para detalhes, consulte CreateLoadBalancerHTTPListener. |
|
1.9.3 e posterior |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
Método de verificação de integridade para listeners HTTP. Valores válidos: |
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 |
|
|
Define se a drenagem de conexão deve ser ativada. Valores válidos: |
Nenhum |
2.0.1 e posterior |
|
|
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 |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
Define se o cabeçalho |
|
2.1.0 e posterior |
|
|
Define se o cabeçalho |
|
2.9.1 e posterior |
|
|
Define se o cabeçalho |
|
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 |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
Tempo limite de conexão ociosa em segundos. Valores válidos: 1 a 60. |
|
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 |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
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 |
|
|
Define se o HTTP/2 deve ser ativado. Valores válidos: |
|
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 |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
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. |
|
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 |
|
|
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 |
|
|
Mapeamento de protocolo e porta. Formato: |
Nenhum |
1.9.3 e posterior |
|
|
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 |
|
|
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: |
|
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 |
|
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: Importante
Ativar o Proxy Protocol pode causar interrupções no serviço. Pare e atualize suas aplicações antes de ativar o Proxy Protocol. |
|
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 |
|
|
Rótulos dos nós workers a serem adicionados como servidores de backend. Formato: |
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 |
|
|
Algoritmo de agendamento. No modo Local, defina o algoritmo de agendamento como |
|
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 |
|
|
Define se os nós não agendáveis devem ser removidos do grupo de servidores de backend. Valores válidos: |
|
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 |
|
|
Tipo de recursos a serem adicionados como servidores de backend. Valores válidos: |
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 |
|
|
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 |
|
|
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
Considerações para configurar um Service LoadBalancer -- Considerações de configuração de Service e políticas de atualização do CCM para recursos CLB.
FAQ de Services -- Solução de problemas para issues de Services no ACK, incluindo anotações que não têm efeito.