Création d'un équilibreur de charge de réseau public ou privé
Vous pouvez créer un site IBM Cloud® Network Load Balancer for VPC (NLB) à l'aide de la console, de la CLI ou de l'API.
Avant de commencer
Pour configurer un équilibreur de charge de réseau public ou privé, vérifiez que les conditions suivantes sont remplies:
- Si vous ne disposez pas d'un VPC, créez-en un dans la région dans laquelle vous souhaitez créer votre équilibreur de charge de réseau.
- Créez un sous-réseau dans la zone de votre choix au sein de votre VPC.
Le service NLB peut ajouter des règles aux tables de routage personnalisées afin de garantir la disponibilité du service dans certaines situations de défaillance. Par conséquent, si le client se trouve en dehors de la zone et/ou du VPC du NLB, vous devez ajouter une table de routage personnalisée entrante au VPC sur lequel réside le NLB avec la source de trafic appropriée sélectionnée.
Pour les NLB privés, en fonction du site des clients, vous devez vous assurer que les tables de routage entrantes existent (comme décrit dans le tableau 1).
| Site client | Type de table de routage | Source de trafic |
|---|---|---|
| Port | Ingress | Direct Link |
| Autre VPC ou infrastructure classique | Ingress | Transit Gateway |
| Autre zone de disponibilité du même VPC | Ingress | Zone du VPC |
Pour plus d'informations, voir A propos des tables de routage et des routes.
Création d'un équilibreur de charge réseau dans la console
Pour créer et configurer un équilibreur de charge de réseau dans la console IBM Cloud, procédez comme suit:
-
Dans votre navigateur, ouvrez la console IBM Cloud et connectez-vous à votre compte.
-
Sélectionnez l'
du menu Navigation, puis cliquez sur l'icône Infrastructure
> Réseau > Équilibreurs de charge.
-
Cliquez sur « Créer + » en haut à droite de la page.
-
Pour le type d'équilibreur de charge, sélectionnez la vignette de l'équilibreur de charge de réseau (NLB).
-
Pour Emplacement, modifiez les zones suivantes, si nécessaire.
- Zone géographique- Indique la zone géographique dans laquelle vous souhaitez créer l'équilibreur de charge.
- Région- Indique la région dans laquelle vous souhaitez créer l'équilibreur de charge.
-
Pour plus de détails, veuillez remplir les informations suivantes :
-
Nom- Saisissez un nom pour l'équilibreur de charge, par exemple
my-load-balancer. -
Groupe de ressources- Sélectionnez un groupe de ressources pour l'équilibreur de charge.
-
Balises- (Facultatif) Ajoutez des balises pour vous aider à organiser et à retrouver vos ressources. Vous pourrez ajouter d'autres balises ultérieurement. Pour plus d'informations, voir Utilisation d'étiquettes.
-
Balises de gestion des accès-(Facultatif) Ajoutez des balises de gestion des accès aux ressources pour faciliter l'organisation des relations de contrôle d'accès.
key:valueest le seul format pris en charge pour les étiquettes de gestion des accès. Pour plus d'informations, voir Contrôle de l'accès aux ressources à l'aide d'étiquettes. -
Cloud privé virtuel- Sélectionnez votre VPC.
-
Pour le type. sélectionnez Public ou Privé.
Pour le type « Privé » uniquement, vous pouvez activer le mode de routage, qui sert à déployer des fonctions de réseau virtuel (VNF) hautement disponibles. Pour les cas d'utilisation et les instructions de bout en bout, voir A propos des déploiements de la fonction de réseau virtuel (VNF) à haute disponibilité.
-
Pour le type DNS, sélectionnez Public ou Privé. Les zones DNS privées ne peuvent être résolues que sur IBM Cloud, et uniquement à partir de réseaux explicitement autorisés dans un compte ou bénéficiant d'un accès inter-comptes.
Pour le type Privé uniquement, cliquez sur Lier + pour entrer vos informations d'instance DNS et de zone, puis cliquez sur Lier.
-
Sélectionnez les sous-réseaux dans lesquels vous souhaitez créer votre équilibreur de charge. Pour optimiser la disponibilité de votre application, sélectionnez des sous-réseaux dans des zones différentes.
-
-
Pour les pools de serveurs, cliquez sur « Créer un pool » et indiquez les informations suivantes afin de créer un pool de serveurs. Quand vous avez terminé, cliquez sur Créer.
Vous pouvez créer un ou plusieurs pools.
-
Entrez un nom pour le pool (par exemple,
my-pool). -
Sélectionnez un protocole pour vos instances dans ce pool. Le protocole du pool doit correspondre au protocole de son écouteur associé. Par exemple, si l'écouteur est TCP, le protocole du pool doit être TCP. Ou, si le protocole du programme d'écoute est UDP, le protocole du pool doit également être UDP.
-
Choisissez la rétention de session et sélectionnez Aucune ou IP source. Si vous choisissez Adresse IP source, toutes les demandes au cours de votre session sont envoyées à la même instance.
-
Sélectionnez la méthode : algorithme d'équilibrage de charge. Les options suivantes s'affichent :
- Permutation circulaire : réacheminez les demandes vers chaque instance, à tour de rôle. Toutes les instances reçoivent approximativement un nombre égal de connexions client.
- Permutation circulaire pondérée : réacheminez les demandes vers chaque instance proportionnellement au poids qui lui est affecté. Par exemple, si vous avez les instances A, B et C, et que leurs poids sont fixés à 60, 60 et 30, alors les instances A et B reçoivent le même nombre de connexions, tandis que l'instance C en reçoit deux fois moins.
- Nombre minimal de connexions : réacheminez les demandes vers l'instance dont le nombre de connexions est le plus faible.
-
Pour le diagnostic d'intégrité, les options suivantes sont affichées:
- Chemin de vérification de l'état de santé- Un chemin de vérification de l'état de santé n'est applicable que si vous sélectionnez « HTTP » comme protocole de vérification de l'état de santé. Le chemin du diagnostic d'intégrité indique l'URL utilisée par l'équilibreur de charge pour envoyer des demandes de diagnostic d'intégrité HTTP aux instances du pool. Par défaut, les contrôles d'intégrité sont envoyés au chemin racine (/).
- Protocole de santé : protocole utilisé par l'équilibreur de charge pour envoyer des messages de contrôle d'intégrité aux instances du pool.
- Port de santé- Le port sur lequel l'équilibreur de charge envoie les requêtes de contrôle de santé. Par défaut, les contrôles d'intégrité sont envoyés sur le même port que celui sur lequel le trafic est envoyé à l'instance.
- Intervalle - Intervalle exprimé en secondes entre deux tentatives de diagnostic d'intégrité consécutives Par défaut, les contrôles d'intégrité sont envoyés toutes les cinq secondes.
- Délai d'attente (en secondes)- Durée maximale pendant laquelle le système attend une réponse à une requête de vérification de l'état de santé. Par défaut, l'équilibreur de charge attend une réponse pendant 2 secondes.
- Nombre maximal de tentatives- Nombre maximal de tentatives de vérification de l'état de santé que l'équilibreur de charge effectue avant de déclarer une instance en état d'erreur. Par défaut, une instance n'est plus considérée comme étant en bonne santé après deux échecs de contrôle d'intégrité.
Vous pouvez connecter des instances de serveur après avoir créé votre pool dorsal.
-
-
Vous pouvez également créer une sauvegarde pour n'importe lequel de vos pools existants. Cela permet au pool de sauvegarde de gérer le trafic en cas de défaillance d'un membre. Pour ce faire, vous devez créer une politique de sécurité intégrée :
Votre équilibreur de charge doit avoir au moins un pool pour pouvoir en affecter un de secours.
- Une fois que le statut de votre équilibreur de charge est passé à Actif, sélectionnez l'onglet Pools back-end.
- Sur la page répertoriant les pools, cliquez sur « Modifier », puis indiquez les informations suivantes :
- Action: Sélectionnez « Forward » (Transférer) pour créer un pool de sauvegarde. La section Cible est alors activée.
- Cible : Sélectionnez un pool dans la liste des pools compatibles pour créer votre pool de sauvegarde.
Pour les équilibreurs de charge réseau, vous ne pouvez pas affecter un pool en tant que pool de secours s'il est déjà connecté à un écouteur. De plus, les auditeurs ne peuvent pas être rattachés à un groupe de secours.
Bien que l'équilibreur de charge arrête d'envoyer des connexions aux instances en mauvaise santé, il continue de surveiller la santé de ces instances et les réutilise dès qu'elles sont à nouveau considérées comme étant en bonne santé (après deux tentatives de contrôle d'intégrité consécutives satisfaisantes).
Si des instances du pool sont en mauvaise santé et que vous pensez que votre application s'exécute correctement, vérifiez les valeurs de protocole de santé et de chemin de santé. Vérifiez également tout groupe de sécurité associé aux instances pour vous assurer que les règles autorisent le trafic entre l'équilibreur de charge et ces instances.
-
Cliquez sur « Créer un écouteur » et indiquez les informations suivantes :
- Pool de serveurs de fond par défaut- Le pool de serveurs de fond par défaut vers lequel ce listener transfère le trafic.
- Protocole : protocole à utiliser pour la réception des demandes entrantes.
- Port d'écoute- Le port sur lequel les requêtes sont reçues. Les options possibles sont les suivantes:
- Port d'écoute unique- Le port par lequel l'équilibreur de charge reçoit le trafic entrant de vos clients.
- Plage de ports d'écoute-Plage de ports où l'équilibreur de charge reçoit votre trafic client entrant.
Cliquez ensuite sur Créer. Vous pouvez créer un ou plusieurs écouteurs.
-
Dans la section « Groupes de sécurité », sélectionnez les groupes de sécurité que vous souhaitez associer à votre équilibreur de charge, ou cliquez sur « Créer » pour créer un nouveau groupe de sécurité à associer à votre NLB.
Assurez-vous que le groupe de sécurité autorise l'équilibrage de charge du trafic (ports d'écoute, cibles et ports de vérification de l'état). Si vous ne spécifiez pas de groupe de sécurité, le groupe de sécurité par défaut de votre VPC se connecte à la place.
-
Cliquez sur Ajouter à l'estimation pour passer en revue la tarification de votre équilibreur de charge et la créer.
Création d'un équilibreur de charge réseau à partir de l'interface de ligne de commande
L'exemple suivant illustre l'utilisation de l'interface de ligne de commande pour créer un équilibreur de charge de réseau (Network Load Balancer for VPC). Dans cet exemple, il se trouve devant une instance de serveur virtuel VPC (ID 0716_6acdd058-4607-4463-af08-d4999d983945)
qui exécute un serveur TCP écoutant sur le port 9090. L'équilibreur de charge dispose d'un écouteur de front-end, qui permet un accès sécurisé au serveur TCP.
Pour créer un équilibreur de charge réseau à l'aide de l'interface de ligne de commande, procédez comme suit :
-
Configurez votre environnement d'interface de ligne de commande.
-
Connectez-vous à votre compte via l'interface de ligne de commande. Une fois le mot de passe saisi, le système vous demande de choisir le compte et la région que vous souhaitez utiliser.
ibmcloud login --sso -
Créez un équilibreur de charge.
ibmcloud is load-balancer-create nlb-test public --subnet 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c --family networkExemple de sortie :
Creating load balancer nlb-test in resource group under account IBM Cloud Network Services as user test@ibm.com... ID r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Name nlb-test CRN crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Family Network Host name 99b5ab45-us-south.lb.test.appdomain.cloud Subnets ID Name 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c nlb Security Groups ID Name 0581-a1336811-39dc-5aff-a0e6-6489a43ca62v nlb1 Public IPs Private IPs Provision status create_pending Operating status offline Is public true Listeners Pools ID Name Resource group ID Name 3021f90279574ce287dd5fba82c08899 Default Created 2020-08-27T14:34:34.732-05:00Créer un équilibreur de charge de réseau privé.
ibmcloud is load-balancer-create nlb-test private --subnet 07a7-37b4dcfc-841e-4d4a-9f9f-9e45ffbd0285 --family networkExemple de sortie :
Creating load balancer nlb-test in resource group under account CNS Development Account - netsvs as user test@us.ibm.com... ID r018-8a994baa-21ba-428c-ac3f-e3fd91fa92c9 Name nlb-test CRN crn:v1:bluemix:public:is:eu-gb-3:a/123456::load-balancer:r018-8a994baa-21ba-428c-ac3f-e3fd91fa92c9 Family Network Host name 8a994baa-eu-gb.lb.appdomain.cloud Subnets ID Name 07a7-37b4dcfc-841e-4d4a-9f9f-9e45ffbd0285 nlb1 Security Groups ID Name 0581-a1336811-39dc-5aff-a0e6-6489a43ca626 Public IPs Private IPs Provision status create_pending Operating status offline Is public false Listeners Pools ID Name Resource group ID Name 42c4f51adc3147b4b4049ad9826c30a1 Default Created 2021-03-22T11:34:57.34-05:00 -
Créer un pool.
ibmcloud is load-balancer-pool-create nlb-pool r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 weighted_round_robin tcp 10 --failsafe-policy-action forward --failsafe-policy-target pool2Exemple de sortie :
Creating pool nlb-pool of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 Name nlb-pool Protocol tcp Algorithm weighted_round_robin Instance group ID Name - - Health monitor Type Port Health monitor URL Delay Retries Timeout http 8080 / 10 2 5 Failsafe policy Action Target ID Target name Healthy Member Threshold Count forward r006-815e16e7-8729-4d9e-9203-936a6b615ee1 pool2 0 Session persistence type source_ip Members Provision status active Created 2020-08-27T14:45:42.038-05:00 -
Créez un membre.
ibmcloud is load-balancer-pool-member-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 9090 0716_6acdd058-4607-4463-af08-d4999d983945 --weight 70Exemple de sortie :
Creating member of pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 under account IBM Cloud Network Services as user test@ibm.com... ID r006-61f8b000-a90d-4abe-909e-c507dffec565 Port 9090 Target 0716_6acdd058-4607-4463-af08-d4999d983945 Weight 70 Health unknown Created 2020-08-27T14:59:55.446-05:00 Provision status create_pending -
Créez un programme d'écoute.
ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0Exemple de sortie :
Creating listener of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba Certificate instance - Connection limit - Port 7070 Protocol tcp Default pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 Provision status create_pending Created 2020-08-27T15:16:08.643-05:00 -
Obtenez des informations détaillées sur votre équilibreur de charge.
ibmcloud is load-balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776Exemple de sortie :
Getting load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com... ID r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Name nlb-test CRN crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 Family Network Host name 99b5ab45-us-south.lb.test.appdomain.cloud Subnets ID Name 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c nlb Public IPs 150.238.50.78, 150.238.54.95 Private IPs 10.240.0.58, 10.240.0.59 Provision status active Operating status online Is public true Listeners r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba Pools ID Name r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 nlb-pool Resource group ID Name 3021f90279574ce287dd5fba82c08899 Default Created 2020-08-27T14:34:34.732-05:00
Création d'un équilibreur de charge réseau à l'aide de l'API
L'exemple suivant montre comment créer un équilibreur de charge réseau devant deux instances de serveur virtuel VPC (192.168.100.5 et 192.168.100.6) exécutant une application web qui écoute sur le port 80.
L'équilibreur de charge dispose d'un écouteur de front-end, qui permet un accès sécurisé à l'application Web en utilisant HTTPS.
Cet exemple ignore les étapes prérequises de l'utilisation de l'API pour mettre à disposition un cloud privé virtuel, des sous-réseaux et des instances.
Pour créer un équilibreur de charge réseau à l'aide de l'API, procédez comme suit :
-
Configurez votre environnement d'API.
-
Enregistrez les valeurs suivantes dans des variables qui seront utilisées dans la commande API.
ResourceGroupId- Commencez par récupérer votre groupe de ressources, puis attribuez une valeur à la variable.
export ResourceGroupId=<your_resourcegroup_id> -
Créez un équilibreur de charge comprenant un écouteur, un pool et des instances de serveur associées (membres du pool).
curl -H "Authorization: Bearer $iam_token" -X POST "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \ -d '{ "name": "example-balancer", "is_public": true, "profile": { "name": "network-fixed" }, "listeners": [ { "certificate_instance": { "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/123456:b8877ea4-b8eg-467e-912a-da1eb7f031cg:certificate:43219c4c97d013fb2a95b21dddde1234" }, "port": 443, "protocol": "tcp", "default_pool": { "name": "example-pool" } } ], "pools": [ { "algorithm": "round_robin", "health_monitor": { "delay": 5, "max_retries": 2, "timeout": 2, "type": "tcp", "url_path": "/" }, "name": "example-pool", "protocol": "tcp", "session_persistence": { "cookie_name": "string", "type": "source_ip" }, "members": [ { "port": 80, "target": { "address": "192.168.100.5" }, "weight": 50 }, { "port": 80, "target": { "address": "192.168.100.6" }, "weight": 50 } ] } ], "subnets": [ { "id": "7ec87131-1c7e-4990-b4f0-a26f2e61f98e" } ] }'Exemple de sortie :
{ "created_at": "2018-07-12T23:17:07.5985381Z", "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "hostname": "ac34687d.lb.appdomain.cloud", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "is_public": true, "profile": { "name": "network-fixed", "family": "network" }, "listeners": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004" } ], "name": "example-balancer", "operating_status": "offline", "pools": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004", "name": "example-pool" } ], "provisioning_status": "create_pending", "resource_group": { "id": "56969d60-43e9-465c-883c-b9f7363e78e8" }, "subnets": [ { "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "name": "example-subnet" } ] }Enregistrez l'ID de l'équilibreur de charge pour l'utiliser dans les étapes suivantes. Par exemple, vous pouvez l'enregistrer dans la variable
lbid``.lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727 -
Obtenir des informations sur l'équilibreur de charge.
curl -H "Authorization: Bearer $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"Prévoyez du temps pour la mise à disposition. Quand l'équilibreur de charge est prêt, son statut est défini à
onlineetactive, comme illustré dans la sortie exemple suivante :{ "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727", "name": "example-balancer", "created_at": "2018-07-13T22:22:24.489Z", "hostname": "dd754295-e9e0-4c9d-bf6c-58fbc59e5727.lb.appdomain.cloud", "is_public": true, "profile": { "name": "network-fixed", "family": "network" }, "listeners": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004" } ], "operating_status": "online", "pools": [ { "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004", "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004", "name": "example-pool" } ], "private_ips": [ { "address": "192.168.10.5" }, { "address": "192.168.10.6" } ], "provisioning_status": "active", "public_ips": [ { "address": "169.11.111.115" }, { "address": "169.11.111.116" } ], "resource_group": { "id": "0738-56969d60-43e9-465c-883c-b9f7363e78e8" }, "subnets": [ { "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e", "name": "example-subnet" } ]