Gérer les pools de nœuds

Un pool de nœuds est un groupe de nœuds au sein d'un cluster Kubernetes qui possèdent tous la même configuration. Les pools de nœuds utilisent une spécification NodePool. Chaque nœud du pool possède une étiquette de nœud Kubernetes dont la valeur est le nom du pool de nœuds. Par défaut, tous les nouveaux pools de nœuds exécutent la même version de Kubernetes que le plan de contrôle.

Lorsque vous créez un cluster d'utilisateur, le nombre et le type de nœuds que vous spécifiez créent le premier pool de nœuds du cluster. Vous pouvez ajouter à votre cluster d'autres pools de nœuds de tailles et de types différents. Tous les nœuds d'un pool de nœuds donné sont identiques.

Les pools de nœuds personnalisés sont utiles lorsque vous planifiez des pods nécessitant plus de ressources que d'autres, par exemple plus de mémoire ou d'espace disque local. Vous pouvez utiliser des rejets de nœuds si vous avez besoin de mieux contrôler la planification des pods.

Vous pouvez créer et supprimer des pools de nœuds individuellement sans affecter l'ensemble du cluster. Vous ne pouvez pas configurer un seul nœud dans un pool de nœuds. Toute modification de la configuration affecte tous les nœuds du pool de nœuds.

Vous pouvez redimensionner des pools de nœuds dans un cluster en augmentant ou en diminuant la taille du pool. La réduction d'un pool de nœuds est un processus automatisé qui consiste à diminuer la taille du pool. Le système GDC vide et évince automatiquement un nœud arbitraire. Vous ne pouvez pas sélectionner un nœud spécifique à supprimer lorsque vous réduisez la taille d'un pool de nœuds.

Avant de commencer

Pour gérer les pools de nœuds dans un cluster d'utilisateur, vous devez disposer du rôle Administrateur de cluster d'utilisateur (rôle user-cluster-admin).

Ajouter un pool de nœuds

Lorsque vous créez un cluster d'utilisateur à partir de la console GDC, vous pouvez personnaliser le pool de nœuds par défaut et créer des pools de nœuds supplémentaires avant l'initialisation de la création du cluster. Si vous devez ajouter un pool de nœuds à un cluster d'utilisateur existant, procédez comme suit :

Console

  1. Dans le menu de navigation, sélectionnez Clusters.
  2. Cliquez sur le cluster dans la liste des clusters. La page Détails du cluster s'affiche.
  3. Sélectionnez Pools de nœuds > Ajouter un pool de nœuds.
  4. Attribuez un nom au pool de nœuds. Vous ne pouvez pas modifier le nom après avoir créé le pool de nœuds.
  5. Spécifiez le nombre de nœuds de calcul à créer dans le pool de nœuds.
  6. Sélectionnez la classe de machine qui correspond le mieux aux exigences de votre charge de travail. Les classes de machines s'affichent dans les paramètres suivants :
    • Type de machine
    • vCPU
    • Mémoire
  7. Facultatif : Ajoutez des libellés Kubernetes sous forme de paires clé/valeur pour organiser les ressources de votre pool de nœuds.
  8. Cliquez sur Enregistrer.

API

  1. Ouvrez la spécification de la ressource personnalisée Cluster avec la CLI kubectl à l'aide de l'éditeur interactif :

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Remplacez les éléments suivants :

    • USER_CLUSTER_NAME : nom du cluster d'utilisateur.
    • ADMIN_CLUSTER_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur.
  2. Ajoutez une entrée dans la section nodePools :

    nodePools:
    ...
    - machineTypeName: MACHINE_TYPE
      name: NODE_POOL_NAME
      nodeCount: NUMBER_OF_WORKER_NODES
      taints: TAINTS
      labels: LABELS
    

    Remplacez les éléments suivants :

    • MACHINE_TYPE : type de machine pour les nœuds de calcul du pool de nœuds. Consultez les types de machines disponibles pour connaître les configurations possibles.
    • NODE_POOL_NAME : nom du pool de nœuds.
    • NUMBER_OF_WORKER_NODES : nombre de nœuds de calcul à provisionner dans le pool de nœuds.
    • TAINTS : rejets à appliquer aux nœuds de ce pool de nœuds. Ce champ est facultatif.
    • LABELS : libellés à appliquer aux nœuds de ce pool de nœuds. Il contient une liste de paires clé/valeur. Ce champ est facultatif.
  3. Enregistrez le fichier et quittez l'éditeur.

Afficher les pools de nœuds

Pour afficher les pools de nœuds existants dans un cluster d'utilisateur, procédez comme suit :

Console

  1. Dans le menu de navigation, sélectionnez Clusters.
  2. Cliquez sur le cluster dans la liste des clusters. La page Détails du cluster s'affiche.
  3. Sélectionnez Pools de nœuds.

La liste des pools de nœuds exécutés dans le cluster s'affiche. Vous pouvez gérer les pools de nœuds du cluster depuis cette page.

API

  • Affichez les pools de nœuds d'un cluster d'utilisateur spécifique :

    kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \
        jq .status.workerNodePoolStatuses
    

    Le résultat ressemble à ce qui suit :

    [
      {
        "conditions": [
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "NodepoolReady",
            "status": "True",
            "type": "Ready"
          },
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "ReconciliationCompleted",
            "status": "False",
            "type": "Reconciling"
          }
        ],
        "name": "worker-node-pool",
        "readyNodes": 3,
        "readyTimestamp": "2023-08-31T18:59:46Z",
        "reconcilingNodes": 0,
        "stalledNodes": 0,
        "unknownNodes": 0
      }
    ]
    

Supprimer un pool de nœuds

La suppression d'un pool de nœuds supprime aussi bien les nœuds que les routes qui les desservent. Ces nœuds évinceront et replanifieront tous les pods qui s'y exécutent. Si les pods présentent des sélecteurs de nœuds spécifiques, ils peuvent rester dans un état non planifiable si aucun autre nœud du cluster ne répond aux critères spécifiés.

Assurez-vous d'avoir au moins trois nœuds de calcul avant de supprimer un pool de nœuds. Cela permettra à votre cluster de disposer de suffisamment d'espace de calcul pour fonctionner efficacement.

Pour supprimer un pool de nœuds, procédez comme suit :

Console

  1. Dans le menu de navigation, sélectionnez Clusters.

  2. Cliquez sur le cluster qui héberge le pool de nœuds que vous souhaitez supprimer.

  3. Sélectionnez Pools de nœuds.

  4. Cliquez sur Supprimer à côté du pool de nœuds à supprimer.

API

  1. Ouvrez la spécification de la ressource personnalisée Cluster avec la CLI kubectl à l'aide de l'éditeur interactif :

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
          --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Remplacez les éléments suivants :

    • USER_CLUSTER_NAME : nom du cluster d'utilisateur.
    • ADMIN_CLUSTER_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur.
  2. Supprimez l'entrée du pool de nœuds de la section nodePools. Par exemple, dans l'extrait de code suivant, vous devez supprimer les champs machineTypeName, name et nodeCount :

    nodePools:
    ...
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

    Veillez à supprimer tous les champs du pool de nœuds que vous supprimez.

  3. Enregistrez le fichier et quittez l'éditeur.

Types de machines des nœuds de calcul

Lorsque vous créez un cluster d'utilisateur dans l'appliance isolée Google Distributed Cloud (GDC), vous créez des pools de nœuds qui sont responsables de l'exécution de vos charges de travail de conteneurs dans le cluster. Vous provisionnez des nœuds en fonction des exigences de votre charge de travail de conteneur et pouvez les mettre à jour à mesure que vos exigences évoluent.

GDC fournit des types de machines prédéfinis pour vos nœuds de calcul, que vous pouvez sélectionner lorsque vous ajoutez un pool de nœuds.

Types de machines disponibles

GDC définit les types de machines avec certains paramètres pour un nœud de cluster d'utilisateur, y compris le processeur, la mémoire et le GPU. GDC propose différents types de machines pour différents usages. Par exemple, les clusters d'utilisateur utilisent n2-standard-2-gdc pour les charges de travail de conteneurs à usage général. Vous pouvez également trouver des types de machines à mémoire optimisée, comme n2-highcpu-8-gdc. Si vous prévoyez d'exécuter des conteneurs de deep learning, vous devez provisionner des machines GPU, telles que a2-highgpu-1g-gdc.

Vous trouverez ci-dessous la liste de tous les types de machines prédéfinis GDC disponibles pour les nœuds de calcul de cluster utilisateur :

Nom Processeurs virtuels Mémoire Nombre de GPU
n2-standard-2-gdc 2 8G N/A
n2-standard-4-gdc 4 16G N/A
n2-highmem-4-gdc 4 32G N/A
n2-highcpu-8-gdc 8 8G N/A
n2-standard-8-gdc 8 32G N/A
n2-highmem-8-gdc 8 64G N/A
a2-highgpu-1g-gdc 12 85G 1
a2-ultragpu-1g-gdc 12 170G 1