Gérer les pools de nœuds

Lorsque vous créez un cluster Kubernetes Google Distributed Cloud (GDC) sous air gap, le nombre et le type de nœuds que vous spécifiez créent le premier pool de nœuds du cluster. Vous pouvez effectuer les tâches suivantes sur le pool de nœuds d'un cluster existant à mesure que ses exigences de calcul évoluent :

Pour en savoir plus sur les pools de nœuds dans un cluster, consultez À propos des nœuds.

Ce document s'adresse aux développeurs d'applications du groupe d'opérateurs d'applications et aux administrateurs informatiques du groupe d'administrateurs de plate-forme, qui sont chargés de gérer les clusters Kubernetes au sein de leur organisation. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.

Avant de commencer

Pour effectuer les tâches décrites dans ce document, vous devez demander les autorisations nécessaires et préparer votre environnement.

Demander des rôles IAM

Vous devez disposer de rôles spécifiques pour obtenir les autorisations nécessaires à la gestion des pools de nœuds dans un cluster Kubernetes. Les rôles dont vous avez besoin dépendent du fait que vous travaillez dans un cluster partagé au niveau de l'organisation ou dans un cluster standard au niveau du projet. Pour en savoir plus, consultez Configurations de cluster Kubernetes.

Rôles de cluster partagé

Pour créer, supprimer, modifier ou afficher les pools de nœuds d'un cluster partagé, contactez votre administrateur IAM de l'organisation et demandez le rôle Administrateur de cluster utilisateur (user-cluster-admin). Ce rôle n'est pas lié à un espace de noms.

Rôles de cluster standard

Contactez votre administrateur IAM de projet pour demander les rôles suivants :

  • Administrateur de cluster standard (standard-cluster-admin) : créez, supprimez, modifiez ou affichez les pools de nœuds d'un cluster standard.

  • Développeur de cluster (cluster-developer) : créez, supprimez, modifiez ou affichez un cluster standard. Ce rôle est requis pour afficher les détails du pool de nœuds du cluster à partir de la console GDC.

Ces rôles sont liés à l'espace de noms de votre projet.

Préparer votre environnement

Pour exécuter des commandes sur un cluster Kubernetes à l'aide de l'API, assurez-vous de disposer des ressources suivantes :

  • Recherchez le nom du cluster Kubernetes ou demandez-le à un membre du groupe d'administrateurs de plate-forme.

  • Utilisez le nom du cluster Kubernetes pour remplacer KUBERNETES_CLUSTER_NAME dans ces instructions.

  • Connectez-vous et générez le fichier kubeconfig du serveur d'API de gestion pour le cluster Kubernetes.

  • Utilisez le chemin d'accès kubeconfig du serveur d'API de gestion pour remplacer MANAGEMENT_API_SERVER dans ces instructions.

Ajouter un pool de nœuds

Pour ajouter un pool de nœuds à un cluster Kubernetes existant, procédez comme suit :

Console

  1. Dans le sélecteur de projet, sélectionnez votre projet ou votre organisation.

    Les clusters standards sont au niveau du projet, et les clusters partagés sont au niveau de l'organisation. Sélectionnez le champ d'application approprié pour afficher le type de cluster Kubernetes adapté.

  2. Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.

  3. Cliquez sur le cluster dans la liste des clusters. La page Détails du cluster s'affiche.

  4. Sélectionnez Pools de nœuds > Ajouter un pool de nœuds.

  5. Attribuez un nom au pool de nœuds. Vous ne pourrez plus le modifier après avoir créé le pool de nœuds.

  6. Spécifiez le nombre de nœuds de calcul à créer dans le pool de nœuds.

  7. 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
  8. Cliquez sur Enregistrer.

API

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

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Remplacez les éléments suivants :

    • KUBERNETES_CLUSTER_NAME: nom du cluster.
    • KUBERNETES_CLUSTER_NAMESPACE: espace de noms du cluster. Pour les clusters partagés, utilisez l'espace de noms platform. Pour les clusters standards, utilisez l'espace de noms de projet du cluster.
    • MANAGEMENT_API_SERVER: chemin d'accès kubeconfig du serveur d'API zonal où le cluster Kubernetes est hébergé.
  2. Ajoutez une entrée dans la section nodePools :

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: MACHINE_TYPE
      name: NODE_POOL_NAME
      nodeCount: NUMBER_OF_WORKER_NODES
      taints: TAINTS
      labels: LABELS
      acceleratorOptions:
        gpuPartitionScheme: GPU_PARTITION_SCHEME
    

    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 savoir ce que vous pouvez configurer.
    • 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.
    • GPU_PARTITION_SCHEME: schéma de partitionnement GPU, si vous exécutez des charges de travail GPU. Exemple : mixed-2. Le GPU n'est pas partitionné si ce champ n'est pas défini. Pour connaître les profils GPU multi-instance (MIG) disponibles, consultez Profils MIG compatibles.
  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 Kubernetes, procédez comme suit :

Console

  1. Dans le sélecteur de projet, sélectionnez votre projet ou votre organisation.

    Les clusters standards sont au niveau du projet, et les clusters partagés sont au niveau de l'organisation. Sélectionnez le champ d'application approprié pour afficher le type de cluster Kubernetes adapté.

  2. Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.

  3. Cliquez sur le cluster dans la liste des clusters. La page Détails du cluster s'affiche.

  4. Sélectionnez Pools de nœuds.

La liste des pools de nœuds en cours d'exécution dans le cluster s'affiche. Vous pouvez gérer les pools de nœuds du cluster à partir de cette page.

API

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

    kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        -o json --kubeconfig MANAGEMENT_API_SERVER | \
        jq .status.workerNodePoolStatuses
    

    Remplacez les éléments suivants :

    • KUBERNETES_CLUSTER_NAME: nom du cluster.
    • KUBERNETES_CLUSTER_NAMESPACE: espace de noms du cluster. Pour les clusters partagés, utilisez l'espace de noms platform. Pour les clusters standards, utilisez l'espace de noms de projet du cluster.

    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
      }
    ]
    

Redimensionner les pools de nœuds

Vous pouvez redimensionner manuellement les pools de nœuds dans un cluster Kubernetes en augmentant ou en réduisant la taille du pool. Vous ne pouvez pas sélectionner un nœud spécifique à supprimer lorsque vous réduisez la taille d'un pool de nœuds.

Pour mettre à l'échelle un pool de nœuds dans un cluster existant, procédez comme suit :

Console

  1. Dans le sélecteur de projet, sélectionnez votre projet ou votre organisation.

    Les clusters standards sont au niveau du projet, et les clusters partagés sont au niveau de l'organisation. Sélectionnez le champ d'application approprié pour afficher le type de cluster Kubernetes adapté.

  2. Dans le tableau de bord, sélectionnez le projet dans lequel se trouve le cluster que vous souhaitez modifier.

  3. Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.

  4. Sélectionnez le nom du cluster auquel le pool de nœuds est associé. La page Détails du cluster s'affiche.

  5. Cliquez sur l'onglet Pools de nœuds.

  6. Sélectionnez l'icône Modifier pour le pool de nœuds que vous souhaitez redimensionner. L'invite Modifier le pool de nœuds s'affiche.

  7. Mettez à jour le champ Nombre de nœuds pour refléter le nouveau nombre de nœuds requis dans le pool de nœuds. Vous pouvez augmenter ou diminuer le nombre de nœuds en fonction des exigences de votre charge de travail.

  8. Cliquez sur Enregistrer.

  9. Revenez à l'onglet Pools de nœuds de votre cluster et vérifiez que le pool de nœuds redimensionné est à l'état Ready et qu'il comporte le bon nombre de nœuds. La mise à l'échelle du pool de nœuds selon vos spécifications peut prendre quelques minutes.

    Vérifiez que votre pool de nœuds est prêt à l'aide de la console.

API

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

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Remplacez les éléments suivants :

    • KUBERNETES_CLUSTER_NAME: nom du cluster qui héberge le pool de nœuds.
    • KUBERNETES_CLUSTER_NAMESPACE: espace de noms du cluster. Pour les clusters partagés, utilisez l'espace de noms platform. Pour les clusters standards, utilisez l'espace de noms de projet du cluster.
    • MANAGEMENT_API_SERVER: chemin d'accès kubeconfig du serveur d'API zonal où le cluster Kubernetes est hébergé.
  2. Mettez à jour le champ nodeCount pour le pool de nœuds à redimensionner :

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: NUMBER_OF_WORKER_NODES
    

    Remplacez NUMBER_OF_WORKER_NODES par le nombre mis à jour de nœuds de calcul à provisionner dans le pool de nœuds.

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

  4. Vérifiez que la mise à l'échelle de vos nœuds est terminée en vérifiant la configuration du pool de nœuds :

    kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE -o json \
        --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatuses
    

    Vérifiez que le nombre readyNodes correspond au nombre de nœuds que vous avez défini pour le pool de nœuds. La mise à l'échelle du pool de nœuds selon vos spécifications peut prendre quelques minutes.

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 expulsent et replanifient 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 de disposer d'au moins trois nœuds de calcul avant de supprimer un pool de nœuds afin que votre cluster dispose de suffisamment d'espace de calcul pour fonctionner efficacement.

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

Console

  1. Dans le sélecteur de projet, sélectionnez votre projet ou votre organisation.

    Les clusters standards sont au niveau du projet, et les clusters partagés sont au niveau de l'organisation. Sélectionnez le champ d'application approprié pour afficher le type de cluster Kubernetes adapté.

  2. Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.

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

  4. Sélectionnez Pools de nœuds.

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

API

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

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Remplacez les éléments suivants :

    • KUBERNETES_CLUSTER_NAME: nom du cluster.
    • KUBERNETES_CLUSTER_NAMESPACE: espace de noms du cluster. Pour les clusters partagés, utilisez l'espace de noms platform. Pour les clusters standards, utilisez l'espace de noms de projet du cluster.
    • MANAGEMENT_API_SERVER: chemin d'accès kubeconfig du serveur d'API zonal où le cluster Kubernetes est hébergé.
  2. Supprimez l'entrée du pool de nœuds de la section nodePools. Par exemple, dans l'extrait suivant, vous devez supprimer les champs machineTypeName, name et nodeCount :

    nodePools:
    # Several lines of code are omitted here.
    - 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.

Étape suivante