Affectation d'hôtes avec affectation automatique de libellés d'hôte

Les hôtes sont automatiquement affectés à des pools de travailleurs au sein de clusters ou de services Satellite d' IBM Cloud, à l'aide d'étiquettes d'hôte permettant de les faire correspondre à la capacité de calcul disponible. Vous pouvez activer ou désactiver l'attribution automatique.

L'affectation automatique de l'hôte n'est pas disponible pour le plan de contrôle d'emplacement Satellite .

Libellés d'hôte

L'affectation automatique des hôtes fait correspondre les étiquettes du pool de travailleurs dans les clusters Satellite aux étiquettes d'hôte et de zone sur les hôtes disponibles.

Gardez à l'esprit les informations suivantes sur les libellés d'hôte utilisés pour l'affectation automatique.

Libellés d'hôte par défaut
Lorsque vous connectez un hôte à un emplacement Satellite, l'hôte obtient automatiquement des libellés pour cpu, os et memory (en octets). Vous ne pouvez pas supprimer ces libellés. Vous pouvez inclure des libellés d'hôte supplémentaires ou mettre à jour ultérieurement les métadonnées d'hôte. Si l'hôte n'inclut pas le libellé os, il est automatiquement supposé être RHEL7.
Les hôtes peuvent avoir plus d'étiquettes qu'il n'y a de pools de travailleurs
Par exemple, un hôte portant les étiquettes d'hôte env cpu, memory, et peut être automatiquement affecté à un pool de travailleurs ne portant que l'étiquette d'hôte cpu. L'affectation automatique de l'hôte correspond aux libellés cpu. L'inverse ne fonctionne pas : si un pool de travailleurs possède plus d'étiquettes qu'un hôte, celui-ci ne peut pas être automatiquement attribué à ce pool de travailleurs.
La correspondance est exacte
Les libellés d'hôte doivent être identiques (=) l'un et l'autre exactement. Même si le libellé d'hôte est un nombre, pas moins de (<), supérieur à (>) ou d'autres opérateurs sont utilisés pour la mise en correspondance.

Exemple de scénario pour l'affectation automatique de l'hôte

Supposons que vous disposiez d'un cluster Satellite avec un pool de noeuds worker default dans la zone us-east-1a avec les libellés d'hôte suivants :

  • cpu=4
  • env=prod
  • os=RHEL7

L'emplacement Satellite inclut des hôtes disponibles (non affectés) avec les libellés d'hôte suivants :

  • Hôte A : cpu=4, memory=32, env=prod, zone=us-east-1b os=rhel
  • Hôte B : cpu=4, memory=32, zone=us-east-1a os=RHEL7
  • Hôte C : cpu=4, memory=64, env=prod os=RHEL7
  • Hôte D : cpu=4, memory=64, env=prod``os=RHCOS ( Red Hat CoreOS )

Si vous redimensionnez le pool de noeuds worker default pour demander trois noeuds worker supplémentaires, seul l'hôte C peut être affecté automatiquement, mais pas l'hôte A ou l'hôte B.

  • L'hôte A répond aux demandes relatives à l'unité centrale de traitement (CPU) et aux étiquettes env=prod, mais ne peut être attribué qu'en us-east-1b. Comme le pool de noeuds worker default se trouve uniquement dans la zone us-east-1a, l'hôte A n'est pas affecté.
  • L'hôte B est conforme aux demandes "cpu" et "zone" mais il n'a pas de libellé env=prod et n'est donc pas affecté.
  • L'hôte C est affecté automatiquement car il possède les libellés d'hôte cpu=4 et env=prod et n'a pas de restriction de zone. Le libellé d'hôte memory=64 n'est pas pris en compte car le pool de noeuds worker ne demande pas de libellé memory.
  • L'hôte D répond aux demandes d'utilisation de l'unité centrale, de la zone et du libellé env=prod , mais ne répond pas à la demande os de RHEL7et n'est donc pas affecté.

Les hôtes doivent être affectés en tant que noeuds worker dans chaque zone du pool de workers par défaut dans votre cluster. Si votre pool de workers par défaut s'étend sur plusieurs zones, assurez-vous de disposer d'hôtes connectés à des libellés correspondants pouvant être affectés dans chaque zone.

Affectation automatique des hôtes

IBM Cloud Satellite attribue automatiquement des hôtes aux pools de travailleurs des clusters qui demandent de la capacité de calcul à l'aide d'étiquettes d'hôte telles que cpu.

Avant de commencer, veillez à créer un cluster Satellite. Si vous créez un cluster dans l'interface de ligne de commande, vous devez spécifier l'option --workers avec le nombre d'hôtes que vous souhaitez affecter automatiquement. Vérifiez ensuite que vous connectez des hôtes à votre emplacement Satellite, mais n'affectez les hôtes à aucune ressource.

  1. Examinez les libellés d'hôte utilisés par les pools de noeuds worker pour demander des capacités de calcul. Vous avez plusieurs options.

    • Création d'un pool de travailleurs dans un cluster Satellite avec les libellés d'hôte que vous souhaitez utiliser pour l'affectation automatique.
    • Examinez les pools de noeuds worker existants pour identifier leurs libellés d'hôte. Notez que vous ne pouvez pas mettre à jour les libellés d'hôte d'un pool de noeuds worker. Vous pouvez consulter la commande Libellés d'hôte en exécutant la commande ibmcloud oc worker-pool get -c <cluster> --worker-pool <worker_pool>.
    • Vérifiez les libellés d'hôte qu'un cluster de services IBM Cloud prêt pour Satellite utilise pour demander des ressources à partir de la console d'instance de service IBM Cloud prête pour Satellite.
  2. Vérifiez les libellés d'hôte que possèdent les hôtes disponibles. N'oubliez pas que les libellés cpu et memory sont affectés automatiquement aux hôtes lorsque vous connectez les hôtes à votre emplacement Satellite.

    1. Procédez à l'extraction du nom de l'emplacement Satellite.
        ibmcloud sat location ls
        ```
    2. Affichez la liste des hôtes disponibles (non affectés) dans votre emplacement et notez les ID des hôtes dont vous souhaitez vérifier les libellés.
    ```sh {: pre}
        ibmcloud sat host ls --location LOCATION_NAME_OR_ID | grep unassigned
        ```
    3. Procédez à l'extraction des détails de chaque hôte que vous souhaitez vérifier et notez les **libellés** figurant dans la sortie.
    ```sh {: pre}
        ibmcloud sat host get --location LOCATION_NAME_OR_ID --host HOST_NAME_OR_ID
        ```
        Exemple de sortie
        ```sh {: screen}
        ...
        Labels      
        app      webserver   
        cpu      4   
        memory   3874564
        os       RHCOS
        ...
        ```
    
  3. Mettez à jour les libellés de votre hôte disponible pour qu'ils correspondent à tous les libellés du pool de travailleurs pour lesquels vous souhaitez que l'hôte soit disponible pour l'affectation automatique. Si vous le souhaitez, vous pouvez définir une zone pour vous assurer que l'hôte n'est affecté automatiquement qu'à cette zone.

    Les libellés cpu, os et memory sur l'hôte sont appliqués automatiquement et ne peuvent pas être modifiés.

    ibmcloud sat host update --location <location_name_or_ID> --host <host_name_or_ID> -hl <key=value> [-hl <key=value>] [--zone <zone1>]
    

Désactivation de l'affectation automatique de l'hôte

Les actions suivantes désactivent l'affectation automatique de l'hôte pour un pool de travailleurs. Vous pouvez ensuite réactiver l'affectation automatique de l'hôte.

Réactivation de l'affectation automatique de l'hôte

Si vous désactivez l'affectation automatique de l'hôte, vous pouvez réactiver l'affectation automatique.

  1. Vérifiez que des hôtes dont les libellés correspondent aux libellés d'hôte du pool de noeuds worker sont disponibles.
  2. Redimensionnez le pool de travailleurs pour définir la taille demandée par zone, rééquilibrer le pool de travailleurs et activer à nouveau l'affectation automatique.

Pour les clusters « Satellite », n'utilisez pas la commande « ibmcloud oc worker-pool rebalance » si vous avez attribué manuellement des nœuds de travail à votre pool de travail. Le rééquilibrage d'un pool comportant des nœuds de travail attribués manuellement entraîne la suppression d'un nombre de nœuds de travail supérieur à celui prévu.