Création de répartiteurs de charge globaux
Si vous avez un site web de commerce électronique ou si vous hébergez une application qui doit rester accessible, vous vous préoccupez probablement de sa disponibilité et de ses performances.
Les fonctionnalités d'équilibreur de charge global disponibles sur IBM Cloud Internet Services ( CIS ) permettent d'améliorer la fiabilité et l'évolutivité des applications tout en offrant la meilleure expérience possible aux utilisateurs.
Un équilibreur de charge mondial répartit le trafic des utilisateurs entre plusieurs régions géographiques afin d'améliorer la disponibilité et les performances.
Vous pouvez configurer un équilibreur de charge global à l'aide de la console, de l'interface de programmation, de l'API ou de Terraform.
Avant de commencer
- Déployer une instance d' CIS.
- Configurez votre domaine dans CIS.
- Identifiez les adresses IP ou les FQDN de vos origines applicatives.
CIS peut prendre en charge les pools d'équilibreurs de charge qui utilisent une adresse IP privée. Cependant, les pools d'IP privés ne prennent pas en charge les services de proxy ou les contrôles de santé; seul l'équilibrage de charge basé sur le DNS est pris en charge. Pour les pools avec des IP publiques, les contrôles de santé peuvent être configurés comme décrit dans (Étape 1 : Créer un contrôle de santé ).
Configuration rapide
Si vous connaissez déjà vos pools et vos contrôles de santé, vous pouvez les créer en ligne lorsque vous créez un équilibreur de charge :
-
Dans la console CIS, cliquez sur Fiabilité > Équilibreurs de charge globaux > Pools d'origine, puis cliquez sur Créer.
-
Entrez un nom de pool, des origines et sélectionnez un contrôle de santé.
Vous pouvez créer un nouveau bilan de santé en sélectionnant Créer nouveau dans le menu de la liste des bilans de santé et en complétant les informations.
-
Cliquez sur Sauvegarder.
Les étapes suivantes présentent la procédure complète de création des contrôles de santé, des pools et d'un équilibreur de charge global.
Création d'un équilibreur de charge global dans la console
Lorsque vous ouvrez la page Équilibreurs de charge globaux (Fiabilité > Équilibreurs de charge globaux ), celle-ci affiche les onglets Équilibreurs de chargeLogiciel ou matériel distribuant la charge de travail sur un ensemble de serveurs pour s'assurer que les serveurs ne soient pas surchargés., Pools d'origine, Contrôles de santéProcessus qui surveille des ressources système et des états pour déterminer si le système s'exécute correctement. et Événements. Ces onglets affichent les équilibreurs de charge globaux et leurs composants au fur et à mesure que vous les créez ou les mettez à jour.
Dans la procédure étape par étape suivante, découvrez comment configurer un environnement similaire à celui illustré dans le schéma ci-dessous. Dans cet exemple, les ressources de l'application sont déployées dans deux centres de données (Ouest et Est des États-Unis), les utilisateurs accédant à l'application dans le monde entier. Les utilisateurs finaux sont susceptibles d'accéder à cette application partout dans le monde.
Pour créer et configurer un équilibreur de charge global dans la console, procédez comme suit :
Étape 1 : Créer un bilan de santé (facultatif)
Les contrôles de santé constituent des pièces jointes facultatives aux pools d'origine. Ils s'exécutent à un intervalle configurable pour vérifier la présence d'un corps de réponse ou d'un code d'état spécifique et surveiller l'état du pool. Une fois que vous avez créé un contrôle de santé, vous pouvez l'ajouter à un pool d'origine nouveau ou existant.
Si vous ne définissez aucun contrôle d'intégrité personnalisé, CIS utilise / comme chemin d'accès par défaut pour le contrôle d'intégrité.
-
Dans la console CIS, cliquez sur Fiabilité > Équilibreurs de charge globaux > Contrôles de santé, puis cliquez sur Créer.
-
Configurez les zones suivantes :
- Nom: Nom du bilan de santé.
- Type de moniteur: protocole à utiliser pour le contrôle d'intégrité. (Par défaut :
HTTP). - Port: cliquez sur les flèches pour augmenter ou diminuer le numéro de port.
- Chemin d'accès: chemin d'accès au point de terminaison sur lequel effectuer le contrôle d'intégrité. (Par défaut :
/)
-
Développez les options avancées pour les configurer :
- Intervalle de test : Intervalle (en secondes) entre chaque contrôle de santé. Des intervalles plus courts peuvent améliorer le temps de basculement, mais augmentent la charge sur les serveurs d'origine, car les vérifications
proviennent de plusieurs emplacements. (Par défaut :
60). - Méthode: la méthode HTTP à utiliser pour le contrôle d'intégrité. (Par défaut :
GET) - Timeout (seconds): Délai avant de marquer l'échec du contrôle de santé. (Par défaut :
5) - Nombre de tentatives: nombre de tentatives à effectuer en cas de délai d'expiration avant de marquer l'origine comme défaillante. CIS tente un nouvel essai immédiatement. (Par défaut :
2) - Codes de réponse attendus: code de réponse HTTP ou plage de codes attendus pour le contrôle d'intégrité. Cette valeur doit être comprise entre 200 et 299 et comporter des caractères génériques indiqués par un point (.)
x. - Corps de la réponse: sous-chaîne (sans distinction de majuscules/minuscules) à rechercher dans le corps de la réponse. Si CIS ne trouve pas cette chaîne, il marque l'origine comme malsaine.
- Seuil de santé: Le nombre de réponses consécutives positives au contrôle de santé que CIS doit recevoir avant de marquer une origine comme saine. Ce réglage empêche CIS de marquer une origine saine après une seule sonde
réussie et permet d'éviter les battements lors d'une récupération intermittente. (Par défaut :
1) - Unhealthy threshold (seuil d'insalubrité ): Le nombre d'échecs consécutifs du contrôle de santé qui doit se produire avant que CIS ne marque un point d'origine comme étant en mauvaise santé. Ce paramètre permet d'éviter
que des problèmes temporaires de réseau ou d'application ne déclenchent immédiatement le basculement. (Par défaut :
1) - Suivre les redirections: Détermine si le bilan de santé suit automatiquement les réponses des redirections HTTP 3xx. Lorsqu'il est activé, le bilan de santé se poursuit jusqu'à l'emplacement redirigé et évalue la réponse finale en fonction des critères de réussite configurés (code d'état et corps de réponse facultatif). Lorsqu'il est désactivé, les réponses de redirection sont évaluées directement par rapport aux codes de réponse attendus.
- Intervalle de test : Intervalle (en secondes) entre chaque contrôle de santé. Des intervalles plus courts peuvent améliorer le temps de basculement, mais augmentent la charge sur les serveurs d'origine, car les vérifications
proviennent de plusieurs emplacements. (Par défaut :
-
Développez la section Configurer les en-têtes de requête (facultatif) pour ajouter et configurer les en-têtes de requête HTTP à envoyer lors du test de santé.
Définir un en-tête Host par défaut. L'en-tête
User-Agentne peut pas être modifié. -
Cliquez sur Créer pour créer la configuration du diagnostic d'intégrité.
Travailler avec des événements liés aux bilans de santé
L'onglet Événements permet de surveiller et d'étudier les changements d'état de santé des origines et des pools associés à un équilibreur de charge global. Les événements du bilan de santé représentent les changements d'état détectés par les bilans de santé configurés. Lorsqu'un statut d'origine change, une entrée d'événement correspondante apparaît avec des détails.
Les options de filtrage suivantes sont disponibles :
- Date de début : Filtre les événements en fonction du début d'une plage de dates sélectionnée.
- Date de fin : Filtre les événements en fonction de la fin d'une plage de dates sélectionnée.
- Santé de l'origine : Filtre les événements en fonction de l'état de l'origine (par exemple, sain ou critique).
- Origines : Filtre les événements en fonction d'une origine spécifique.
- Santé du pool : Filtre les événements en fonction de l'état du pool (par exemple, sain ou critique).
- Pools : Filtre les événements en fonction d'un groupe d'origine spécifique.
Pour voir les événements du bilan de santé, cliquez sur Fiabilité > Équilibreurs de charge globaux > Événements.
Étape 2 : Créer un pool d'origine
Au moins un pool est requis pour chaque équilibreur de charge mis à disposition. Regroupe les origines à utiliser par l'équilibreur de charge.
-
Dans la console CIS, cliquez sur Fiabilité > Équilibreurs de charge globaux > Pools d'origine, puis cliquez sur Créer.
-
Sélectionnez l'activation ou non de ce pool. Les piscines pour handicapés ne reçoivent pas de trafic et CIS les exclut des contrôles de santé. Lorsque vous désactivez un pool, tous les équilibreurs de charge qui l'utilisent basculent sur le pool suivant, s'il y en a un.
-
Configurez les champs obligatoires :
- Nom : Un abrégé (balise) pour le pool. Seuls les caractères alphanumériques, les traits d'union et les traits de soulignement sont autorisés.
- Origines : Liste des origines au sein du pool. CIS répartit le trafic destiné à ce pool entre toutes les origines actuellement opérationnelles, à condition que le pool lui-même soit opérationnel.
Si vos serveurs d'applications se trouvent derrière un équilibreur de charge local, tel qu'un équilibreur de charge IBM Cloud, ajoutez alors le nom de domaine complet (FQDN) ou l'adresse IP virtuelle de votre équilibreur de charge comme origine, au lieu d'ajouter vos serveurs individuellement.
-
Configurez les champs facultatifs si nécessaire :
- Seuil d'origine saine : Nombre minimum d'origines devant être intègres pour que ce pool distribue le trafic. Si le nombre d'origines opérationnelles tombe en dessous de ce seuil, CIS marque le pool comme non opérationnel
et bascule vers le prochain pool disponible. (Par défaut :
1) - Région de contrôle d'intégrité du pool: région à partir de laquelle le contrôle d'intégrité effectue la surveillance.
- Contrôle de santé : Contrôle de santé à utiliser pour vérifier les origines au sein du pool (Par défaut : aucun contrôle d'intégrité )
- Seuil d'origine saine : Nombre minimum d'origines devant être intègres pour que ce pool distribue le trafic. Si le nombre d'origines opérationnelles tombe en dessous de ce seuil, CIS marque le pool comme non opérationnel
et bascule vers le prochain pool disponible. (Par défaut :
-
Cliquez sur Enregistrer pour terminer la configuration du pool d'origine.
Au départ, le pool d'origines est à l'état Incorrect. Cet état passe à Healthy (En bon état) après un contrôle d'intégrité réussi effectué par CIS. Vous devrez peut-être actualiser votre navigateur pour voir le changement d'état.
Définissez autant de pools d'origines que de parcs d'applications dont vous disposez. Ces parcs peuvent se trouver dans la même région ou dans des régions différentes.
Étape 3 : Configurer l'équilibreur de charge global
Les équilibreurs de charge permettent de répartir le trafic entre plusieurs pools d'origine.
-
Dans la console CIS, cliquez sur Fiabilité > Équilibreurs de charge globaux > Équilibreurs de charge, puis cliquez sur Créer.
-
Activer l'équilibreur de charge.
-
Pour Proxy, vérifiez si le trafic passe par les fonctions de sécurité et de performance sur CIS. 'Désactivé' ignore ces systèmes.
-
Configurez les informations suivantes :
-
Name (optionnel): Le nom à associer à votre équilibreur de charge.
-
TTL : Durée de vie (TTL) de l'entrée DNS associée à l'adresse IP renvoyée par cet équilibreur de charge. Cette option s'applique uniquement aux équilibreurs de charge qui n'utilisent pas de proxy. Sinon, elle prend la valeur par défaut
Automatic. -
Pilotage du trafic: Contrôle la façon dont les demandes des utilisateurs entrants sont réparties entre les pools d'origine configurés en déterminant l'algorithme utilisé par CIS pour décider quel centre de données (pool) sert chaque demande. Pour plus d'informations, voir Optimiser le pilotage du trafic.
-
Affinité de session : Achemine toujours le trafic via la même instance de performances et de mesures. Cette option n'est disponible que si le proxy est activé.
-
Itinéraires géographiques: mise en correspondance des codes de région ou de pays avec une liste de pools (classés par ordre de priorité de basculement) pour la région spécifiée. Toutes les régions qui ne sont pas explicitement définies utilisent alors les pools par défaut.
IBM les régions géographiques de l'Union européenne diffèrent des régions utilisées par CIS. Pour plus d'informations sur les régions géographiques, voir la rubrique Pilotage géographique.
-
-
Cliquez sur Créer pour terminer la configuration de l'équilibreur de charge global.
Étape 4 : Vérifier la connectivité
Enfin, vérifiez la connectivité à votre application en accédant au FQDN URL dans un navigateur.
Pour plus d'informations sur la mise à jour et la suppression des équilibreurs de charge globaux, des contrôles de santé et des pools d'origine dans la console, voir Gestion des équilibreurs de charge globaux.
Configuration des équilibreurs de charge globaux à partir de l'interface de ligne de commande
Pour créer et configurer un équilibreur de charge global à partir de l'interface de ligne de commande, suivez les étapes suivantes dans l'ordre :
- Créer un bilan de santé. (facultatif)
- Créez un pool d'origines.
- Créer un équilibreur de charge global.
Étape 1 : Création d'un bilan de santé à partir de l'interface de gestion (facultatif)
Les contrôles de santé constituent des pièces jointes facultatives aux pools d'origine. Si vous ne définissez aucun contrôle d'intégrité personnalisé, le système utilise / comme chemin de contrôle d'intégrité par défaut.
Pour créer un bilan de santé à partir de l'interface de ligne de commande (CLI), exécutez la commande suivante :
ibmcloud cis glb-monitor-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Où :
--json-
Fichier JSON ou chaîne JSON utilisé pour décrire un bilan de santé. Obligatoire.
- La zone obligatoire dans les données JSON est
type.type: Protocole à utiliser pour le contrôle d'intégrité. Les valeurs valides sontHTTP,HTTPS, etTCP.
- Les zones facultatives sont
description,timeout,retries,interval.description: Description du contrôle d'intégrité.timeout: Délai d'attente (en secondes) avant de considérer le contrôle d'intégrité comme ayant échoué.retries: Nombre de tentatives à effectuer en cas de délai d'expiration avant que l'origine ne soit marquée comme défaillante.interval: Intervalle entre chaque contrôle d'intégrité.
- Pour le contrôle de santé de type
TCP. La zone obligatoire supplémentaire estport.port: Le port de l' TCP à utiliser pour le contrôle d'intégrité.
- Pour le contrôle de santé de type
HTTP/HTTPS. Les zones facultatives supplémentaires sontport,expected_body,expected_codes,method,path,header,follow_redirects,allow_insecure.port: Le port de l' TCP à utiliser pour le contrôle d'intégrité.expected_body: Sous-chaîne (sans distinction de majuscules/minuscules) à rechercher dans le corps de la réponse.expected_codes: Code de réponse ou plage de codes attendus de l' HTTP pour le contrôle d'intégrité.method: Méthode HTTP à utiliser pour le contrôle d'intégrité.path: Chemin d'accès au point de terminaison à soumettre au contrôle d'intégrité.header: Les en-têtes de requête HTTP à envoyer lors du contrôle d'intégrité.follow_redirects: Suivre les redirections si elles sont renvoyées par le serveur d'origine.allow_insecure: Ne validez pas le certificat lorsque vous utilisez l' HTTPS de surveillance.probe_zone: Attribuez ce moniteur pour qu'il émule la zone spécifiée lors de la détection.
Exemple de données JSON :
Pour HTTP/HTTPS :
{ "description": "Health monitor of web service", "type": "https", "method": "GET", "path": "/health", "header": { "Host": [ "example.com" ], "X-App-ID": [ "abc123" ] }, "timeout": 5, "retries": 2, "interval": 90, "follow_redirects": true, "allow_insecure": false, "expected_codes": "2xx", "expected_body": "alive", "probe_zone": "example.com" }Pour TCP :
{ "description": "Health monitor of TCP", "type": "tcp", "port": 80, "timeout": 5, "retries": 2, "interval": 90 } - La zone obligatoire dans les données JSON est
-i, --instance-
Nom ou ID de l'instance. Si vous ne définissez pas le nom ou l'ID de l'instance, la commande utilise l'instance de contexte (
ibmcloud cis instance-set INSTANCE). --output-
Format de sortie. Actuellement,
jsonest la seule valeur prise en charge.
Étape 2 : Création d'un pool d'origine à partir de l'interface de gestion
Pour créer un pool d'origine à partir de l'interface de ligne de commande (CLI), exécutez la commande suivante :
ibmcloud cis glb-pool-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Où :
--json- Fichier JSON ou chaîne JSON utilisé(e) pour décrire un pool d'origine. Obligatoire.
- Les champs obligatoires dans les données JSON sont
name,originset :check_regionsname: Nom abrégé (balise) du pool.origins: Liste des origines comprises dans ce pool.check_regions: Liste des codes de régions géographiques.
- Les zones facultatives sont
description,minimum_origins,enabled,monitor.
- Les champs obligatoires dans les données JSON sont
Exemple de données JSON :
{
"name": "us-pool",
"description": "application server pool in US",
"origins": [
{
"name": "us-app-dal01",
"address": "1.1.1.1",
"enabled": true,
"header": {
"host": ["test.com"]
}
},
{
"name": "us-app-dal02",
"address": "2.2.2.2",
"enabled": true,
"header": {
"host": ["example.com"]
}
}
],
"minimum_origins": 1,
"check_regions": [ "WNAM" ],
"monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc",
"enabled": true
}
-i, --instance- Nom ou ID de l'instance. Si vous ne définissez pas le nom ou l'ID de l'instance, la commande utilise l'instance de contexte (
ibmcloud cis instance-set INSTANCE). --output- Format de sortie. Actuellement,
jsonest la seule valeur prise en charge.
Étape 3 : Création d'un équilibreur de charge global à partir de l'interface de ligne de commande
Pour créer un équilibreur de charge global à partir de l'interface de ligne de commande (CLI), exécutez la commande suivante :
cis glb-create DNS_DOMAIN_ID (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]
Où :
DNS_DOMAIN_ID- L'ID du domaine DNS. Obligatoire.
--json- Fichier JSON ou chaîne JSON utilisé pour décrire un équilibreur de charge global. Obligatoire.
- Les champs obligatoires dans les données JSON sont
name,fallback_pool, et :default_poolsname: Le nom d'hôte DNS à associer à votre équilibreur de charge.fallback_pooliD du pool : L'ID du pool à utiliser lorsque CIS détecte que tous les autres pools ne sont pas en bonne santé.default_pools: Liste des identifiants de pool classés par ordre de priorité de basculement.
- Les zones facultatives sont
description,ttl,region_pools,proxied,enabled,session_affinity,session_affinity_ttl,steering_policy:description: Description de votre équilibreur de charge.ttl: Durée de vie (TTL) de l'entrée DNS correspondant à l'adresse IP renvoyée par cet équilibreur de charge.region_pools: Correspondance entre les codes de région et de pays et une liste d'identifiants de pool (classés par ordre de priorité de basculement) pour la région.proxied: Contrôlez si le trafic passe par les fonctions de sécurité et de performance d' CIS.enabled: Faut-il activer (par défaut) cet équilibreur de charge?session_affinity: Permet de s'assurer que CIS dirige systématiquement les demandes d'un utilisateur vers le même serveur dorsal au cours d'une session. Les valeurs valables sontcookieetnone.session_affinity_ttl: Durée, en secondes, jusqu'à ce que le cookie d'affinité de session de cet équilibreur de charge expire après que CIS l'a créé. La valeur valide est comprise entre[1800, 604800]. La valeur par défaut est82800.steering_policy: Les valeurs valides poursteering_policysontoff,geo,random,dynamic_latency.off: Utiliserdefault_pools.geo: Utiliserregion_pools/pop_pools.random: Sélectionnez un pool au hasard.dynamic_latency: Utilisez le temps aller-retour pour sélectionner le pool le plus proche (default_poolsnécessite des contrôles d'intégrité du pool).
- Les champs obligatoires dans les données JSON sont
Exemple de données JSON :
{
"name": "www.example.com",
"fallback_pool": "17b5962d775c646f3f9725cbc7a53df4",
"default_pools": [
"17b5962d775c646f3f9725cbc7a53df4",
"9290f38c5d07c2e2f4df57b1f61d4196"
],
"description": "Example global load balancer.",
"ttl": 60,
"region_pools": {
"WNAM": [
"de90f38ced07c2e2f4df50b1f61d4194",
"9290f38c5d07c2e2f4df57b1f61d4196"
],
"ENAM": [
"00920f38ce07c2e2f4df50b1f61d4194"
]
}
}
-i, --instance- Nom ou ID de l'instance. Si vous ne définissez pas le nom ou l'ID de l'instance, la commande utilise l'instance de contexte (
ibmcloud cis instance-set INSTANCE). --output- Format de sortie. Actuellement,
jsonest la seule valeur prise en charge.
Pour plus d'informations sur la création, la mise à jour et la suppression d'équilibreurs de charge globaux, de contrôles de santé et de pools d'origine, voir Commandes CLI de l'équilibreur de charge global.
Configuration des équilibreurs de charge globaux à l'aide de l'API
Pour créer et configurer un équilibreur de charge global avec l'API, suivez les étapes suivantes dans l'ordre :
- Créer un bilan de santé. (facultatif)
- Créez un pool d'origines.
- Créer un équilibreur de charge global.
Étape 1 : Création d'un bilan de santé avec l'API (facultatif)
Les contrôles de santé constituent des pièces jointes facultatives aux pools d'origine. Si vous ne définissez aucun contrôle d'intégrité personnalisé, le système utilise / comme chemin de contrôle d'intégrité par défaut.
Procédez comme suit pour créer un bilan de santé à l'aide de l'API :
- Configurez l'environnement de votre API avec les variables appropriées.
- Enregistrez la valeur suivante dans des variables qui seront utilisées dans la commande API :
CRN: CRN complet codé en URL de l'instance de service.
-
Une fois toutes les variables initialisées, créez le contrôle d'intégrité :
curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/monitors -H 'content-type: application/json' -H 'x-auth-user-token: Bearer xxxxxx' -d '{ "description": "", "type": "http", "interval": 60, "retries": 2, "timeout": 5, "expected_body": "", "expected_codes": "200", "follow_redirects": true, "allow_insecure": false, "path": "/status", "header": { "Host": ["www.example.com"], "X-App-ID": ["abc123"] }, "method": "GET" }'
Étape 2 : Création d'un pool d'origine à l'aide de l'API
Procédez comme suit pour créer un pool d'origine à l'aide de l'API :
- Configurez l'environnement de votre API avec les variables appropriées.
- Enregistrez la valeur suivante dans des variables qui seront utilisées dans la commande API :
CRN: CRN complet codé en URL de l'instance de service.
-
Une fois toutes les variables initialisées, créez le pool d'origine :
curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/pools -H 'content-type: application/json' -H 'x-auth-user-token: Bearer xxxxxx' -d '{ "description": "", "enabled": true, "minimum_origins": 1, "monitor": "92859a0f6b4d3e55b953e0e29bb96338", "name": "eu-pool", "notification_email": "", "check_regions": [ "EEU" ], "origins": [ { "name": "eu-origin1", "address": "150.0.0.1", "enabled": true, "weight": 1 }, { "name": "eu-origin2", "address": "150.0.0.2", "enabled": true, "weight": 1 } ] }'
Étape 3 : Création d'un équilibreur de charge global avec l'API
Suivez les étapes suivantes pour créer un équilibreur de charge global avec l'API :
- Configurez l'environnement de votre API avec les variables appropriées.
- Stockez les valeurs suivantes dans les variables destinées à être utilisées dans la commande d'API :
CRN: CRN complet codé en URL de l'instance de service.
ZONE_ID: L'ID de domaine.
-
Lorsque toutes les variables sont initialisées, créez les équilibreurs de charge globaux :
curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/zones/:zone_id/load_balancers -H 'content-type: application/json' -H 'x-auth-user-token: Bearer xxxxxx' -d '{ "description": "", "proxied": true, "enabled": true, "name": "www.example.com", "session_affinity": "none", "session_affinity_ttl": 5000, "steering_policy": "geo", "fallback_pool": "4112ba6c2974ec43886f90736968e838", "default_pools": [ "6563ebae141638f92ebbdc4a821bef8c", "4112ba6c2974ec43886f90736968e838" ], "pop_pools": {}, "region_pools": { "EEU": [ "4112ba6c2974ec43886f90736968e838" ], "ENAM": [ "6563ebae141638f92ebbdc4a821bef8c" ], "WEU": [ "4112ba6c2974ec43886f90736968e838" ], "WNAM": [ "6563ebae141638f92ebbdc4a821bef8c" ] } }'
Pour plus d'informations sur la création, la mise à jour et la suppression d'équilibreurs de charge globaux, de contrôles de santé et de pools d'origine, voir API Global load balancer.
Configurer des équilibreurs de charge globaux avec Terraform
Avant de commencer, assurez-vous d'avoir effectué les étapes de configuration de Terraform pour CIS.
Pour créer et configurer un équilibreur de charge global avec Terraform, suivez les étapes suivantes dans l'ordre :
- Création d'un diagnostic d'intégrité
- Créer un pool d'origine
- Créer un équilibreur de charge global (GLB)
Étape 1 : Création d'un bilan de santé avec Terraform (facultatif)
Les contrôles de santé constituent des pièces jointes facultatives aux pools d'origine. Si vous ne définissez aucun contrôle d'intégrité personnalisé, le système utilise / comme chemin de contrôle d'intégrité par défaut.
Pour créer un bilan de santé avec Terraform, utilisez la ressource ibm_cis_healthcheck:
resource "ibm_cis_healthcheck" "health_check" {
cis_id = ibm_cis.instance.id
description = "Health check for web servers"
expected_body = "alive"
expected_codes = "200"
method = "GET"
timeout = 5
path = "/health"
interval = 60
retries = 2
type = "http"
port = 80
allow_insecure = false
follow_redirects = true
}
Étape 2 : Création d'un pool d'origine avec Terraform
Pour créer un pool d'origine avec Terraform, utilisez la ressource ibm_cis_origin_pool:
resource "ibm_cis_origin_pool" "origin_pool" {
cis_id = ibm_cis.instance.id
name = "us-pool"
origins {
name = "us-app-dal01"
address = "1.1.1.1"
enabled = true
}
origins {
name = "us-app-dal02"
address = "2.2.2.2"
enabled = true
}
description = "Application server pool in US"
enabled = true
minimum_origins = 1
monitor = ibm_cis_healthcheck.health_check.id
notification_email = ""
check_regions = [
"WNAM"
]
}
Étape 3 : Création d'un équilibreur de charge global avec Terraform
Pour créer un équilibreur de charge global avec Terraform, utilisez la ressource ibm_cis_global_load_balancer:
resource "ibm_cis_global_load_balancer" "global_load_balancer" {
cis_id = ibm_cis.instance.id
domain_id = ibm_cis_domain.domain.id
name = "www.example.com"
fallback_pool_id = ibm_cis_origin_pool.origin_pool.id
default_pool_ids = [
ibm_cis_origin_pool.origin_pool.id
]
description = "Global load balancer for example.com"
proxied = true
enabled = true
session_affinity = "cookie"
steering_policy = "geo"
pop_pools {
pop = "LAX"
pool_ids = [
ibm_cis_origin_pool.origin_pool.id
]
}
region_pools {
region = "WNAM"
pool_ids = [
ibm_cis_origin_pool.origin_pool.id
]
}
}
Pour plus d'informations sur les ressources Terraform pour les équilibreurs de charge globaux, les contrôles de santé et les pools d'origine, voir les ressources suivantes dans le registre Terraform de IBM Cloud Provider :