Esta página mostra como implementar um serviço LoadBalancer externo que cria um balanceador de carga de rede de passagem externo baseado em serviços de back-end. Antes de ler esta página, certifique-se de que conhece o seguinte:
Para saber mais sobre os balanceadores de carga de rede de encaminhamento externo em geral, consulte o artigo Balanceador de carga de rede de encaminhamento externo baseado em serviço de back-end.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
Requisitos
O suplemento
HttpLoadBalancing
tem de estar ativado no seu cluster. Este suplemento está ativado por predefinição. Permite que o cluster faça a gestão dos balanceadores de carga que usam serviços de back-end.Para criar um serviço LoadBalancer externo que use um balanceador de carga de rede de passagem externo baseado num serviço de back-end, o cluster do GKE tem de usar a versão 1.25.5 ou posterior.
Para criar um serviço LoadBalancer externo que use o equilíbrio de carga ponderado, o seu cluster do GKE tem de usar a versão 1.31.0-gke.1506000 ou posterior.
Para criar um serviço LoadBalancer externo que use back-ends de
GCE_VM_IP
grupo de pontos finais de rede (NEG), o cluster do GKE tem de usar a versão 1.32.2-gke.1652000 ou posterior.
Escolha um cluster
Pode criar um novo cluster ou escolher um cluster existente que cumpra os requisitos.
Crie um novo cluster
Autopilot
Para criar um novo cluster do Autopilot:
gcloud container clusters create-auto CLUSTER_NAME \
--release-channel=RELEASE_CHANNEL \
--cluster-version=VERSION \
--location=COMPUTE_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do novo cluster.RELEASE_CHANNEL
: o nome do GKE canal de lançamento para o cluster.VERSION
: a versão do GKE para o cluster.COMPUTE_LOCATION
: a região do Compute Engine do cluster.
Para desativar a criação automática de regras de firewall da VPC para serviços LoadBalancer, inclua a flag --disable-l4-lb-firewall-reconciliation
. Para mais informações, consulte o artigo Regras de firewall geridas pelo utilizador para serviços LoadBalancer do GKE.
Padrão
Para criar um novo cluster padrão:
gcloud container clusters create CLUSTER_NAME \
--release-channel=RELEASE_CHANNEL \
--cluster-version=VERSION \
--location=COMPUTE_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do novo cluster.RELEASE_CHANNEL
: o nome do GKE canal de lançamento para o cluster.VERSION
: a versão do GKE para o cluster.COMPUTE_LOCATION
: a região do Compute Engine do cluster.
Para desativar a criação automática de regras de firewall da VPC para serviços LoadBalancer, inclua a flag --disable-l4-lb-firewall-reconciliation
. Para mais informações, consulte o artigo Regras de firewall geridas pelo utilizador para serviços LoadBalancer do GKE.
Atualize um cluster existente
Use a CLI gcloud para atualizar um cluster existente:
gcloud container clusters upgrade CLUSTER_NAME \
--cluster-version=VERSION \
--master \
--location=COMPUTE_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster existente.VERSION
: a versão específica do GKE para a qual quer atualizar o cluster. Para mais informações, consulte o artigo Atualizar manualmente o plano de controlo.COMPUTE_LOCATION
: a região do Compute Engine do cluster.
Para desativar a criação automática de regras de firewall da VPC para serviços LoadBalancer, inclua a flag --disable-l4-lb-firewall-reconciliation
. Para mais informações, consulte o artigo Regras de firewall geridas pelo utilizador para serviços LoadBalancer do GKE.
Implemente uma carga de trabalho de exemplo
Implemente a seguinte carga de trabalho de exemplo que fornece os pods de publicação para o serviço LoadBalancer externo.
Guarde a seguinte implementação de exemplo como
store-deployment.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: store spec: replicas: 20 selector: matchLabels: app: store template: metadata: labels: app: store spec: containers: - image: gcr.io/google_containers/echoserver:1.10 imagePullPolicy: Always name: echoserver ports: - name: http containerPort: 8080 readinessProbe: httpGet: path: /healthz port: 8080 scheme: HTTP
Aplique o manifesto ao cluster:
kubectl apply -f store-deployment.yaml
Verifique se existem 20 pods de publicação para a implementação:
kubectl get pods
O resultado é semelhante ao seguinte:
NAME READY STATUS RESTARTS AGE store-cdb9bb4d6-s25vw 1/1 Running 0 10s store-cdb9bb4d6-vck6s 1/1 Running 0 10s ....
Crie o serviço LoadBalancer externo
Exponha a carga de trabalho de exemplo criando um serviço LoadBalancer externo.
Guarde o seguinte manifesto de serviço como
store-v1-lb-svc.yaml
:apiVersion: v1 kind: Service metadata: name: store-v1-lb-svc annotations: cloud.google.com/l4-rbs: "enabled" spec: type: LoadBalancer selector: app: store ports: - name: tcp-port protocol: TCP port: 8080 targetPort: 8080
Aplique o manifesto ao cluster:
kubectl apply -f store-v1-lb-svc.yaml
Tenha em atenção os seguintes pontos acerca deste manifesto de exemplo:
O manifesto do serviço tem de incluir a anotação
cloud.google.com/l4-rbs: "enabled"
no momento em que o manifesto é aplicado pela primeira vez ao cluster. Isto indica ao GKE que crie um balanceador de carga de rede de passagem externo com base num serviço de back-end. Os balanceadores de carga de rede de encaminhamento externo baseados em serviços de back-end são necessários para suportar funcionalidades como IPv6 e balanceamento de carga ponderado.O GKE usa back-ends de NEG ou back-ends de grupos de instâncias não geridos, consoante a versão do cluster.
GCE_VM_IP
Nos clusters com a versão 1.32.2-gke.1652000, o Network Load Balancer de encaminhamento externo baseado em serviços de back-end usaGCE_VM_IP
NEGs. Nas versões anteriores, o Network Load Balancer de encaminhamento externo baseado em serviços usa grupos de instâncias não geridos.Se adicionar a anotação
cloud.google.com/l4-rbs: "enabled"
ao manifesto de um serviço LoadBalancer externo existente (ou seja, depois de o balanceador de carga ter sido criado), o GKE ignora a anotação. Os serviços External LoadBalancer criados sem esta anotação nos respetivos manifestos usam equilibradores de carga de rede de passagem externos baseados em conjunto de destino. A utilização de balanceadores de carga de encaminhamento externo baseados em pool alvo não é recomendada.
Ative o balanceamento de carga ponderado
Para distribuir novas ligações proporcionalmente aos nós com base no número de pods de publicação, prontos e não terminados presentes em cada nó, ative o equilíbrio de carga ponderado adicionando a anotação networking.gke.io/weighted-load-balancing:
"pods-per-node"
ao manifesto do serviço.
Adicione a anotação
networking.gke.io/weighted-load-balancing: "pods-per-node"
ao manifesto do serviço e certifique-se de que também define oexternalTrafficPolicy: Local
para que fique assim:store-v1-lb-svc.yaml
apiVersion: v1 kind: Service metadata: name: store-v1-lb-svc annotations: cloud.google.com/l4-rbs: "enabled" networking.gke.io/weighted-load-balancing: "pods-per-node" spec: type: LoadBalancer externalTrafficPolicy: Local selector: app: store ports: - name: tcp-port protocol: TCP port: 8080 targetPort: 8080
Aplique o manifesto ao cluster:
kubectl apply -f store-v1-lb-svc.yaml
Tenha em atenção o seguinte acerca deste exemplo sobre o balanceamento de carga ponderado:
O manifesto do serviço usa
externalTrafficPolicy: Local
. Se não precisar de ativar o equilíbrio de carga ponderado, também pode usarexternalTrafficPolicy: Cluster
. Para ver detalhes sobre como oexternalTrafficPolicy
define o agrupamento de nós, que nós passam nas respetivas verificações de funcionamento do balanceador de carga e como os pacotes são processados, consulte os conceitos do serviço LoadBalancer.Se ativar o equilíbrio de carga ponderado, o GKE não impede a utilização de
externalTrafficPolicy: Cluster
, masexternalTrafficPolicy: Cluster
desativa efetivamente o equilíbrio de carga ponderado porque o pacote pode ser encaminhado, após o equilibrador de carga, para um nó diferente.
Também pode ativar o balanceamento de carga ponderado num LoadBalancer
Service externo existente através de kubectl edit svc service-name
. O comando
kubectl edit
abre o manifesto do serviço do equilibrador de carga existente no
editor de texto configurado, onde pode modificar o manifesto e guardar as alterações.
Quando edita um serviço LoadBalancer externo existente, tenha em atenção os seguintes
pontos:
O serviço LoadBalancer externo existente tem de ter resultado na criação de balanceadores de carga de rede de passagem externos baseados em serviços de back-end. Isto significa que o serviço LoadBalancer externo tem de ter incluído a anotação
cloud.google.com/l4-rbs: "enabled"
quando o manifesto foi aplicado pela primeira vez ao cluster.Adicionar a anotação
networking.gke.io/weighted-load-balancing: "pods-per-node"
a um serviço LoadBalancer externo existente que usa um Network Load Balancer de encaminhamento externo baseado em target pool não tem efeito.Quando atualizar o manifesto do serviço LoadBalancer externo existente, certifique-se de que define
externalTrafficPolicy: Local
. A utilização deexternalTrafficPolicy: Cluster
desativa eficazmente o equilíbrio de carga ponderado porque o pacote pode ser encaminhado, após o equilibrador de carga, para um nó diferente.
Desative o equilíbrio de carga ponderado
Para distribuir novas ligações aos nós, independentemente do número de pods de publicação presentes em cada nó, desative o equilíbrio de carga ponderado removendo a anotação networking.gke.io/weighted-load-balancing: "pods-per-node"
do manifesto do serviço.
Valide o serviço LoadBalancer externo e os respetivos componentes
Verifique se o serviço está em execução:
kubectl get svc store-v1-lb-svc
O resultado é semelhante ao seguinte:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-v1-lb-svc LoadBalancer 10.44.196.160 35.193.28.231 8080:32466/TCP 11m
O GKE atribuiu um
EXTERNAL_IP
para o balanceador de carga de rede de encaminhamento externo.Teste a ligação ao balanceador de carga:
curl EXTERNAL_IP:PORT
Substitua o seguinte:
EXTERNAL_IP
: o endereço IP atribuído ao balanceador de carga de rede de encaminhamento externo.PORT
: o número da porta atribuído para o balanceador de carga de rede de passagem externa.
O resultado é semelhante ao seguinte:
Hostname: store-v1-lb-svc-cdb9bb4d6-hflxd Pod Information: -no pod information available- Server values: server_version=nginx: 1.13.3 - lua: 10008 Request Information: client_address=10.128.0.50 method=GET real path=/ query= request_version=1.1 request_scheme=http request_uri=EXTERNAL_IP Request Headers: accept=*/* host=EXTERNAL_IP user-agent=curl/7.81.0 Request Body: -no body in request-
Verifique o serviço LoadBalancer e o respetivo conjunto de anotações que descrevem os respetivos Trusted Cloud recursos:
kubectl describe svc store-v1-lb-svc
O resultado é semelhante ao seguinte:
Name: my-service-external Namespace: default Labels: <none> Annotations: cloud.google.com/l4-rbs: enabled cloud.google.com/neg-status: {"network_endpoint_groups":{"0":"k8s2-qvveq1d8-default-my-service-ext-5s55db85"},"zones":["us-central1-c"]} #This annotation appears in the output only if the service uses NEG backends. networking.gke.io/weighted-load-balancing: pods-per-node #This annotation appears in the output only if weighted load balancing is enabled. service.kubernetes.io/backend-service: k8s2-qvveq1d8-default-my-service-ext-5s55db85 service.kubernetes.io/firewall-rule: k8s2-qvveq1d8-default-my-service-ext-5s55db85 service.kubernetes.io/firewall-rule-for-hc: k8s2-qvveq1d8-default-my-service-ext-5s55db85-fw service.kubernetes.io/healthcheck: k8s2-qvveq1d8-default-my-service-ext-5s55db85 service.kubernetes.io/tcp-forwarding-rule: a808124abf8ce406ca51ab3d4e7d0b7d Selector: app=my-app Type: LoadBalancer IP Family Policy: SingleStack IP Families: IPv4 IP: 10.18.102.23 IPs: 10.18.102.23 LoadBalancer Ingress: 35.184.160.229 Port: tcp-port 8080/TCP TargetPort: 8080/TCP NodePort: tcp-port 31864/TCP Endpoints: 10.20.1.28:8080,10.20.1.29:8080 Session Affinity: None External Traffic Policy: Local HealthCheck NodePort: 30394 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ADD 4m55s loadbalancer-controller default/my-service-ext
Existem vários campos que indicam que um balanceador de carga de rede de encaminhamento externo baseado em serviços de back-end e os respetivos recursos foram criados com êxito: Trusted Cloud
Events
. Este campo está vazio quando o serviço LoadBalancer e os respetivos recursos foram criados com êxito. Se ocorreu um erro, este é apresentado aqui.Lista de
Annotations
ativada: o GKE adiciona a seguinte lista de anotações de leitura ao manifesto do serviço. Cada anotação cujo nome começa comservice.kubernetes.io/
é usada para indicar o nome de um recursoTrusted Cloud criado como parte do balanceador de carga ou para o suportar.- A anotação
networking.gke.io/weighted-load-balancing: pods-per-node
indica que foi aplicado o balanceamento de carga ponderado e que o balanceador de carga distribui o tráfego para os pods de back-end com base no número de pods em execução em cada nó. - A anotação
service.kubernetes.io/backend-service
indica o nome do serviço de back-end do balanceador de carga. - A anotação
service.kubernetes.io/healthcheck
indica o nome da verificação de estado do balanceador de carga usada pelo serviço de back-end. - A anotação
service.kubernetes.io/tcp-forwarding-rule
ouservice.kubernetes.io/udp-forwarding-rule
indica o nome da regra de encaminhamento do balanceador de carga. - A anotação
service.kubernetes.io/firewall-rule
indica o nome da regra de firewall criada para permitir o tráfego para os nós do cluster. Os intervalos de origem desta regra de firewall são personalizáveis através despec.loadBalancerSourceRanges[]
. Para ver detalhes adicionais sobre as regras de firewall para serviços LoadBalancer, consulte o artigo Regras de firewall e lista de autorizações de endereços IP de origem. - A anotação
service.kubernetes.io/firewall-rule-for-hc
indica o nome da regra da firewall necessária para as verificações de funcionamento do balanceador de carga. A anotação
cloud.google.com/neg-status
indica os NEGs usados pelo equilibrador de carga e as respetivas zonas. Esta anotação só está presente quando ambas as seguintes condições são verdadeiras:- O cluster estava a executar a versão 1.32.2-gke.1652000 ou posterior do GKE quando o manifesto foi aplicado ao cluster e
- A anotação
cloud.google.com/l4-rbs: "enabled"
estava presente no manifesto do serviço quando foi aplicada ao cluster.
- A anotação
Verifique se os recursos do balanceador de carga e as regras da firewall foram criados para o serviço LoadBalancer externo:
Para ver a regra de encaminhamento, execute o seguinte comando:
gcloud compute forwarding-rules describe FWD_RULE_NAME \ --region=REGION_NAME
Substitua o seguinte:
FWD_RULE_NAME
: o nome da regra de encaminhamento fornecido pelas anotações só de leituraservice.kubernetes.io/tcp-forwarding-rule
ouservice.kubernetes.io/udp-forwarding-rule
. Para verificar estas anotações, executekubectl describe svc SERVICE_NAME
.REGION_NAME
: a Trusted Cloud região que contém o cluster. Para clusters zonais, a região contém a zona usada pelo cluster.
Para ver o serviço de back-end, execute o seguinte comando:
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region=REGION_NAME
Substitua o seguinte:
BACKEND_SERVICE_NAME
: o nome do serviço de back-end fornecido pela anotaçãoservice.kubernetes.io/backend-service
só de leitura. Para verificar esta anotação só de leitura, executekubectl describe svc SERVICE_NAME
.REGION_NAME
: a Trusted Cloud região que contém o cluster. Para clusters zonais, a região contém a zona usada pelo cluster.
Para ver a verificação de funcionamento do balanceador de carga, execute o seguinte comando:
gcloud compute health-checks describe HEALTH_CHECK_NAME \ --region=REGION_NAME
Substitua o seguinte:
HEALTH_CHECK_NAME
: o nome da verificação do estado do balanceador de carga. O nome da verificação de funcionamento é fornecido pela anotação de só de leituraservice.kubernetes.io/healthcheck
. Para verificar esta anotação de só de leitura, executekubectl describe svc SERVICE_NAME
.REGION_NAME
: a Trusted Cloud região que contém o cluster. Para clusters zonais, a região contém a zona usada pelo cluster.
Para ver as regras de firewall, execute os seguintes comandos:
gcloud compute firewall-rules describe FIREWALL_RULE_NAME \ gcloud compute firewall-rules describe HEALTH_CHECK_FIREWALL_RULE_NAME
Substitua o seguinte:
FIREWALL_RULE_NAME
: o nome da regra de firewall que permite o tráfego para o balanceador de carga. O nome desta regra de firewall é fornecido pela anotaçãoservice.kubernetes.io/firewall-rule
só de leitura. Para verificar esta anotação só de leitura, executekubectl describe svc SERVICE_NAME
.HEALTH_CHECK_FIREWALL_RULE_NAME
: o nome da regra de firewall que permite verificações de funcionamento dos back-ends do balanceador de carga (os nós do cluster). O nome desta regra de firewall é fornecido pela anotação só de leituraservice.kubernetes.io/firewall-rule-for-hc
. Para verificar esta anotação só de leitura, executekubectl describe svc SERVICE_NAME
.
Para ver os NEGs do balanceador de carga, execute o seguinte comando:
gcloud compute network-endpoint-groups describe NEG_NAME \ --zone=ZONE_NAME
Substitua o seguinte:
NEG_NAME
: o nome do NEG do balanceador de carga. O nome do NEG é fornecido pela anotaçãocloud.google.com/neg-status
só de leitura. Para verificar esta anotação só de leitura, execute o comandokubectl describe svc SERVICE_NAME
. A anotação contém dados estruturados com informações sobre os nomes e as zonas dos NEG que são usados pelo equilibrador de carga. Para clusters zonais, esta anotação contém informações sobre um NEG. Para clusters regionais, esta anotação contém informações sobre um NEG em cada zona em que o cluster está localizado.ZONE_NAME
: a zona Trusted Cloud que contém o NEG.
Elimine o serviço LoadBalancer externo
Para eliminar o exemplo de serviço store-v1-lb-svc
externo LoadBalancer, use o seguinte comando:
kubectl delete service store-v1-lb-svc
O GKE remove automaticamente todos os recursos do balanceador de carga que criou para o serviço LoadBalancer externo.
Migre para back-ends do NEG GCE_VM_IP
Os serviços External LoadBalancer com a anotação cloud.google.com/l4-rbs: "enabled"
criam balanceadores de carga de rede de passagem externos baseados em serviços de back-end que usam grupos de pontos finais da rede ou back-ends de grupos de instâncias, GCE_VM_IP
consoante a versão do GKE do cluster:
Se o manifesto do serviço foi aplicado a um cluster que executa o GKE versão 1.32.2-gke.1652000 ou posterior, o Network Load Balancer de passagem externo resultante usa back-ends do
GCE_VM_IP
grupo de pontos finais de rede (NEG).Se o manifesto do serviço foi aplicado a um cluster que executa uma versão anterior do GKE, o Network Load Balancer de passagem externo resultante usa back-ends de grupos de instâncias não geridos.
Para mais informações, consulte a secção Agrupamento de nós no artigo Acerca dos serviços LoadBalancer.
Pode criar um novo serviço LoadBalancer externo com tecnologia de um balanceador de carga de rede de passagem externo baseado em serviços de back-end que usa back-ends de GCE_VM_IP
NEG se o seu serviço existente usar um dos seguintes balanceadores de carga:
- Um Network Load Balancer de encaminhamento externo baseado em serviços de back-end com back-ends de grupos de instâncias
- Um Network Load Balancer de encaminhamento externo baseado em grupo de destino
Para mudar para um Network Load Balancer de encaminhamento externo baseado em serviços de back-end que use back-ends de GCE_VM_IP
NEG:
Se ainda não o fez, atualize o cluster para a versão 1.32.2-gke.1652000 ou posterior do GKE.
Identifique o serviço LoadBalancer externo para o qual quer mudar um Network Load Balancer de encaminhamento externo baseado em serviço de back-end com
GCE_VM_IP
back-ends de NEG. Descreva o serviço através do seguinte comando:kubectl describe svc SERVICE_NAME -n SERVICE_NAMESPACE
Substitua o seguinte:
SERVICE_NAME
: o nome do serviço LoadBalancer externo existente.SERVICE_NAMESPACE
: o espaço de nomes do serviço LoadBalancer externo existente.
Na saída do comando, tome nota do endereço IPv4 externo usado pelo equilibrador de carga existente na coluna
EXTERNAL-IP
.Recupere o manifesto do serviço para o serviço LoadBalancer existente:
É recomendável ter o manifesto do serviço original que aplicou ao cluster no passado. Por exemplo, pode ter isto num repositório de controlo de origem.
Se não tiver o manifesto do serviço original:
Execute o seguinte comando para obter uma cópia YAML do manifesto do serviço que representa a implementação atual do equilibrador de carga:
kubectl get svc SERVICE_NAME -n SERVICE_NAMESPACE -o yaml
Copie o YAML do manifesto para um editor de texto. Remova o atributo
status
e os seguintes atributosmetadata
:- Todas as seguintes anotações:
- A anotação
kubectl.kubernetes.io/last-applied-configuration
- Todas as anotações que começam com
service.kubernetes.io
- A anotação
creationTimestamp
finalizers
resourceVersion
uid
- Todas as seguintes anotações:
Certifique-se de que o manifesto inclui a anotação
cloud.google.com/l4-rbs: "enabled"
. Se estiver a migrar de um Network Load Balancer de encaminhamento externo baseado em conjunto de destino, tem de adicionar a anotação.
Tenha em atenção o caminho local que contém o ficheiro do manifesto do serviço. O resto deste procedimento refere-se ao caminho como MANIFEST_FILE_PATH.
Configure um recurso de endereço IPv4 externo estático para conter o endereço IPv4 externo usado pelo equilibrador de carga existente:
gcloud compute addresses create IP_ADDRESS_NAME --region=CLUSTER_REGION --addresses LB_EXTERNAL_IP
Substitua o seguinte:
IP_ADDRESS_NAME
: o nome do endereço IP externo estático. O nome tem de estar em conformidade com as convenções de nomenclatura para recursos do Compute Engine.CLUSTER_REGION
: a região que contém o cluster. Para clusters zonais, esta é a região que contém a zona do cluster.LB_EXTERNAL_IP
: o endereço IPv4 externo usado pelo balanceador de carga atual, determinado no segundo passo deste procedimento.
Verifique se o recurso de endereço IPv4 externo estático foi criado:
gcloud compute addresses describe IP_ADDRESS_NAME --region=CLUSTER_REGION
Substitua as variáveis conforme indicado no passo anterior.
Elimine o serviço existente:
kubectl delete svc SERVICE_NAME -n SERVICE_NAMESPACE
Adicione a seguinte anotação ao ficheiro do manifesto
MANIFEST_FILE_PATH
Service:networking.gke.io/load-balancer-ip-addresses: IP_ADDRESS_NAME
Para mais informações sobre esta anotação, consulte o artigo Endereços IP estáticos nos parâmetros do serviço LoadBalancer.
Aplique o manifesto de serviço atualizado ao cluster:
kubectl apply -f MANIFEST_FILE_PATH
(Opcional) Liberte o recurso de endereço IPv4 estático.
gcloud compute addresses delete IP_ADDRESS_NAME --region=CLUSTER_REGION
Resolver problemas
Esta secção descreve um problema que pode encontrar quando configura o equilíbrio de carga ponderado.
Política de tráfego externo incorreta para o balanceamento de carga ponderado
Se não definir externalTrafficPolicy: Local
quando ativa o equilíbrio de carga ponderado, pode receber um evento de aviso quando descreve o serviço através do seguinte comando:
kubectl describe svc store-v1-lb-svc`
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning UnsupportedConfiguration 4m55s loadbalancer-controller Weighted load balancing by pods-per-node has no effect with External Traffic Policy: Cluster.
Para ativar eficazmente o balanceamento de carga ponderado, tem de definir externalTrafficPolicy: Local
.
O que se segue?
- Para uma vista geral dos serviços de balanceador de carga, consulte Serviços LoadBalancer.
- Para uma descrição dos parâmetros dos serviços de balanceador de carga, consulte a secção Parâmetros do serviço LoadBalancer.
- Resolva problemas de balanceamento de carga no GKE.