Enregistrement d'un sous-domaine DNS pour un équilibreur de charge de réseau (NLB)
Infrastructure classique
Ce contenu est spécifique aux NLB dans les clusters classiques. Pour les clusters de VPC, voir Enregistrement d'un nom d'hôte d'équilibreur de charge VPC avec un sous-domaine DNS.
Après avoir configuré des équilibreurs de charge de réseau (NLB), vous pouvez créer des entrées DNS pour les adresses IP d'équilibreur de charge de réseau en créant des sous-domaines. Vous pouvez également configurer des moniteurs TCP/HTTP(S) afin d'effectuer un diagnostic d'intégrité des adresses IP d'équilibreur de charge de réseau derrière chaque sous-domaine.
- Sous-domaine
- Lorsque vous créez un équilibreur de charge de réseau public dans un cluster à zone unique ou multizone, vous pouvez exposer votre application sur Internet en créant un sous-domaine pour l'adresse IP d'équilibreur de charge de réseau. En outre,
IBM Cloud se charge de générer et gérer le certificat SSL générique pour le sous-domaine. Dans les clusters multizones, vous pouvez créer un sous-domaine et ajouter l'adresse IP d'équilibreur de charge de réseau de chaque zone à cette entrée
DNS de sous-domaine. Par exemple, si vous avez déployé des équilibreurs de charge de réseau pour votre application dans trois zones dans la région Sud des Etats-Unis, vous pouvez créer le sous-domaine
mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloudpour les trois adresses IP d'équilibreur de charge de réseau. Lorsqu'un utilisateur accède à votre sous-domaine d'application, le client accède à l'une de ces adresses IP de manière aléatoire et la demande est envoyée à cet équilibreur de charge de réseau.
Vous ne pouvez pas créer de sous-domaines pour les NLB privés.
Lors de l'utilisation de la surveillance HTTP, l'agent utilisateur par défaut pour la tâche de surveillance est NS1 HTTP Monitoring Job.
- Moniteur de diagnostic d'intégrité
- Activez des diagnostics d'intégrité sur les adresses IP d'équilibreur de charge de réseau situées derrière un sous-domaine unique afin de déterminer si elles sont disponibles ou non. Lorsque vous activez un moniteur pour votre sous-domaine,
il réalise un diagnostic d'intégrité de l'adresse IP d'équilibreur de charge de réseau et tient à jour les résultats de recherche DNS en fonction de ces diagnostics d'intégrité. Par exemple, si vos équilibreurs de charge de réseau ont les
adresses IP
1.1.1.1,2.2.2.2et3.3.3.3, une opération normale de recherche DNS de votre sous-domaine Ingress renvoie ces trois adresses IP, dont 1 est accessible au client de manière aléatoire. Si l'équilibreur de charge de réseau avec l'adresse IP3.3.3.3devient indisponible pour une raison quelconque, par exemple en cas de défaillance d'une zone, le diagnostic d'intégrité correspondant à cette adresse IP échoue, le moniteur retire l'adresse IP du sous-domaine et la recherche DNS renvoie uniquement les adresse IP saines1.1.1.1et2.2.2.2.
Vous pouvez voir tous les sous-domaines qui sont enregistrés pour les adresses IP d'équilibreur de charge de réseau dans votre cluster en exécutant la commande suivante :
ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID
Les mises à jour de micro-service DNS sont asynchrones et peuvent prendre plusieurs minutes. Notez que si vous exécutez une commandeibmcloud oc nlb-dns et recevez un message de confirmation 200, vous devrez peut-être attendre que
vos modifications soient implémentées. Pour vérifier l'état de votre sous-domaine, exécutezibmcloud oc nlb-dns ls et recherchez la colonneStatus dans la sortie.
Enregistrement d'adresses IP d'équilibreur de charge de réseau avec un sous-domaine DNS
Exposez votre application au public sur Internet en créant un sous-domaine pour l'adresse IP d'équilibreur de charge de réseau.
Avant de commencer :
- Passez en revue les limitations suivantes.
- Vous ne pouvez pas créer de sous-domaines pour les NLB privés.
- Vous pouvez enregistrer jusqu'à 128 sous-domaines. Cette limite peut être levée sur demande en ouvrant un cas de support.
- Créez un équilibreur de charge de réseau pour votre application dans un cluster à zone unique ou créez des équilibreurs de charge de réseau dans chaque zone d'un cluster multizone.
Pour créer un sous-domaine pour une ou plusieurs adresses IP d'équilibreur de charge de réseau :
-
Procurez-vous l'adresse EXTERNAL-IP de votre équilibreur de charge de réseau. Si vous avez des équilibreurs de charge de réseau dans chaque zone d'un cluster multizone qui exposent une application, procurez-vous les adresses IP pour chaque équilibreur de charge de réseau.
oc get svcDans l'exemple de sortie suivant, les valeurs de la colonne EXTERNAL-IP pour l'équilibreur de charge de réseau sont
168.2.4.5et88.2.4.5.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE lb-myapp-dal10 LoadBalancer 172.21.xxx.xxx 168.2.4.5 1883:30303/TCP 6d lb-myapp-dal12 LoadBalancer 172.21.xxx.xxx 88.2.4.5 1883:31303/TCP 6d -
Enregistrez l'adresse IP en créant un sous-domaine DNS. Pour spécifier plusieurs adresses IP, utilisez plusieurs
--ipoptions.ibmcloud oc nlb-dns create classic --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> -
Vérifiez que le sous-domaine est créé.
ibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>Exemple de sortie
Hostname IP(s) Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["168.2.4.5"] None created <certificate> -
Facultatif : configurez un domaine personnalisé pour pointer vers le sous-domaine fourni par IBM que vous avez créé à l'étape précédente.
- Enregistrez un domaine personnalisé en vous adressant à votre fournisseur de services de noms de domaine (DNS).
- Enregistrer un domaine personnalisé en utilisant IBM Cloud DNS.
Vous pouvez également enregistrer un domaine personnalisé en utilisant l'annotation
service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-namedans votre configuration Load Balancer. -
Définissez un alias pour votre domaine personnalisé en spécifiant le sous-domaine fourni par IBM sous forme d'enregistrement de nom canonique (CNAME).
-
Dans un navigateur Web, entrez l'URL permettant d'accéder à votre application via le sous-domaine que vous avez créé.
Vous pouvez ensuite activer les diagnostics d'intégrité sur le sous-domaine en créant un moniteur de diagnostic d'intégrité.
Description du format de sous-domaine
Les sous-domaines des NLB suivent le format <cluster_name>-<globally_unique_account_HASH>-0001.<region>.containers.appdomain.cloud.
Par exemple, un sous-domaine que vous créez pour un équilibreur de charge de réseau peut se présenter comme suit : mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud. Le tableau suivant présente
chaque composant du sous-domaine :
| Composant de sous-domaine d'équilibreur de charge de réseau | Description |
|---|---|
* |
Le caractère générique pour le sous-domaine est enregistré par défaut pour votre cluster. |
<cluster_name> |
Le nom de votre cluster. - Si le nom du cluster est de 26 caractères ou moins et que ce nom est unique dans la région, la totalité du nom du cluster est incluse et non modifiée :
|
<globally_unique_account_HASH> |
Une valeur de hachage unique globale est créée pour votre compte IBM Cloud. Tous les sous-domaines que vous créez pour les équilibreurs de charge de réseau inclus dans les clusters de votre compte utilisent cette valeur de hachage unique globale. |
0001 |
Agit comme un compteur pour chaque sous-domaine que vous créez. |
<region> |
Région dans laquelle le cluster est créé. |
containers.appdomain.cloud |
Sous-domaine des sous-domaines Red Hat OpenShift on IBM Cloud. |
Activation de diagnostics d'intégrité sur un sous-domaine en créant un moniteur de diagnostic d'intégrité
Activez des diagnostics d'intégrité sur les adresses IP d'équilibreur de charge de réseau situées derrière un sous-domaine unique afin de déterminer si elles sont disponibles ou non.
Si vous utilisez les stratégies réseau Calico pre-DNAT, les groupes de sécurité VPC, les listes de contrôle d'accès(ACL)VPC ou une autre solution de pare-feu personnalisée pour bloquer le trafic entrant vers les services d'entrée ou de routeur, vous devez autoriser le trafic entrant à partir des points d'extrémité de surveillance de l'état de santé. Pour plus d'informations, voir la documentation sur l'autorisation du trafic réseau entrant pour la surveillance des sous-domaines d'entrée.
Avant de commencer, enregistrez des adresses IP d'équilibreur de charge de réseau avec un sous-domaine DNS.
-
Obtenez le nom de votre sous-domaine. Dans la sortie, notez que le statut (Status) du moniteur pour l'hôte est
Unconfigured.ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>Exemple de sortie
Hostname Status Type Port Path mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud Unconfigured N/A 0 N/A -
Créez un moniteur de diagnostic d'intégrité pour le sous-domaine. Si vous n'incluez pas de paramètre de configuration, la valeur par défaut est utilisée.
ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --enable --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>-c, --cluster <cluster_name_or_ID>- Obligatoire : nom ou ID du cluster sur lequel le sous-domaine est enregistré.
--nlb-host <host_name>- Obligatoire : sous-domaine pour lequel activer un moniteur de diagnostic d'intégrité.
--enable- Incluez cette option pour activer un nouveau moniteur de contrôle d'intégrité pour un sous-domaine.
--type <type>- Protocole à utiliser pour la vérification de santé:
HTTP,HTTPSouTCP. Valeur par défaut :HTTP. --path <path>- Lorsque
typeestHTTPS: le chemin de noeud final vers le diagnostic d'intégrité. Par défaut :/ --timeout <timeout>- Délai d'attente, exprimé en secondes, avant que l'adresse IP ne soit considérée comme inaccessible. Le diagnostic d'intégrité attend pendant le nombre de secondes spécifié au paramètre
intervalavant de tenter d'atteindre à nouveau l'adresse IP. La valeur doit être un nombre entier compris entre 1 et 60. Par défaut :5 --interval <interval>- Intervalle, en secondes, entre chaque diagnostic d'intégrité. Des intervalles courts peuvent améliorer les temps de reprise, mais augmenter la charge sur les adresses IP. La valeur doit être un nombre entier compris entre 60 et 300. Valeur
par défaut :
60. --port <port>- Numéro de port auquel établir une connexion pour le diagnostic d'intégrité. Lorsque
typea pour valeurTCP, ce paramètre est obligatoire. Lorsquetypea pour valeurHTTPouHTTPS, définissez le port uniquement si vous utilisez un port autre que 80 pour HTTP ou 443 pour HTTPS. Valeur par défaut pour TCP :0. Valeur par défaut pour HTTP :80. Valeur par défaut pour HTTPS :443. --header <header>- Requis lorsque
typeest ouHTTPHTTPS: les en-têtes de requête HTTP pour le contrôle d'intégrité sont limités à l'en-tête Host. Cet indicateur n'est valable que pour le type ouHTTPHTTPS. Cet indicateur accepte les valeurs au format suivant :--header Header-Name=value. Lors de la mise à jour d'un moniteur, les en-têtes existants sont remplacés par ceux que vous spécifiez. Pour supprimer tous les en-têtes existants, spécifiez l'indicateur avec une valeur vide--header "".
Exemple de commande
ibmcloud oc nlb-dns monitor configure --cluster mycluster --nlb-host mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud --enable --type HTTPS --path /alive --timeout 5 --interval 60 --header Host=example.com -
Vérifiez que le moniteur de diagnostic d'intégrité est configuré avec les paramètres appropriés.
ibmcloud oc nlb-dns monitor get --cluster <cluster_name_or_id> --nlb-host <host_name>Exemple de sortie
Status: enabled Type: https Method: GET Path: /alive Expected Codes: 2xx Port: 443 Timeout: 5 Interval: 60 Headers: Host: example.com -
Affichez le statut du diagnostic d'intégrité de votre sous-domaine.
ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>Exemple de sortie
Hostname Status Type Port Path mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud enabled https 443 /alive
Mise à jour et retrait d'adresses IP et de moniteurs dans les sous-domaines
Vous pouvez ajouter et retirer des adresses IP d'équilibreur de charge de réseau dans les sous-domaines que vous avez générés. Vous pouvez également désactiver et activer les moniteurs de diagnostic d'intégrité pour les sous-domaines si nécessaire.
IP NLB
Si vous ajoutez ultérieurement d'autres équilibreurs de charge de réseau dans d'autres zones de votre cluster pour exposer la même application, vous pouvez ajouter les adresses IP d'équilibreur de charge de réseau correspondantes dans le sous-domaine existant.
ibmcloud oc nlb-dns add --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> ... --nlb-host <host_name>
Vous pouvez également retirer les adresses IP d'équilibreur de charge de réseau qui ne doivent plus être enregistrées auprès d'un sous-domaine. Notez que vous devez exécuter la commande suivante pour chaque adresse IP que vous souhaitez retirer. Si vous retirez toutes les adresses IP d'un sous-domaine, ce dernier existe toujours mais aucune adresse IP ne lui est associée.
ibmcloud oc nlb-dns rm classic --cluster <cluster_name_or_id> --ip <ip> --nlb-host <host_name>
Moniteurs de diagnostic d'intégrité
Si vous devez modifier la configuration de votre moniteur de diagnostic d'intégrité, vous pouvez modifier des paramètres spécifiques. N'incluez que les options correspondant aux paramètres que vous souhaitez modifier.
ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>
Vous pouvez désactiver le moniteur de diagnostic d'intégrité pour un sous-domaine à tout moment en exécutant la commande suivante :
ibmcloud oc nlb-dns monitor disable --cluster <cluster_name_or_id> --nlb-host <host_name>
Pour réactiver un moniteur pour un sous-domaine, exécutez la commande suivante :
ibmcloud oc nlb-dns monitor enable --cluster <cluster_name_or_id> --nlb-host <host_name>