Configurar 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 Visão geral do balanceamento de carga avançado. Este documento é destinado a usuários que têm pelo menos um entendimento intermediário dos conceitos da Cloud Service Mesh e do balanceamento de carga.
Antes de começar
Atualize a CLI do Google Cloud para garantir que você tem a versão mais recente:
gcloud components update
Crie um novo serviço de back-end ou decida qual serviço de back-end atual usar para o balanceamento de carga avançado.
Para criar um novo serviço de back-end denominado hello-world-backend-service
, use
este 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
Criar uma política de balanceamento de carga de serviço com YAML
É possível definir políticas de balanceamento de carga de serviço em um arquivo YAML. Por exemplo,
configure uma política para ativar o recurso de redução automática de capacidade da seguinte maneira, em um
arquivo chamado hello-world-lb-policy
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Depois de criar o arquivo YAML, importe-o:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Por fim, associe a política de balanceamento de carga de 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
Como alternativa, é possível associar uma política de balanceamento de carga de serviço atual a um serviço de back-end ao criá-lo:
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 as mudanças feitas no recurso de serviço de back-end. A implantação da Cloud Service Mesh também precisa incluir uma verificação de integridade e regras de firewall. Além disso, você precisa adicionar back-ends conforme necessário.
Configurar o algoritmo de distribuição por região
Para configurar o algoritmo de pulverização para região, que distribui o tráfego para todas as zonas de uma região, crie uma política de balanceamento de carga de serviço em um arquivo chamado hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: SPRAY_TO_REGION
Importe o arquivo yaml:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Você também pode configurar esse algoritmo com a CLI gcloud:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=SPRAY_TO_REGION \ --location=global
Configurar o algoritmo de hierarquia por zona
Para configurar o algoritmo de hierarquia por zona, que envia tráfego para a zona
local antes de distribuir o tráfego para outras zonas, crie uma política de balanceamento de carga
de serviço em um arquivo chamado hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: WATERFALL_BY_ZONE
Importe o arquivo yaml:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Você também pode configurar esse algoritmo com a CLI gcloud:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=WATERFALL_BY_ZONE \ --location=global
Configurar os back-ends preferenciais
Para configurar back-ends preferenciais, crie uma política de balanceamento de carga de serviço da seguinte maneira:
name: projects/${project-id}/locations/global/backendServices/hello-world-service ... backends: ... preference: PREFERRED
O exemplo a seguir 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 é possível configurar esse recurso com a CLI gcloud:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED \ --global
Para atualizar os back-ends preferidos:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED
Configurar diminuição automática de capacidade
Para configurar o Cloud Service Mesh a fim de reduzir um back-end automaticamente com base na integridade dele, crie uma política de balanceamento de carga de serviço da seguinte maneira:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Também é possível configurar esse recurso com a CLI gcloud:
gcloud network-services service-lb-policies create capacity-drain-policy \ --auto-capacity-drain \ --location=global
Personalizar o comportamento de failover
Para configurar o Cloud Service Mesh para um valor específico do limite de integridade
de failover, inclua o seguinte em uma política de balanceamento de carga de serviço, substituindo
VALUE
por um valor entre 1 e 99. Os valores padrão são 50 para a Cloud Service Mesh
com gRPC sem proxy e 70 para a Cloud Service Mesh com o Envoy.
projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy failoverConfig: failoverHealthThreshold: VALUE
Para personalizar o comportamento de failover com a CLI gcloud:
gcloud network-services service-lb-policies create failover-health-threshold--policy \ --failover-health-threshold=VALUE \ --location=global