Use annotations no arquivo YAML de um Service para ativar recursos adicionais de balanceamento de carga no Network Load Balancer (NLB), como especificar o tipo de rede do NLB, ativar a proteção contra modificações e configurar a autenticação mútua. Este tópico explica como utilizar essas annotations para configurar o NLB. As configurações estão organizadas em três tipos de recursos: instância do NLB, listeners e grupos de servidores.
Índice
Categoria | Categoria do recurso | Link de configuração |
Criação | ||
Configuração da instância | ||
Criação | ||
Configuração do listener | ||
Configuração de segurança | ||
Configuração do servidor | ||
Observações
Certifique-se de que seu cluster esteja na versão v1.24 ou posterior e que o add-on Cloud Controller Manager (CCM) esteja na versão v2.5.0 ou posterior. Para atualizar o cluster, consulte Atualizar manualmente um cluster; para atualizar o add-on, consulte Gerenciar add-ons.
Na definição do Service, defina
spec.loadBalancerClasscomoalibabacloud.com/nlb. Se esse parâmetro não for especificado, um Classic Load Balancer (CLB) será criado por padrão.Após a criação de um Service, não é possível alterar o campo
spec.loadBalancerClass. Não é possível converter o tipo de balanceador de carga de CLB para NLB ou vice-versa.Não é possível gerenciar instâncias do NLB no console do ACK. Utilize comandos
kubectlpara realizar todas as operações de gerenciamento.
Operações do NLB
Criar um NLB público
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Descrição | Versões suportadas do CCM |
Especifica a zona, o vSwitch, o endereço IP privado e as informações do EIP para o NLB. O formato é o seguinte:
| Zonas e IDs de vSwitch: v2.5.0 ou posterior Endereços IP privados e EIPs: v2.12.1 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Criar um NLB privado
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
Descrição | Versões suportadas do CCM |
Especifica o tipo de rede do NLB. Altere o valor desta annotation para alternar o NLB entre público e privado. Valores válidos:
Padrão: Acesse o console do NLB para visualizar as regiões e zonas suportadas. São necessárias pelo menos duas zonas. Separe múltiplas zonas por vírgulas, por exemplo, | v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar um endereço IP privado
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Descrição | Versões suportadas do CCM |
Especifica a zona, o vSwitch, o endereço IP privado e as informações do EIP para o NLB. O formato é o seguinte:
|
|
apiVersion: v1
kind: Service
metadata:
annotations:
# For example, cn-hangzhou-k:vsw-i123456:10.1.0.1,cn-hangzhou-j:vsw-j654321:10.2.0.1
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A}:${private-ipv4-A},${zone-B}:${vsw-B}:${private-ipv4-B}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar um ID de instância EIP
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Descrição | Versões suportadas do CCM |
Especifica a zona, o vSwitch, o endereço IP privado e as informações do EIP para o NLB. O formato é o seguinte:
| Zonas e IDs de vSwitch: v2.5.0 ou posterior Endereços IP privados e EIPs: v2.12.1 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
# If you do not need a private IP address, leave the private IP address field empty.
# For example, cn-hangzhou-k:vsw-i123456::eip-12345,cn-hangzhou-j:vsw-j654321::eip-54321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A}::${eip-A},${zone-B}:${vsw-B}::${eip-B}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar o nome do balanceador de carga
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
|
Descrição |
Versões suportadas do CCM |
|
Especifica o nome da instância do balanceador de carga. O nome deve ter de 2 a 128 caracteres, começar com uma letra ou caractere chinês e pode conter dígitos, pontos (.), sublinhados (_) e hifens (-). |
v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # The name of the NLB instance.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar um grupo de recursos
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
|
Descrição |
Versões suportadas do CCM |
|
Especifica o grupo de recursos para o balanceador de carga. O ID do grupo de recursos não pode ser alterado após a definição. Encontre o ID do grupo de recursos no console de Gerenciamento de Recursos. |
v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "${your-resource-group-id}" # The ID of the resource group.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Criar um NLB dual-stack
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Para anexar servidores backend IPv6, consulte Anexar servidores backend IPv6.
Descrição | Versões suportadas do CCM |
O modo kube-proxy do cluster deve ser IPVS. Especifica a versão do protocolo IP do NLB. A versão do protocolo IP não pode ser alterada após a criação. Valores válidos:
Padrão: | v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Adicionar tags adicionais
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
Descrição | Versões suportadas do CCM |
Adicione tags adicionais. Use vírgula (,) para separar múltiplas tags. Por exemplo, Importante Após adicionar esta annotation, quaisquer modificações manuais de tags feitas na instância do balanceador de carga no console serão sobrescritas. | v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Usar um balanceador de carga existente
Não adicione nem modifique a annotation de reutilização para um Service LoadBalancer existente. Isso pode causar falha na reutilização ou impedir que o balanceador de carga criado pelo CCM seja liberado.
Annotation: Múltiplas annotations são utilizadas, conforme descrito na tabela a seguir.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | Especifica o ID do balanceador de carga existente. | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | Define se as configurações dos listeners do NLB devem ser sincronizadas com base na configuração do Service. Valores válidos:
Padrão: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # The ID of the NLB instance.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Vincular um pacote de largura de banda compartilhada
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id
|
Descrição |
Versões suportadas do CCM |
|
Especifica o ID do pacote de largura de banda compartilhada a ser vinculado. Encontre o ID do pacote de largura de banda compartilhada no console da VPC. |
v2.9.1 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id: "cbwp-xxxxxxxxxx"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar o encaminhamento entre zonas
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cross-zone-enabled
Descrição | Versões suportadas do CCM |
Define se o encaminhamento entre zonas deve ser ativado. Valores válidos:
Padrão: | v2.13.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cross-zone-enabled: "off"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar uma lista de permissões de endereços IP de source
Campo: .spec.loadBalancerRanges
Descrição | Versões suportadas do CCM |
Este recurso aplica-se apenas a instâncias de NLB criadas e gerenciadas pelo CCM. Não há suporte para instâncias reutilizadas. Ao configurar este campo, o CCM cria automaticamente um grupo de segurança, define as regras de acesso necessárias e associa o grupo de segurança à instância do NLB. Se você não configurar este campo ou deixá-lo vazio, nenhum grupo de segurança será associado. Padrão: Vazio Importante
| v2.14.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
name: nginx
namespace: default
spec:
# Specify the allowed source IP address CIDR blocks.
loadBalancerSourceRanges:
- 10.0.0.0/8
- 172.16.0.0/16
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar o tipo de rede IPv6
Annotation: Múltiplas annotations são utilizadas, conforme descrito na tabela a seguir.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version | O modo kube-proxy do cluster deve ser IPVS. Esta annotation especifica a versão do protocolo IP para o NLB. A versão do protocolo IP não pode ser alterada após a criação. Valores válidos:
Padrão: | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type | Especifica o tipo de rede do endereço IPv6 do NLB. Valores válidos:
Padrão: Nota Para usar um endereço IPv6 público, deve existir um gateway IPv6 na VPC onde a instância do NLB está implantada. Para mais informações, consulte Criar e gerenciar um gateway IPv6. | v2.9.1 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type: internet # Specify the IPv6 network type as public.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Operações de listener
Definir um grupo de segurança do listener
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids
|
Descrição |
Versões suportadas do CCM |
|
Especifica os IDs dos grupos de segurança a serem associados ao listener. Separe vários IDs com vírgula (,), por exemplo, |
v2.6.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids: "sg-aaaaa,sg-bbbbb" # Separate multiple security group IDs with a comma (,).
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar um listener TCP e UDP
|
Descrição |
Versões suportadas do CCM |
|
Este recurso requer Kubernetes v1.24 ou posterior. Para mais informações sobre como atualizar um cluster, consulte Atualizar um cluster Kubernetes ACK. |
N/A |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: udp
port: 80
protocol: UDP
targetPort: 81
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Criar um listener TCP
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Criar um listener UDP
Se você não especificar uma verificação de integridade ao criar um listener UDP, uma verificação de integridade TCP será ativada por padrão para o grupo de servidores. Para listeners UDP, recomendamos usar uma annotation para especificar explicitamente uma verificação de integridade UDP ou desativar as verificações de integridade.
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: udp
port: 80
protocol: UDP
targetPort: 80
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Criar um listener TCPSSL
Annotation: Consulte a tabela a seguir para ver as annotations necessárias.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica o protocolo do listener. Para especificar vários protocolos, separe-os com vírgula (,), por exemplo, | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obter o ID, faça login no console do Certificate Management Service, crie um certificado e encontre o ID na página SSL Certificate Management. A figura a seguir mostra um exemplo:
|
Atualmente, listeners TCP/SSL não suportam grupos de servidores com persistência de endereço IP do cliente ativada. Isso significa que você não pode configurar as annotations service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:${port}" e service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on" simultaneamente. Se precisar obter endereços IP de clientes através do NLB, consulte Obter endereços IP reais de clientes em servidores backend através do NLB.
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar um intervalo de portas do listener
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range
Descrição | Versões suportadas do CCM |
Este recurso requer o plugin de rede Terway. Configure um listener para escutar em um intervalo de portas especificado. A instância do NLB encaminha o tráfego desse intervalo de portas para o mesmo intervalo nos servidores backend. Por exemplo, se você configurar o intervalo de portas 80-100, o tráfego para as portas 80 a 100 na instância do NLB será encaminhado para as portas 80 a 100 nos servidores backend. O formato é O | v2.11.4 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
# Configure listeners for the 80-100 and 400-500 port ranges.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range: "80-100:80.400-500:443"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
# This port configuration is mapped to the 80-100 range.
port: 80
protocol: TCP
# The targetPort specifies the health check port for the backend servers and must be an integer.
targetPort: 80
- name: https
# This port configuration is mapped to the 400-500 range.
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Ativar autenticação mútua
Annotation: Consulte a tabela a seguir para ver as annotations necessárias.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica o protocolo do listener. Para especificar vários protocolos, separe-os com vírgula (,), por exemplo, | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obter o ID, faça login no console do Certificate Management Service, crie um certificado e encontre o ID na página SSL Certificate Management. A figura a seguir mostra um exemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id | Para obter o ID, faça login no console do Certificate Management Service e encontre o ID nos detalhes do certificado na página PCA Certificate Management.
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert | Define se a autenticação mútua deve ser ativada. Valores válidos:
Valor padrão: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Definir uma política de segurança TLS
Annotation: Consulte a tabela a seguir para ver as annotations necessárias.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica o protocolo do listener. Para especificar vários protocolos, separe-os com vírgula (,), por exemplo, | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obter o ID, faça login no console do Certificate Management Service, crie um certificado e encontre o ID na página SSL Certificate Management. A figura a seguir mostra um exemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | O ID da política de segurança TLS. É possível usar políticas de segurança definidas pelo sistema ou personalizadas. Valores válidos:
Valor padrão: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_0"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Ativar Proxy Protocol
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
Descrição | Versões suportadas do CCM |
Define se o Proxy Protocol deve ser usado para passar endereços IP de clientes aos servidores backend. Valores válidos:
Valor padrão: Importante Antes de ativar o Proxy Protocol, certifique-se de que seus serviços backend suportem o Proxy Protocol v2. Caso contrário, as conexões falharão. Configure este parâmetro com cautela. | v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Passar informações adicionais via Proxy Protocol
Annotation: Consulte a tabela a seguir para ver as annotations necessárias.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol | Define se o Proxy Protocol deve ser usado para passar endereços IP de clientes aos servidores backend. Valores válidos:
Valor padrão: Importante Antes de ativar o Proxy Protocol, certifique-se de que seus serviços backend suportem o Proxy Protocol v2. Caso contrário, as conexões falharão. Configure este parâmetro com cautela. | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled | Define se o Proxy Protocol deve ser usado para passar o VpcId aos servidores backend. Valores válidos:
Valor padrão: | v2.9.1 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled | Define se o Proxy Protocol deve ser usado para passar o PrivateLinkEpId aos servidores backend. Valores válidos:
Valor padrão: | v2.9.1 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled | Define se o Proxy Protocol deve ser usado para passar o PrivateLinkEpsId aos servidores backend. Valores válidos:
Valor padrão: | v2.9.1 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Definir um limite de taxa de conexão do listener
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps
|
Descrição |
Versões suportadas do CCM |
|
O número máximo de novas conexões por segundo para uma instância de Network Load Balancer (NLB). O valor deve ser um número inteiro de 0 a 1.000.000. Um valor de 0 indica que não há limite. |
v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps: "100"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Definir um tempo limite de ociosidade do listener
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout
|
Descrição |
Versões suportadas do CCM |
|
O tempo limite de conexão ociosa em segundos. Valores válidos: 10 a 900. Valor padrão: 900 |
v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "60"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Definir uma política ALPN
Annotation: Consulte a tabela a seguir para ver as annotations necessárias.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica o protocolo do listener. Para especificar vários protocolos, separe-os com vírgula (,), por exemplo, | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obter o ID, faça login no console do Certificate Management Service, crie um certificado e encontre o ID na página SSL Certificate Management. A figura a seguir mostra um exemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn | Define se a Application-Layer Protocol Negotiation (ALPN) deve ser ativada. Valores válidos:
Valor padrão: | v2.10.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy | A política ALPN. Valores válidos:
Para mais informações, consulte o parâmetro |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy: "HTTP1Only"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar certificados adicionais
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica o protocolo do listener. Para especificar vários protocolos, separe-os com vírgula (,), por exemplo, | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obter o ID, faça login no console do Certificate Management Service, crie um certificado e encontre o ID na página SSL Certificate Management. A figura a seguir mostra um exemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-cert-ids | Os IDs de certificados adicionais. Separe vários IDs de certificados com vírgula (,). Para obter os IDs, faça login no console do Certificate Management Service, crie os certificados e encontre seus IDs na página SSL Certificate Management. A figura a seguir mostra um exemplo:
| v2.13.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-cert-ids: "${CertIdentifier-1},${CertIdentifier-2}" # Separate multiple additional certificate IDs with a comma (,).
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Operações típicas para grupos de servidores
Algoritmo de agendamento
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
Descrição | Versões suportadas do CCM |
O algoritmo de agendamento. Valores válidos:
Valor padrão: Para mais informações sobre os valores desta annotation, consulte o parâmetro | v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "sch"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Draining de conexão
annotation: Múltiplas annotations estão disponíveis, conforme descrito na tabela a seguir.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain | Define se o draining de conexão deve ser ativado. Se ativado, o seguinte comportamento ocorre quando um servidor backend é removido ou falha nas verificações de integridade:
Valor padrão: | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout | O período de tempo limite para o draining de conexão.
|
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
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:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Preservação do IP do cliente
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip
Descrição | Versões suportadas do CCM |
Define se a preservação do IP do cliente deve ser ativada. Valores válidos:
Valor padrão: | v2.5.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Verificações de integridade TCP
annotation: Múltiplas annotations estão disponíveis, conforme descrito na tabela a seguir. Para configurar verificações de integridade TCP, todas as annotations a seguir são obrigatórias. Por padrão, as verificações de integridade estão ativadas para portas TCP.
Annotation | Descrição |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Define se as verificações de integridade devem ser ativadas. Valores válidos:
Valor padrão: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | O protocolo de verificação de integridade. Valores válidos:
Valor padrão: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | A porta no servidor backend usada para verificações de integridade. Valores válidos: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | O tempo máximo de espera por uma resposta de verificação de integridade. Unidade: segundos. Valores válidos: Valor padrão: 5 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | O número de verificações de integridade bem-sucedidas consecutivas necessárias para que um servidor backend seja considerado íntegro. Valores válidos: Valor padrão: 2 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | O número de falhas consecutivas na verificação de integridade necessárias para que um servidor backend seja considerado não íntegro. Valores válidos: Valor padrão: 2 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | O intervalo entre verificações de integridade consecutivas. Unidade: segundos. Valores válidos: Valor padrão: 5 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "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: "5"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Verificações de integridade UDP
annotation: Múltiplas annotations estão disponíveis e todas são obrigatórias. Para usar verificações de integridade UDP, certifique-se de que todas as portas definidas no Service usem o protocolo UDP.
Annotation | Descrição |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Define se as verificações de integridade devem ser ativadas. Valores válidos:
Valor padrão: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | O protocolo de verificação de integridade. Valores válidos:
Valor padrão: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | A porta do servidor usada para verificações de integridade. Valores válidos: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | O tempo limite de resposta para uma única verificação de integridade. Se ocorrer um tempo limite, a verificação atual será considerada uma falha. Unidade: segundos. Intervalo de valores: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Um servidor backend é considerado íntegro após passar pelo número especificado de verificações de integridade consecutivas. Valores válidos: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Valor padrão: 2 O servidor backend é considerado não íntegro após este número de falhas consecutivas na verificação de integridade. Valores válidos: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | O intervalo entre verificações de integridade consecutivas. Unidade: segundos. Intervalo de valores: Este valor deve ser maior que o valor de |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "udp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "3"
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: "5"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: udp
port: 80
protocol: UDP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Verificações de integridade HTTP
annotation: Múltiplas annotations estão disponíveis, conforme descrito na tabela a seguir. Para configurar verificações de integridade HTTP, todas as annotations a seguir são obrigatórias. Por padrão, as verificações de integridade usam o protocolo TCP.
Annotation | Descrição | Versões suportadas do CCM |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Define se as verificações de integridade devem ser ativadas. Valores válidos:
Valor padrão: | v2.5.0 ou posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | O protocolo de verificação de integridade. Valores válidos:
Valor padrão: | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | O caminho para a verificação de integridade. Deve ter de 1 a 80 caracteres, começar com uma barra ( Nota Este parâmetro é válido apenas quando | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | O nome de domínio usado para verificações de integridade. Valores válidos:
Nota Este parâmetro é válido apenas quando | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | A porta no servidor backend usada para verificações de integridade. Valores válidos: | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | O tempo máximo de espera por uma resposta de verificação de integridade. Unidade: segundos. Valores válidos: Valor padrão: 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | O número de verificações de integridade bem-sucedidas consecutivas necessárias para que um servidor backend seja considerado íntegro. Valores válidos: Valor padrão: 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | O número de falhas consecutivas na verificação de integridade necessárias para que um servidor backend seja considerado não íntegro. Valores válidos: Valor padrão: 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | O intervalo entre verificações de integridade consecutivas. Unidade: segundos. Valores válidos: Valor padrão: 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | O método de verificação de integridade. Valores válidos:
Nota Este parâmetro é válido apenas quando |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
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-health-check-domain: "www.test.com"
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-connect-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
# Set the health check method. This annotation is optional.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Tipo de grupo de servidores
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type
Descrição | Versões suportadas do CCM |
O tipo do grupo de servidores. Valores válidos:
Valor padrão: Para mais informações sobre os tipos de grupos de servidores NLB, consulte Grupos de servidores. | v2.8.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Servidores backend IPv6
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-ip-version
Descrição | Versões suportadas do CCM |
A versão IP dos servidores backend no grupo de servidores.
Valor padrão: ipv4 Nota Ao adicionar servidores backend IPv4 e IPv6 a um grupo de servidores, o uso da cota de pods é dobrado. |
|
Reutilizar um grupo de servidores
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
Esta annotation permite reutilizar um grupo de servidores existente. Ela entra em vigor apenas quando você reutiliza uma instância de NLB existente. Para um exemplo, consulte Implantar serviços em clusters reutilizando um balanceador de carga.
Peso de tráfego do serviço
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
Em cenários onde múltiplos Services reutilizam a mesma instância de NLB, use esta annotation para definir o peso de tráfego para o Service atual. Esta annotation entra em vigor apenas quando você reutiliza um grupo de servidores existente. Para um exemplo, consulte Implantar serviços em clusters reutilizando um balanceador de carga.
Ignorar atualizações de peso
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
Descrição | Versões suportadas do CCM |
Quando definido como
Valor padrão: | v2.11.1 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Peso padrão do servidor backend
annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight
Descrição | Versões suportadas do CCM |
O peso padrão dos servidores backend no grupo de servidores. Um peso maior significa que o servidor recebe uma parcela maior do tráfego recebido. A quantidade aumenta. Valores válidos: Esta configuração não entra em vigor quando a instância backend é uma instância ECS e o | v2.14.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
# Sets the default weight of servers in the server group to 35.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight: "35"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer

