Utilize annotations em um arquivo YAML de Service para configurar instâncias de CLB, listeners e grupos de servidores de backend.
Índice
Annotations
As annotations diferenciam maiúsculas de minúsculas.
Verifique a versão necessária do CCM para cada annotation antes de usá-la. Para atualizar o CCM, consulte gerenciar componentes. Log de alterações do CCM: Cloud Controller Manager.
-
A partir de 11 de setembro de 2019, para
annotations, o prefixoalicloudfoi atualizado paraalibaba-cloud.Por exemplo:
Antes da atualização:
service.beta.kubernetes.io/alicloud-loadbalancer-idApós a atualização:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idO sistema mantém compatibilidade com o formato
alicloud. Não é necessário alterar as configurações existentes.
Operações do CLB
Criar um balanceador de carga público
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Criar um balanceador de carga privado
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
|
Descrição |
Padrão |
Versões suportadas do CCM |
|
Define o tipo de endereço do balanceador de carga. Valores válidos:
|
internet |
v1.9.3 e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Especificar a especificação do balanceador de carga
Annotation: Múltiplas, conforme mostrado na tabela a seguir.
|
Annotation |
Descrição |
Padrão |
Versões suportadas do CCM |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type |
Define o método de faturamento da instância. Use
|
PayBySpec |
v1.9.3 e posteriores |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec |
A especificação da instância de CLB. Utilize esta annotation para criar uma instância com uma especificação específica ou atualizar uma existente. CreateLoadBalancer. Importante
Se você modificar a especificação no console do CLB (operação suportada apenas para instâncias com pagamento por especificação), o CCM poderá reverter a alteração. |
slb.s1.small |
v1.9.3 e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayBySpec"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Usar um balanceador de carga existente
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id
|
Descrição |
Padrão |
Versões suportadas do CCM |
|
O ID da instância do balanceador de carga. Use esta annotation para especificar uma instância de CLB existente.
|
Nenhum |
v1.9.3.81-gca19cd4-aliyun e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}" # Multiple policy groups cannot be configured.
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Usar um balanceador de carga existente e substituir listeners
Annotation: Múltiplas, conforme mostrado na tabela a seguir. Esta operação substitui forçadamente os listeners existentes. Se houver conflito de porta de listener, o listener existente será excluído.
|
Annotation |
Descrição |
Padrão |
Versões suportadas do CCM |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id |
O ID da instância de CLB existente.
|
||
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners |
Define se os listeners da instância de CLB devem ser substituídos forçadamente. Valores válidos:
Importante
Ao reutilizar um CLB existente e definir |
"false" |
v1.9.3.81-gca19cd4-aliyun e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Especificar zonas de disponibilidade primária e secundária
Annotation: Múltiplas, conforme mostrado na tabela a seguir. As zonas de disponibilidade primária e secundária não podem ser alteradas após a criação da instância.
A disponibilidade varia por região. Verifique a página de criação de instância de CLB.
|
Annotation |
Descrição |
Padrão |
Versões suportadas do CCM |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid |
O ID da zona de disponibilidade primária. |
Nenhum |
v1.9.3.10-gfb99107-aliyun e posteriores |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid |
O ID da zona de disponibilidade secundária. |
Nenhum |
v1.9.3.10-gfb99107-aliyun e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Criar um balanceador de carga com pagamento por largura de banda
Annotation: Múltiplas, conforme mostrado na tabela a seguir. As duas annotations a seguir são obrigatórias.
|
Annotation |
Descrição |
Padrão |
Versões suportadas do CCM |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type |
O método de faturamento da instância do balanceador de carga. Valores válidos:
|
paybytraffic |
v1.9.3 e posteriores |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth |
A largura de banda de pico da instância de CLB. Aplica-se apenas a instâncias de CLB públicas. Alterar o método de faturamento de uma instância de balanceador de carga pública. |
50 |
v1.9.3.10-gfb99107-aliyun e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Especificar um vSwitch para um balanceador de carga
Annotation: Múltiplas, conforme mostrado na tabela a seguir. As duas annotations a seguir são obrigatórias.
|
Annotation |
Descrição |
Padrão |
Versões suportadas do CCM |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type |
Define o tipo de endereço do balanceador de carga. Valores válidos:
|
internet |
v1.9.3 e posteriores |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id |
O ID do vSwitch ao qual a instância do balanceador de carga pertence. O vSwitch deve estar na mesma VPC que o cluster Kubernetes. Esta annotation requer a definição de Você pode encontrar o ID do vSwitch no console da VPC. |
Nenhum |
v1.9.3 e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Especificar um endereço IP para um balanceador de carga privado
Annotation: Múltiplas, conforme mostrado na tabela a seguir. As três annotations a seguir são obrigatórias.
|
Annotation |
Descrição |
Padrão |
Versões suportadas do CCM |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type |
Define o tipo de endereço do balanceador de carga. Valores válidos:
|
internet |
v1.9.3 e posteriores |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id |
O ID do vSwitch ao qual a instância do balanceador de carga pertence. O vSwitch deve estar na mesma VPC que o cluster Kubernetes. Esta annotation requer a definição de Você pode encontrar o ID do vSwitch no console da VPC. |
Nenhum |
v1.9.3 e posteriores |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip |
O endereço IP da instância do balanceador de carga privado.
|
Nenhum |
v2.7.0 e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
name: nginx
namespace: default
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
name: http
selector:
app: nginx
Adicionar tags a um balanceador de carga
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
|
Descrição |
Padrão |
Versões suportadas do CCM |
|
Uma lista separada por vírgulas de tags a serem adicionadas, por exemplo, |
Nenhum |
v1.9.3 e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Criar um balanceador de carga IPv6
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
|
Descrição |
Padrão |
Versões suportadas do CCM |
|
A versão de IP da instância do balanceador de carga. A versão de IP não pode ser alterada após a criação da instância. Para usar este recurso, o kube-proxy no seu cluster deve executar no modo IPVS. Valores válidos:
|
ipv4 |
v1.9.3.220-g24b1885-aliyun e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
name: nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Ativar proteção contra exclusão para um balanceador de carga
Annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
|
Descrição |
Padrão |
Versões suportadas do CCM |
|
Define se a proteção contra exclusão está ativada para a instância do balanceador de carga. Valores válidos:
Importante
Observe que, se você ativar a proteção contra exclusão no console do CLB, a instância do balanceador de carga ainda poderá ser excluída executando o comando |
on |
v1.9.3.313-g748f81e-aliyun e posteriores |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Ativar proteção contra modificações para um balanceador de carga
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection
|
Descrição |
Padrão |
Versões do CCM suportadas |
|
Define o status de proteção contra modificações para a instância do balanceador de carga. Valores válidos:
|
ConsoleProtection |
v1.9.3.313-g748f81e-aliyun e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Especificar um nome para o balanceador de carga
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
|
Descrição |
Padrão |
Versões do CCM suportadas |
|
Nome da instância CLB. Deve ter entre 2 e 128 caracteres, começando com uma letra ou caractere chinês. Pode conter dígitos, pontos (.), sublinhados (_) e hifens (-). |
Nenhum |
v1.9.3.313-g748f81e-aliyun e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Especificar um grupo de recursos para um balanceador de carga
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
|
Descrição |
Padrão |
Versões do CCM suportadas |
|
ID do grupo de recursos da instância do balanceador de carga. O ID do grupo de recursos não pode ser alterado após definido. Encontre os IDs dos grupos de recursos no console Resource Management. |
Nenhum |
v1.9.3.313-g748f81e-aliyun e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Definir um hostname para um Service
Anotação: Múltiplas, conforme mostrado na tabela a seguir.
|
Anotação |
Descrição |
Padrão |
Versões do CCM suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com vírgulas (,), por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname |
Define um hostname para o Service. O hostname deve estar em conformidade com as convenções de nomenclatura DNS. Observe o seguinte:
|
Nenhum |
v2.3.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname: "${your_service_hostname}"
name: nginx-svc
namespace: default
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Saída esperada:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-svc LoadBalancer 47.100.XX.XX www.example.com 80/TCP,443/TCP 10s
Criar um balanceador de carga com pagamento conforme o uso
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type
|
Descrição |
Padrão |
Versões do CCM suportadas |
|
Método de faturamento da instância. Valores válidos:
Importante
Não é possível definir uma especificação para uma instância de balanceador de carga faturada por consumo. O valor |
PayBySpec |
v2.4.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Ações comuns de listener
Configurar persistência de sessão TCP
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout
|
Descrição |
Padrão |
Versões do CCM suportadas |
|
Define o tempo de persistência de sessão para listeners TCP. Se uma instância de balanceador de carga tiver vários listeners TCP, essa configuração se aplica a todos eles por padrão. Faixa de valores: 0–3600 segundos. Padrão: 0 (persistência de sessão desativada). CreateLoadBalancerTCPListener. |
0 |
v1.9.3 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Configurar sessão persistente (inserir cookie)
São necessárias várias anotações, conforme mostrado na tabela a seguir. O método de inserção de cookie requer três anotações.
Este recurso aplica-se apenas a instâncias de balanceador de carga com listeners HTTP ou HTTPS.
Por padrão, essa configuração de sessão persistente aplica-se a todos os listeners HTTP e HTTPS configurados.
|
Anotação |
Descrição |
Padrão |
Versão do CCM suportada |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session |
Ativa ou desativa sessões persistentes. Esta configuração aplica-se apenas a listeners HTTP e HTTPS. Valores válidos:
CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener. |
off |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type |
Especifica o método de tratamento de cookies. Esta configuração é efetiva apenas para listeners HTTP e HTTPS. Esta anotação é obrigatória quando
CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener. |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout |
Tempo limite do cookie em segundos. A faixa válida é de 1 a 86.400. Esta anotação é obrigatória quando CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener. |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie |
Nome do cookie configurado no servidor. O nome deve ter entre 1 e 200 caracteres e conter apenas letras ASCII e dígitos. Não pode conter vírgulas (,), ponto e vírgula (;) ou espaços, e não deve começar com um cifrão ($). Esta anotação é obrigatória quando CreateLoadBalancerHTTPListener e CreateLoadBalancerHTTPSListener. |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Especifica as portas do listener às quais as configurações de sessão persistente se aplicam. Por padrão, as configurações aplicam-se a todos os listeners. Separe várias entradas com uma vírgula (,). Exemplo: |
Nenhum |
v1.9.3 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Configurar uma lista de controle de acesso
Nota: As três anotações na tabela a seguir são obrigatórias.
Antes de usar essas anotações, crie uma lista de controle de acesso no console Classic Load Balancer (CLB) e registre seu ID.
|
Anotação |
Descrição |
Padrão |
Versões suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status |
Define se o controle de acesso deve ser ativado. Valores válidos:
|
off |
v1.9.3.164-g2105d2e-aliyun e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id |
ID da lista de controle de acesso a ser associada ao listener. Este parâmetro é obrigatório quando |
Nenhum |
v1.9.3.164-g2105d2e-aliyun e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type |
Tipo de controle de acesso. Valores possíveis:
|
Nenhum |
v1.9.3.164-g2105d2e-aliyun e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Configurar redirecionamento de porta para um balanceador de carga
O redirecionamento de porta encaminha solicitações de uma porta HTTP para uma porta HTTPS.
Anotações: As três anotações a seguir são obrigatórias.
|
Anotação |
Descrição |
Padrão |
Versões do CCM suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com uma vírgula, por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
ID do certificado Alibaba Cloud. Faça login no console CLB e visualize o ID do certificado na página Certificates. Nota
Para criar um certificado, consulte Selecionar um certificado emitido pela Alibaba Cloud. |
Nenhum |
v1.9.3.164-g2105d2e-aliyun e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port |
Encaminha solicitações HTTP para uma porta HTTPS, por exemplo, |
Nenhum |
v1.9.3.164-g2105d2e-aliyun e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
name: nginx
namespace: default
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 80
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Algoritmo de agendamento do balanceador de carga
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
|
Descrição |
Padrão |
Versões suportadas |
|
Algoritmo de agendamento. Valores válidos:
|
rr |
v1.9.3 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Criar um listener UDP
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Criar um listener HTTP
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port
|
Descrição |
Padrão |
Versões do CCM suportadas |
|
Separe vários valores com vírgulas, por exemplo, |
Nenhum |
v1.9.3 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Criar um listener HTTPS
Anotação: Para as anotações obrigatórias, consulte a tabela a seguir.
A camada CLB descriptografa solicitações HTTPS e as envia aos Pods backend como solicitações HTTP.
|
Anotação |
Descrição |
Padrão |
Versões do CCM suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com vírgulas, por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
ID do certificado Alibaba Cloud. Faça login no console CLB e visualize o ID do certificado na página Certificates. Nota
Para criar um certificado, consulte Selecionar um certificado emitido pela Alibaba Cloud. |
Nenhum |
v1.9.3.164-g2105d2e-aliyun e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Criar um listener com verificação de integridade
Configurar uma verificação de integridade TCP
Anotações: A tabela a seguir lista as anotações obrigatórias.
Por padrão, as verificações de integridade estão ativadas para portas TCP.
|
Anotação |
Descrição |
Padrão |
Versão do CCM suportada |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch |
Define se as verificações de integridade devem ser ativadas para listeners TCP e UDP. Valores válidos:
|
on |
v2.6.0 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type |
Tipo de verificação de integridade. Valores válidos:
|
tcp |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout |
Tempo de espera por uma resposta de verificação de integridade, em segundos. Se um servidor backend não responder dentro desse período, a verificação de integridade falhará. Valores válidos: 1–300. Se o valor de |
5 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold |
Número de verificações de integridade bem-sucedidas consecutivas necessárias para alterar o status de um servidor backend de Valores válidos: 2–10. CreateLoadBalancerTCPListener. |
3 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold |
Número de verificações de integridade com falha consecutivas necessárias para alterar o status de um servidor backend de |
3 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval |
Intervalo entre verificações de integridade, em segundos. Valores válidos: 1–50. CreateLoadBalancerTCPListener. |
2 |
v1.9.3 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Configurar verificações de integridade UDP
Anotação: Múltiplas, conforme a tabela abaixo. Todas as anotações a seguir são obrigatórias.
Por padrão, as verificações de integridade estão ativadas para portas UDP.
|
Anotação |
Descrição |
Padrão |
Versões do CCM suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch |
Define se as verificações de integridade devem ser ativadas para listeners TCP e UDP. Valores válidos:
|
on |
v2.6.0 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout |
Tempo limite de resposta para uma verificação de integridade. Este parâmetro aplica-se a listeners UDP. Se um servidor de backend não responder dentro desse tempo limite, a verificação de integridade falhará. Unidade: segundos. Intervalo de valores: [1, 300]. Se o valor de |
5 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold |
Número de verificações de integridade consecutivas com sucesso necessárias para alterar o status de um servidor de backend de Intervalo de valores: [2, 10]. CreateLoadBalancerUDPListener. |
3 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold |
Quantidade de verificações de integridade consecutivas com falha necessárias para alterar o status de um servidor de backend de |
3 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval |
Intervalo entre as verificações de integridade. Unidade: segundos. Intervalo de valores: [1, 50]. CreateLoadBalancerUDPListener. |
2 |
v1.9.3 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Desativar verificações de integridade para TCP e UDP
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch
|
Descrição |
Padrão |
Versões do CCM suportadas |
|
Define se as verificações de integridade devem ser ativadas para listeners TCP e UDP. Valores válidos:
|
on |
v2.6.0 ou posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # Disable the health check.
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Configurar uma verificação de integridade HTTP
Anotação: Múltiplas, conforme a tabela a seguir.
|
Anotação |
Descrição |
Padrão |
Versão do CCM suportada |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag |
Valores válidos:
|
off |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type |
Protocolo utilizado na verificação de integridade. Valores válidos:
|
tcp |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri |
Caminho URI para a verificação de integridade. Esta anotação é obrigatória apenas para verificações de integridade HTTP. |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode |
Códigos de status HTTP que indicam uma verificação de integridade bem-sucedida. Separe vários valores com vírgula. Valores válidos:
|
http_2xx |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain |
Nome de domínio usado para a verificação de integridade. Valores válidos:
|
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout |
Tempo, em segundos, para aguardar uma resposta a uma verificação de integridade HTTP. Se nenhuma resposta for recebida dentro desse período, a verificação de integridade falhará. Unidade: segundos. Valores válidos: 1 a 300. Se o valor de |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold |
Número de verificações de integridade consecutivas com sucesso necessárias antes que um servidor de backend seja considerado íntegro (o status muda de fail para success). Valores válidos: 2 a 10. CreateLoadBalancerHTTPListener. |
3 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold |
Quantidade de verificações de integridade consecutivas com falha necessárias antes que um servidor de backend seja considerado não íntegro (o status muda de success para fail). Valores válidos: 2 a 10. CreateLoadBalancerHTTPListener. |
3 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval |
Intervalo entre as verificações de integridade. Unidade: segundos. Valores válidos: 1 a 50. CreateLoadBalancerHTTPListener. |
2 |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com vírgula, por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method |
Método HTTP a ser usado na verificação de integridade. Valores válidos:
|
Nenhum |
v2.3.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
# Set the HTTP status code for the health check (optional)
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
# Set the domain name for the health check (optional)
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
# Set the health check method (optional)
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Drenagem de conexão
Anotação: Múltiplas, conforme a tabela a seguir. Todas essas anotações são obrigatórias.
Somente TCP e UDP são suportados.
|
Anotação |
Descrição |
Padrão |
Versões do CCM suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain |
Ativa ou desativa a drenagem de conexão. Valores válidos:
|
Nenhum |
v2.0.1 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout |
Define o tempo limite de drenagem de conexão em segundos. O intervalo válido é de 10 a 900. |
Nenhum |
v2.0.1 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Configurar cabeçalhos de solicitação adicionais para um listener
Configuração: Use as anotações na tabela a seguir para configurar este recurso.
Este recurso suporta apenas listeners HTTP e HTTPS.
|
Anotação |
Descrição |
Padrão |
Versão do CCM suportada |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com vírgula, por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto |
Define se o campo de cabeçalho X-Forwarded-Proto deve ser usado para obter o protocolo do listener da instância CLB. Valores válidos:
|
off |
v2.1.0 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport |
Define se o campo de cabeçalho XForwardedFor_SLBPORT deve ser usado para obter a porta do listener da instância do balanceador de carga. Valores válidos:
|
off |
v2.9.1 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport |
Define se o campo de cabeçalho XForwardedFor_ClientSrcPort deve ser usado para obter a porta de origem do cliente. Valores válidos:
|
off |
v2.9.1 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport: "on"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Definir tempo limite de ociosidade para um listener
Anotações: Consulte a tabela abaixo.
Este recurso suporta apenas listeners que utilizam o protocolo HTTP ou HTTPS.
|
Anotação |
Descrição |
Padrão |
Versões do CCM suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com vírgula (,), por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout |
Especifica o tempo limite de ociosidade para o listener. Unidade: segundos. Valores válidos: [1, 60]. |
15 |
v2.1.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "30"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Desativar HTTP/2 para um listener
Anotação: São utilizadas múltiplas anotações, conforme a tabela a seguir.
Este recurso está disponível apenas para listeners HTTPS.
|
Anotação |
Descrição |
Padrão |
Versão do CCM suportada |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Use vírgula (,) para separar vários valores, por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
O ID do certificado no Alibaba Cloud. Faça login no console CLB e localize o ID do certificado na página Certificates. Nota
Para criar um certificado, consulte Selecionar um certificado emitido pelo Alibaba Cloud. |
Nenhum |
v1.9.3.164-g2105d2e-aliyun e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled |
Ativa ou desativa o recurso HTTP/2. Valores válidos:
|
on |
v2.1.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled: "off"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Tempo limite de solicitação para um listener
Anotações: As anotações obrigatórias estão listadas na tabela a seguir.
Este recurso suporta apenas listeners que utilizam o protocolo HTTP ou HTTPS.
|
Anotação |
Descrição |
Padrão |
Versão do CCM suportada |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com vírgula, por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout |
Especifica o tempo limite de solicitação em segundos. O valor deve estar entre 1 e 180. Se um servidor de backend não responder dentro do tempo limite especificado, o balanceador de carga retornará um erro HTTP 504 ao cliente. |
60 |
v2.3.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout: "60"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Especificar tempo limite de conexão
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout
Somente listeners TCP são suportados.
|
Descrição |
Padrão |
Versão do CCM suportada |
|
Especifica o tempo limite de conexão em segundos. O valor deve ser um número inteiro de 10 a 900. CreateLoadBalancerTCPListener. |
Nenhum |
v2.3.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout: "60"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Configurar uma política de segurança de listener
Anotações: Consulte a tabela abaixo para ver as anotações obrigatórias.
Somente o protocolo HTTPS é suportado.
|
Anotação |
Descrição |
Padrão |
Versões do CCM suportadas |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port |
Separe vários valores com vírgula, por exemplo, |
Nenhum |
v1.9.3 e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id |
Especifica o ID de um certificado do Alibaba Cloud. No console SLB, localize o ID do certificado na página Certificates. Nota
Para criar um certificado, consulte Selecionar um certificado emitido pelo Alibaba Cloud. |
Nenhum |
v1.9.3.164-g2105d2e-aliyun e posterior |
|
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy |
Especifica a política de segurança, que determina as versões do protocolo TLS e os conjuntos de cifras suportados para um listener HTTPS. CreateLoadBalancerHTTPSListener. Valores válidos:
|
tls_cipher_policy_1_0 |
v2.4.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_2"
name: nginx
namespace: default
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 443
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
Configurar TCP e UDP
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: udp
port: 80
protocol: UDP
targetPort: 81
selector:
app: nginx
sessionAffinity: None
type: LoadBalancer
Configurar Proxy Protocol para listeners TCP e UDP
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
|
Descrição |
Padrão |
Versões suportadas |
|
Ativa o Proxy Protocol para listeners TCP e UDP. Quando ativado, o balanceador de carga transmite o endereço de origem do cliente para os servidores de backend. Valores válidos:
Importante
Este recurso não suporta migração transparente. Ativar ou desativar o Proxy Protocol exige uma atualização do serviço, causando uma interrupção. Configure esta definição com cautela. |
off |
v2.6.0 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
Operações de grupo de servidores de backend
Reutilizar um grupo de servidores virtuais existente
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port. Esta anotação permite reutilizar um grupo de servidores virtuais existente. Ela se aplica somente quando você reutiliza uma instância CLB existente. Para um exemplo detalhado, consulte Implantar serviços em clusters reutilizando um balanceador de carga existente.
Definir peso de tráfego do Service
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
Quando vários Services reutilizam a mesma instância CLB, use esta anotação para definir o peso de tráfego do Service atual. Esta configuração aplica-se somente quando você reutiliza um grupo de servidores virtuais existente. Para um exemplo detalhado, consulte Implantar serviços em clusters reutilizando um balanceador de carga existente.
Ignorar atualizações de peso do servidor de backend
Anotação: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
|
Descrição |
Versões do CCM suportadas |
|
Ignora a atualização dos pesos dos servidores de backend no grupo de servidores virtuais durante a sincronização do Service. Isso permite gerenciar manualmente os pesos dos servidores de backend. Valores válidos:
Valor padrão: |
v2.11.1 e posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer