Configure o balanceamento de carga avançado
Este documento contém instruções para configurar as opções de balanceamento de carga avançado descritas na vista geral do balanceamento de carga avançado. Este documento destina-se a utilizadores que têm, pelo menos, um conhecimento intermédio dos conceitos de Cloud Service Mesh e equilíbrio de carga.
Antes de começar
Atualize a CLI Google Cloud para se certificar de que tem a versão mais recente:
gcloud components update
Crie um novo serviço de back-end ou decida que serviço de back-end existente usar para o balanceamento de carga avançado.
Para criar um novo serviço de back-end denominado hello-world-backend-service
, use o seguinte comando:
gcloud compute backend-services create hello-world-backend-service \ --global \ --protocol=HTTP \ --health-checks hello-world-health-check \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
Crie uma política de balanceamento de carga de serviço com YAML
Pode definir políticas de equilíbrio de carga de serviços num ficheiro YAML. Por exemplo, configure uma política para ativar a funcionalidade de esgotamento automático da capacidade da seguinte forma num ficheiro denominado hello-world-lb-policy
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Depois de criar o ficheiro YAML, importe-o:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Por último, associe a política de balanceamento de carga do serviço ao serviço de back-end:
gcloud compute backend-services update hello-world-backend-service \ --service-lb-policy hello-world-lb-policy \ --global
Em alternativa, pode associar uma política de balanceamento de carga de serviço existente a um serviço de back-end quando criar o serviço de back-end:
gcloud compute backend-services create hello-world-backend-service \ --global \ --protocol=HTTP \ --health-checks hello-world-health-check \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --service-lb-policy hello-world-lb-policy
Estas instruções abrangem apenas alterações ao recurso do serviço de back-end. A implementação do Cloud Service Mesh também tem de incluir uma verificação de funcionamento e regras de firewall, e tem de adicionar back-ends conforme necessário.
Configure o algoritmo de pulverização para região
Para configurar o algoritmo de dispersão para a região, que distribui o tráfego para todas as zonas
numa região, crie uma política de balanceamento de carga de serviço num ficheiro denominado
hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: SPRAY_TO_REGION
Importe o ficheiro YAML:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Também pode configurar este algoritmo com a CLI gcloud:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=SPRAY_TO_REGION \ --location=global
Configure o algoritmo de hierarquia de publicação por zona
Para configurar o algoritmo de cascata por zona, que envia tráfego para a zona local antes de derramar tráfego para outras zonas, crie uma política de balanceamento de carga de serviço num ficheiro denominado hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: WATERFALL_BY_ZONE
Importe o ficheiro YAML:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Também pode configurar este algoritmo com a CLI gcloud:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=WATERFALL_BY_ZONE \ --location=global
Configure backends preferenciais
Para configurar back-ends preferenciais, crie uma política de balanceamento de carga de serviço da seguinte forma:
name: projects/${project-id}/locations/global/backendServices/hello-world-service ... backends: ... preference: PREFERRED
O exemplo seguinte mostra três back-ends, MIG1
, MIG2
e MIG3
:
name: .. ... - backends name: MIG1 preference: PREFERRED - backends name: MIG2 preference: DEFAULT - backends name: MIG3 ...
Também pode configurar esta funcionalidade com a CLI gcloud:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED \ --global
Para atualizar os backends preferenciais:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED
Configure a redução automática da capacidade
Para configurar o Cloud Service Mesh para esvaziar um back-end automaticamente com base no respetivo estado de funcionamento, crie uma política de balanceamento de carga de serviço da seguinte forma:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Também pode configurar esta funcionalidade com a CLI gcloud:
gcloud network-services service-lb-policies create capacity-drain-policy \ --auto-capacity-drain \ --location=global
Personalize o comportamento de comutação por falha
Para configurar a Cloud Service Mesh para um valor específico do limite de
funcionamento alternativo, inclua o seguinte numa política de balanceamento de carga do serviço, substituindo
VALUE
por um valor entre 1 e 99. Os valores predefinidos são 50 para o Cloud Service Mesh com gRPC sem proxy e 70 para o Cloud Service Mesh com o Envoy.
projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy failoverConfig: failoverHealthThreshold: VALUE
Para personalizar o comportamento de comutação por falha com a CLI gcloud:
gcloud network-services service-lb-policies create failover-health-threshold--policy \ --failover-health-threshold=VALUE \ --location=global