Esta página descreve os parâmetros dos manifestos de serviço que controlam o comportamento e a configuração do serviço LoadBalancer. Antes de ler esta página, certifique-se de que está familiarizado com os conceitos do serviço LoadBalancer do Google Kubernetes Engine (GKE).
Parâmetros de serviços
O GKE suporta os seguintes parâmetros para serviços LoadBalancer.
Parâmetro | Campo e descrição do serviço | Internos | Externo | Apoio técnico de versões |
---|---|---|---|---|
Balanceador de carga de rede de encaminhamento interno | networking.gke.io/load-balancer-type: "Internal"
Indica ao GKE que crie um balanceador de carga de rede de encaminhamento direto interno. O balanceador de carga usa back-ends do NEG se o manifesto do serviço for aplicado a um cluster com o
subconjunto do GKE ativado. Para mais informações, consulte o artigo Agrupamento de nós . |
Todas as versões suportadas. | ||
Balanceador de carga de rede de passagem externo baseado em serviços de back-end | cloud.google.com/l4-rbs: "enabled"
Indica ao GKE que crie um balanceador de carga de rede de encaminhamento externo baseado em serviços de back-end. O balanceador de carga usa back-ends de NEG se
o manifesto do serviço for aplicado a um cluster que execute
a versão 1.32.2-gke.1652000 ou posterior do GKE. Para mais informações, consulte o artigo Agrupamento de nós . |
GKE 1.25.5 | ||
Balanceamento de carga ponderado | networking.gke.io/weighted-load-balancing: "pods-per-node"
Permite que os nós com mais pods de publicação recebam uma proporção maior de novas ligações em comparação com os nós com menos pods de publicação. |
GKE 1.31.0 e superior | ||
Política de tráfego interno | spec.internalTrafficPolicy
Quando definido como Este parâmetro não é suportado em clusters que executam o GKE Dataplane V2. |
GKE 1.22 ou superior | ||
Política de Tráfego Externo | spec.externalTrafficPolicy
Controla que VMs de nós passam nas verificações de funcionamento do balanceador de carga e como os pacotes são encaminhados para pods prontos e de publicação no cluster. Também
controla como os nós são agrupados em Para ver detalhes, consulte o artigo Conceitos do serviço LoadBalancer. |
GKE 1.14 ou superior (1.23.4-gke.400 ou superior para o conjunto de nós do Windows). | ||
Afinidade zonal (pré-visualização) | spec.trafficDistribution
Ativa a afinidade zonal para serviços LoadBalancer internos. A afinidade zonal controla a zona para a qual o balanceador de carga de rede de passagem interna encaminha o tráfego recebido para clientes compatíveis quando é possível uma correspondência zonal. Para usar a afinidade zonal, tem de ativar a subdivisão do GKE. Para mais informações, consulte o artigo Afinidade zonal e distribuição de tráfego. |
GKE 1.33.3-gke.1392000 ou posterior. | ||
Porta de verificação de estado | spec.healthCheckNodePort
Implementa uma verificação de funcionamento do balanceador de carga para serviços LoadBalancer. Este
parâmetro só é válido se |
Todas as versões suportadas. | ||
Regras de firewall e lista de autorizações de endereços IP de origem | spec.loadBalancerSourceRanges
Configura regras de firewall opcionais no GKE e na
rede de VPC para permitir apenas determinados intervalos de origem.
|
Todas as versões suportadas. | ||
Endereços IP estáticos |
Especifica um endereço IPv4 estático, um intervalo de endereços IPv6 estáticos ou ambos, que são atribuídos às regras de encaminhamento do equilibrador de carga. Consulte as Considerações para partilhar um endereço IP comum para ver os requisitos de configuração importantes e os detalhes de implementação. |
|
||
Níveis de serviço de rede | cloud.google.com/network-tier
Especifica os
níveis de serviço de rede
que o GKE usa para a regra de encaminhamento externo e o endereço
IP. Os valores válidos da anotação são |
GKE 1.19 e posteriores. | ||
Sub-rede personalizada |
|
(aplica-se apenas ao IPv6) |
|
|
Acesso global | networking.gke.io/internal-load-balancer-allow-global-access: "true"
Permite que o endereço IP da regra de encaminhamento seja acessível por clientes em qualquer região da rede VPC ou uma rede ligada. |
Pré-visualização no GKE 1.16 ou superior. Disponível ao público em geral no GKE 1.17.9-gke.600 ou superior. | ||
Todas as portas | O GKE configura automaticamente a regra de encaminhamento para usar todas as portas se forem especificadas mais de cinco (até 100) portas únicas em |
GKE versão 1.18.19-gke.1400 ou posterior | ||
ipFamilyPolicy |
Define como o GKE atribui endereços IP a um serviço.
Pode definir o Para saber mais, consulte o artigo Serviços de pilha dupla IPv4/IPv6. |
Os clusters do GKE na versão 1.29 ou posterior suportam a rede de pilha dupla para serviços LoadBalancer. | ||
ipFamilies (opcional) |
Define a família de endereços IP para atribuir serviços de pilha única ou de pilha dupla. Use qualquer um dos seguintes valores:
|
Os clusters do GKE na versão 1.29 ou posterior suportam a rede de pilha dupla para serviços LoadBalancer. |
Porta de verificação de funcionamento
Conforme descrito em Verificações de funcionamento do balanceador de carga, o GKE implementa sempre uma verificação de funcionamento do balanceador de carga quando cria um balanceador de carga de rede de encaminhamento externo ou um balanceador de carga de rede de encaminhamento interno.
Se pode configurar o parâmetro healthCheckNodePort
ou não, depende da seguinte configuração externalTrafficPolicy
:
externalTrafficPolicy |
Porta de verificação de funcionamento |
---|---|
Cluster |
Não pode usar o |
Local |
Pode selecionar uma porta personalizada através do elemento
|
Regras de firewall e lista de autorizações de endereços IP de origem
A menos que tenha configurado um cluster para ignorar a criação de regras de firewall da VPC para serviços LoadBalancer, o GKE cria uma regra de firewall da VPC de permissão de entrada para cada serviço.
Cada regra de firewall criada automaticamente tem as seguintes caraterísticas:
- A direção da regra de firewall é de entrada e a respetiva ação é permitir. As regras de firewall de negação implícita de entrada em Trusted Cloud significam que o GKE usa um modelo de lista de autorizações quando cria regras de firewall de entrada.
- O GKE define o protocolo e a porta de destino da regra de firewall para os especificados na lista
spec.ports[]
do serviço. - O GKE configura regras de firewall para serviços LoadBalancer definindo explicitamente o parâmetro de destino para o endereço IP virtual do LoadBalancer (a regra de encaminhamento do balanceador de carga).
- O GKE define o parâmetro de destino da regra de firewall para incluir todos os nós do cluster.
- Se o Serviço incluir
spec.loadBalancerSourceRanges[]
, o GKE define o parâmetro de origem da regra de firewall para os endereços IP nessa lista. Além disso, o GKE configura rotas e regras no sistema operativo do nó para limitar os endereços IP de origem para o tráfego com balanceamento de carga, usandokube-proxy
eiptables
(Dataplane antigo) oucilium-agent
e regras eBPF (GKE Dataplane V2). Se o serviço não incluirloadBalancerSourceRanges[]
, o GKE define o parâmetro de origem da regra de firewall para todos os endereços IP(0.0.0.0/0)
.
Endereços IP estáticos
Pode criar um endereço IP estático e configurar o GKE para atribuir esse endereço estático à regra de encaminhamento do balanceador de carga. A utilização de um endereço IP estático garante que o endereço IP do equilibrador de carga permanece o mesmo, mesmo que faça alterações ao serviço LoadBalancer.
Sem um endereço IP estático, o GKE pode atribuir um endereço IP diferente à regra de encaminhamento do balanceador de carga quando atualiza um serviço LoadBalancer. O endereço IP da regra de encaminhamento não é o mesmo que o endereço do serviço
spec.clusterIP
. O endereço ClusterIP de um serviço nunca é alterado quando
atualiza um serviço LoadBalancer.
Parâmetros de endereço IP estático
Para instruir um serviço LoadBalancer a usar um endereço IP estático, use o parâmetro spec.loadBalancerIP
ou a anotação networking.gke.io/load-balancer-ip-addresses
. Na versão 1.29 e posteriores do GKE, a anotação tem precedência sobre spec.loadBalancerIP
se o manifesto do serviço contiver o parâmetro e a anotação.
Parâmetro ou anotação e valor | Requisitos e capacidades |
---|---|
spec.loadBalancerIP: IPv4_ADDRESS
|
Pode especificar um endereço IPv4 interno estático para um serviço Internal LoadBalancer apenas IPv4. Pode especificar um endereço IPv4 externo estático para um serviço de balanceamento de carga externo apenas IPv4. O parâmetro funciona com todas as versões do GKE suportadas. |
networking.gke.io/load-balancer-ip-addresses: IP_ADDRESS_RESOURCE_NAME
|
Pode especificar um endereço IPv4 estático, um intervalo de endereços IPv6 estáticos ou ambos para serviços Internal e External LoadBalancer apenas IPv4, apenas IPv6 e de pilha dupla. A anotação requer o GKE 1.29 ou posterior e os seguintes requisitos adicionais:
|
Considerações para a partilha de um endereço IP comum
Dois ou mais serviços LoadBalancer podem fazer referência ao mesmo endereço IP estático se a regra de encaminhamento para cada equilibrador de carga usar uma combinação única de endereço IP, protocolo, especificação de porta e especificação de níveis de serviço de rede, conforme indicado na tabela nesta secção. Além disso:
Na verdade, os endereços IPv6 estáticos são
/96
intervalos de endereços IPv6, mas o GKE só configura os nós para aceitarem pacotes no primeiro endereço IPv6 (/128
) no intervalo/96
.Para que dois ou mais serviços Internal LoadBalancer usem o mesmo endereço IPv4 interno ou intervalo de endereços IPv6 interno, o endereço IP estático tem de ser criado com a finalidade
SHARED_LOADBALANCER_VIP
.
Serviço de balanceador de carga interno | Serviço External LoadBalancer | |
---|---|---|
Especificação de portas | As regras de encaminhamento para equilibradores de carga de passagem internos suportam até cinco números de porta individuais ou podem ser configuradas para usar todas as portas. Quando um serviço de balanceador de carga interno tem mais de cinco
As regras de encaminhamento com o mesmo endereço IP e protocolo não podem ter portas sobrepostas. Isto significa que não pode criar vários serviços Internal LoadBalancer que partilham o mesmo endereço IP, protocolo e portas. Por exemplo:
Para mais informações, consulte: Regras de encaminhamento do balanceador de carga de rede de passagem interna que usam um endereço IP comum. |
O GKE cria um conjunto de destino com base no balanceador de carga de rede de encaminhamento externo se o manifesto do serviço LoadBalancer não tiver a anotação As regras de encaminhamento para balanceadores de carga de rede de passagem externos baseados em conjunto de destino têm de usar intervalos de portas contíguos. O intervalo de portas contíguas inclui todas as portas de que o serviço precisa, mas o intervalo também pode incluir portas adicionais não usadas pelo serviço. Por exemplo, um serviço External LoadBalancer baseado num balanceador de carga de rede de passagem externo baseado num conjunto de destinos que especifica as portas 80 e 443 no respetivo manifesto de serviço usa uma regra de encaminhamento do balanceador de carga com um intervalo de portas de 80 a 443. Este intervalo de portas impede que outros serviços External LoadBalancer usem qualquer uma das portas 80, 443 e qualquer um dos números entre 80 e 443. O GKE cria um balanceador de carga de rede de encaminhamento externo baseado em serviços de back-end se
o manifesto do serviço LoadBalancer incluir a anotação |
Níveis de serviço de rede | Não configurável: os endereços internos são sempre de nível Premium. | Configurável para endereços IPv4 externos regionais estáticos. Os intervalos de endereços IPv6 externos regionais estáticos só podem ser criados no nível Premium. A especificação dos níveis de serviço de rede do endereço IP externo estático tem de corresponder a uma das seguintes opções:
O nível predefinido do projeto é Premium, a menos que o tenha configurado de forma diferente. |
Reserva de endereços IP
O GKE não reserva os endereços IP estáticos configurados através da anotação spec.loadBalancerIP
ou networking.gke.io/load-balancer-ip-addresses
.
Isto significa que o endereço IP que atribui ao seu serviço pode ser libertado quando o serviço é eliminado.
Para manter o endereço IP reservado, tem de criar manualmente um recurso de endereço no seu projeto. O endereço IP estático tem de ter os seguintes atributos:
- Serem apenas regionais.
- Estar na mesma região que o cluster.
- Estar no mesmo Network Service Tiers que o serviço LoadBalancer.
- Ter um nome que não use o nome do LoadBalancer, prefixos como
k8s-
ou o UUID do serviço.
Se não reservar o endereço, os registos do projeto podem conter entradas sobre recursos de endereços criados e removidos pouco depois. Isto faz parte do aprovisionamento normal de serviços e deve ser esperado.
Sub-rede do LoadBalancer
Pode configurar um serviço de balanceamento de carga interno para usar um endereço IPv4 efémero ou estático, um intervalo de endereços IPv6 ou ambos, numa sub-rede personalizada localizada na mesma região e rede VPC que o cluster. Use uma sub-rede personalizada para um serviço de balanceador de carga interno para:
- Agrupar balanceadores de carga de rede de encaminhamento interno criados por serviços de balanceamento de carga interno de dois ou mais clusters do GKE na mesma rede VPC e região.
- Crie serviços Internal LoadBalancer cujos Network Load Balancers de passagem internos tenham endereços IPv4 separados dos endereços IPv4 dos nós do cluster.
- Num cluster de pilha dupla, crie serviços Internal LoadBalancer cujos balanceadores de carga de rede de encaminhamento interno tenham intervalos de endereços IPv6 separados dos endereços IPv6 dos nós e dos pods do cluster. É obrigatória uma sub-rede do LoadBalancer personalizada para suportar os serviços do LoadBalancer interno se a sub-rede do cluster tiver um intervalo de endereços IPv6 externo.
Pode configurar um serviço de LoadBalancer externo para usar um intervalo de endereços IPv6 efémero ou estático numa sub-rede personalizada localizada na mesma região e rede VPC que o cluster. Use uma sub-rede personalizada para criar serviços External LoadBalancer cujos balanceadores de carga de rede de passagem externos tenham intervalos de endereços IPv6 separados dos endereços IPv6 dos nós e dos pods do cluster. É obrigatório ter uma sub-rede LoadBalancer personalizada para suportar serviços LoadBalancer externos num cluster de pilha dupla, porque a sub-rede do cluster tem um intervalo de endereços IPv6 internos.
Anotações de sub-rede personalizadas
Use uma das seguintes anotações para instruir um serviço LoadBalancer a usar um endereço IP
efémero ou estático numa sub-rede personalizada. Se um manifesto de serviço LoadBalancer incluir ambas as anotações, a anotação networking.gke.io/load-balancer-subnet
tem precedência, desde que os respetivos requisitos de anotação sejam cumpridos.
Anotação e valor | Requisitos e capacidades |
---|---|
networking.gke.io/internal-load-balancer-subnet: SUBNET_RESOURCE_NAME
|
Só pode usar a anotação para especificar uma sub-rede personalizada para um serviço de balanceamento de carga interno apenas IPv4. A anotação funciona com todas as versões do GKE suportadas. |
networking.gke.io/load-balancer-subnet: SUBNET_RESOURCE_NAME
|
Pode especificar uma sub-rede personalizada para um serviço Internal LoadBalancer apenas IPv4, apenas IPv6 ou de pilha dupla. Pode especificar uma sub-rede personalizada para um serviço de balanceamento de carga externo apenas IPv6 ou de pilha dupla. A anotação requer o GKE 1.29 ou posterior e os seguintes requisitos adicionais:
|
Sub-rede e endereço IPv4 para um serviço Internal LoadBalancer
A tabela seguinte descreve as combinações válidas de especificação de sub-rede e endereço IPv4 para um serviço de balanceamento de carga interno apenas IPv4 ou de pilha dupla.
Endereço IPv4 estático
|
Endereço IPv4 efémero | |
---|---|---|
Sub-rede personalizada
|
Sub-rede personalizada e endereço IPv4 estático: o endereço IPv4 interno estático tem de ter sido criado no intervalo de endereços IPv4 principal da sub-rede personalizada. | Sub-rede personalizada e endereço IPv4 efémero: o GKE usa um endereço IPv4 interno não atribuído no intervalo de endereços IPv4 principal da sub-rede personalizada. |
Sub-rede do cluster | Sub-rede do cluster e endereço IPv4 estático: o endereço IPv4 interno estático tem de ter sido criado no intervalo de endereços IPv4 principal da sub-rede do cluster. | Sub-rede do cluster e endereço IPv4 efémero: o GKE usa um endereço IPv4 interno não atribuído no intervalo de endereços IPv4 primário da sub-rede do cluster. |
Sub-rede e intervalo de endereços IPv6 para um serviço de balanceamento de carga interno
A tabela seguinte descreve as combinações válidas de especificação de sub-rede e intervalo de endereços IPv6 para um serviço de balanceamento de carga interno apenas IPv6 ou de pilha dupla. Embora a regra de encaminhamento IPv6 do Network Load Balancer de passagem interna use um intervalo de endereços /96
IPv6 interno, o GKE só configura os nós para aceitar pacotes cujos destinos correspondam ao primeiro endereço IPv6 (/128
) do intervalo /96
da regra de encaminhamento.
Intervalo de endereços IPv6 estáticos
|
Intervalo de endereços IPv6 efémeros | |
---|---|---|
Sub-rede de pilha dupla personalizada
|
Sub-rede personalizada e intervalo de endereços IPv6 estáticos: o intervalo de endereços IPv6 /96 internos estáticos tem de ter sido criado no intervalo de endereços IPv6 /64 internos da sub-rede personalizada.
|
Sub-rede personalizada e intervalo de endereços IPv6 efémeros:
o GKE usa um intervalo de endereços /96 IPv6
interno não atribuído do intervalo de endereços /64 IPv6
interno da sub-rede personalizada.
|
Sub-rede de pilha dupla do cluster
|
Sub-rede do cluster e intervalo de endereços IPv6 estáticos: o intervalo de endereços IPv6 /96 internos estáticos tem de ter sido criado no intervalo de endereços IPv6 /64 internos da sub-rede do cluster.
|
Intervalo de endereços IPv6 e sub-rede do cluster:
O GKE usa um intervalo de endereços /96 IPv6
interno não atribuído do intervalo de endereços /64 IPv6
interno da sub-rede do cluster.
|
Sub-rede e endereço IPv4 para um serviço de LoadBalancer externo
Para serviços de balanceamento de carga externos apenas IPv4 e de pilha dupla, o endereço IPv4 externo, quer seja um endereço IPv4 externo estático ou um endereço IPv4 externo efémero, não provém de uma sub-rede.
Sub-rede e intervalo de endereços IPv6 para um serviço de LoadBalancer externo
A tabela seguinte descreve as combinações válidas de especificação de sub-rede e intervalo de endereços IPv6 para um serviço de balanceamento de carga externo apenas IPv6 ou de pilha dupla. Embora a regra de encaminhamento IPv6 do Network Load Balancer de passagem externa use um intervalo de endereços /96
IPv6
externo, o GKE só configura os nós para aceitar pacotes cujos destinos correspondam ao primeiro endereço IPv6 (/128
) do intervalo /96
da regra de encaminhamento.
Intervalo de endereços IPv6 estáticos
|
Intervalo de endereços IPv6 efémeros | |
---|---|---|
Sub-rede de pilha dupla personalizada
|
Sub-rede personalizada e intervalo de endereços IPv6 estáticos: o intervalo de endereços IPv6 /96 externos estáticos tem de ter sido criado no intervalo de endereços IPv6 /64 externos da sub-rede personalizada. Os intervalos de endereços IPv6 externos estáticos só podem ser criados no nível Premium.
|
Sub-rede personalizada e intervalo de endereços IPv6 efémeros:
O GKE usa um intervalo de endereços /96 IPv6
externos não atribuídos do intervalo de endereços /64 IPv6
externos da sub-rede personalizada.
|
Sub-rede de pilha dupla do cluster
|
Sub-rede do cluster e intervalo de endereços IPv6 estáticos: o intervalo de endereços IPv6 /96 externos estáticos tem de ter sido criado no intervalo de endereços IPv6 /64 externos da sub-rede do cluster. Os intervalos de endereços IPv6 externos estáticos só podem ser criados no nível Premium.
|
Sub-rede do cluster e intervalo de endereços IPv6 efémeros:
o GKE usa um intervalo de endereços /96 IPv6
externos não atribuídos do intervalo de endereços /64 IPv6
externos da sub-rede do cluster.
|
Acesso global
Quando a anotação networking.gke.io/internal-load-balancer-allow-global-access
é false
ou não especificada para um serviço de balanceador de carga interno, o GKE cria um balanceador de carga de rede de passagem interno cuja regra de encaminhamento tem o acesso global desativado. Quando o acesso global está desativado, os clientes que precisam de aceder ao balanceador de carga têm de estar localizados na mesma região e rede VPC, ou numa rede ligada à rede VPC do cluster.
Quando a anotação networking.gke.io/internal-load-balancer-allow-global-access
é true
para um serviço Internal LoadBalancer, o GKE
ativa a opção de acesso global na regra de encaminhamento do balanceador de carga de rede de passagem interno.
Os clientes localizados em qualquer região da rede VPC ou numa rede ligada à rede VPC do cluster podem aceder ao equilibrador de carga.
Para mais informações sobre como o acesso global se aplica a clientes numa rede associada, consulte:
- Acesso do cliente na documentação do balanceador de carga de rede de encaminhamento interno
- Balanceadores de carga de passagem internos e redes ligadas
Regras de encaminhamento de todas as portas
As regras de encaminhamento para balanceadores de carga de rede de passagem internos suportam cinco números de porta exclusivos ou todas as portas.
No GKE, um serviço de balanceamento de carga interno só pode suportar até 100 portas no spec.ports[].port
do serviço. Se um serviço de equilibrador de carga interno definir até cinco portas, a regra de encaminhamento inclui essas portas específicas. No entanto, se o serviço especificar mais de cinco portas, a regra de encaminhamento é configurada automaticamente para corresponder a todas as portas. Quando configura uma regra de encaminhamento para usar todas as portas, o GKE apenas cria regras de firewall de permissão de entrada para as portas específicas configuradas em spec.ports[].port
no serviço.
Para mais informações sobre as regras de encaminhamento do Network Load Balancer de passagem interna e as especificações de portas válidas, consulte o artigo Regras de encaminhamento e especificações de portas.
Serviço LoadBalancer de pilha dupla IPv4/IPv6
Pode criar um serviço de LoadBalancer interno ou externo que pode ser de pilha única (apenas IPv4 ou apenas IPv6) ou de pilha dupla. Os serviços LoadBalancer de pilha única criam uma única regra de encaminhamento com um endereço IPv4 ou um endereço IPv6. Os serviços LoadBalancer de pilha dupla criam duas regras de encaminhamento: uma com um endereço IPv4 e outra com um endereço IPv6. Para criar um serviço LoadBalancer de pilha dupla IPv4/IPv6, implemente-o num cluster de pilha dupla IPv4/IPv6 e conclua qualquer uma das seguintes opções, consoante o tipo de equilibrador de carga que usar:
- Para os serviços de balanceamento de carga interno, tem de ter a subdivisão do GKE ativada. Para mais informações, consulte a secção sobre como ativar a divisão em subconjuntos do balanceador de carga interno.
- Para serviços de balanceador de carga externo, tem de usar um balanceador de carga de rede de passagem externo baseado em serviços de back-end. Para mais informações, consulte o artigo Balanceador de carga de rede externo baseado em serviço de back-end.
Para cada serviço, pode definir as especificações ipFamilyPolicy
e ipFamilies
. Para saber mais,
consulte o artigo Pilha dupla IPv4/IPv6.
Restrições dos serviços LoadBalancer de pilha dupla
- Os serviços LoadBalancer com endereços IPv6 só são suportados em clusters com o tipo de pilha
ipv4-ipv6
. Para mais informações, saiba como usar um endereço IP de pilha dupla para um cluster nativo da VPC. Não é possível atualizar os serviços LoadBalancer criados com um endereço de pilha única para serviços de pilha dupla.
Os serviços LoadBalancer criados com endereços de pilha dupla podem ser alterados para pilha única de acordo com as seguintes condições:
- Um serviço com ipFamilies
["IPv4","IPv6"]
pode ser alterado para um serviço com ipFamiliesIPv4
, mas nãoIPv6
. - Um serviço com ipFamilies
["IPv6","IPv4"]
pode ser alterado para um serviço com ipFamiliesIPv6
, mas nãoIPv4
.
- Um serviço com ipFamilies