Configurer l'équilibrage de charge avancé
Ce document explique comment configurer l'équilibrage de charge avancé décrites dans la section Présentation de l'équilibrage de charge avancé. Ce document s'adresse aux utilisateurs qui ont au moins un niveau intermédiaire de Cloud Service Mesh et des concepts d'équilibrage de charge.
Avant de commencer
Mettez à jour la Google Cloud CLI pour vous assurer que vous disposez de la version la plus récente:
gcloud components update
Créer un service de backend ou choisir le service de backend existant à utiliser pour l'équilibrage de charge avancé.
Pour créer un service de backend appelé hello-world-backend-service
, utilisez
la commande suivante:
gcloud compute backend-services create hello-world-backend-service \ --global \ --protocol=HTTP \ --health-checks hello-world-health-check \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
Créer une règle d'équilibrage de charge de service avec YAML
Vous pouvez définir des règles d'équilibrage de charge de service dans un fichier YAML. Par exemple,
configurez une règle pour activer la fonctionnalité de drainage automatique de la capacité comme suit, dans un
nommé hello-world-lb-policy
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Après avoir créé le fichier YAML, importez-le:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Enfin, associez la stratégie d'équilibrage de charge du service au service de backend:
gcloud compute backend-services update hello-world-backend-service \ --service-lb-policy hello-world-lb-policy \ --global
Vous pouvez également associer une règle d'équilibrage de charge de service existante à un service de backend lorsque vous le créez:
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
Ces instructions ne concernent que les modifications apportées à la ressource du service de backend. Votre Le déploiement de Cloud Service Mesh doit également inclure une vérification de l'état et un pare-feu et vous devez ajouter des backends si nécessaire.
Configurer l'algorithme "spray-to-region"
Pour configurer l'algorithme "spray-to-region", qui répartit le trafic entre toutes les zones
dans une région, créez une règle d'équilibrage de charge de service dans un fichier
hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: SPRAY_TO_REGION
Importez le fichier YAML:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Vous pouvez également configurer cet algorithme à l'aide de la gcloud CLI:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=SPRAY_TO_REGION \ --location=global
Configurer l'algorithme cascade par zone
Pour configurer l'algorithme cascade par zone, qui envoie du trafic au réseau local
avant de verser le trafic vers d'autres zones, créez un équilibrage de charge de service
dans un fichier nommé hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: WATERFALL_BY_ZONE
Importez le fichier YAML:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Vous pouvez également configurer cet algorithme à l'aide de la gcloud CLI:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=WATERFALL_BY_ZONE \ --location=global
Configurer les backends préférés
Pour configurer les backends préférés, créez une règle d'équilibrage de charge de service en tant que ce qui suit:
name: projects/${project-id}/locations/global/backendServices/hello-world-service ... backends: ... preference: PREFERRED
L'exemple suivant présente trois backends, MIG1
, MIG2
et MIG3
:
name: .. ... - backends name: MIG1 preference: PREFERRED - backends name: MIG2 preference: DEFAULT - backends name: MIG3 ...
Vous pouvez également configurer cette fonctionnalité à l'aide de la gcloud CLI:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED \ --global
Pour mettre à jour les backends préférés, procédez comme suit:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED
Configurer le drainage automatique de la capacité
Pour configurer Cloud Service Mesh afin qu'il draine automatiquement un backend en fonction de son créez une règle d'équilibrage de charge de service comme suit:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Vous pouvez également configurer cette fonctionnalité à l'aide de la gcloud CLI:
gcloud network-services service-lb-policies create capacity-drain-policy \ --auto-capacity-drain \ --location=global
Personnaliser le comportement du basculement
Configurer Cloud Service Mesh pour une valeur spécifique pour l'état de basculement
d'équilibrage de charge de service, incluez les éléments suivants dans une règle d'équilibrage de charge de service, en remplaçant
VALUE
dont la valeur est comprise entre 1 et 99. Les valeurs par défaut sont 50 pour Cloud Service Mesh
avec gRPC sans proxy et 70 pour Cloud Service Mesh avec Envoy.
projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy failoverConfig: failoverHealthThreshold: VALUE
Pour personnaliser le comportement de basculement avec la gcloud CLI:
gcloud network-services service-lb-policies create failover-health-threshold--policy \ --failover-health-threshold=VALUE \ --location=global