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.cloud pour 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.2 et 3.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 IP 3.3.3.3 devient 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 saines 1.1.1.1 et 2.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 :

Pour créer un sous-domaine pour une ou plusieurs adresses IP d'équilibreur de charge de réseau :

  1. 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 svc
    

    Dans l'exemple de sortie suivant, les valeurs de la colonne EXTERNAL-IP pour l'équilibreur de charge de réseau sont 168.2.4.5 et 88.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
    
  2. Enregistrez l'adresse IP en créant un sous-domaine DNS. Pour spécifier plusieurs adresses IP, utilisez plusieurs --ip options.

    ibmcloud oc nlb-dns create classic --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP>
    
  3. 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>
    
  4. 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-name dans votre configuration Load Balancer.

  5. 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).

  6. 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 :

Description du format de sous-domaine d'équilibreur de charge de réseau
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 :myclustername.

  • Si le nom du cluster est de 26 caractères ou moins et qu'il existe un cluster avec un nom similaire dans la région, la totalité du nom du cluster est incluse et un tiret avec six caractères aléatoires sont ajoutés :myclustername-ABC123.
  • Si le nom du cluster est de plus de 26 caractères et que ce nom est unique dans la région, seulement les 24 premiers caractères du nom du cluster sont utilisés : myveryverylongclusternam.
  • Si le nom du cluster est de plus de 26 caractères et qu'il existe un cluster avec un nom similaire dans la région, seulement les 17 premiers caractères du nom du cluster sont utilisés et un tiret avec six caractères aléatoires sont ajoutés : myveryverylongclu-ABC123.
<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.

  1. 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
    
  2. 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, HTTPSou TCP. Valeur par défaut : HTTP.
    --path <path>
    Lorsque type est HTTPS : 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 interval avant 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 type a pour valeur TCP, ce paramètre est obligatoire. Lorsque type a pour valeur HTTP ou HTTPS, 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 type est ou HTTP HTTPS: 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 ou HTTP HTTPS. 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
    
  3. 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
    
  4. 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>