Lorsque vous créez un cluster Kubernetes Google Distributed Cloud (GDC) isolé, 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 les pools de nœuds d'un cluster existant lorsque ses besoins de calcul évoluent :
Ajouter un pool de nœuds : ajoutez des pools de nœuds à mesure que la demande pour les charges de travail de votre cluster augmente.
Afficher un pool de nœuds : affichez les caractéristiques et l'état de vos pools de nœuds existants.
Redimensionner un pool de nœuds : augmentez ou diminuez manuellement la taille de vos pools de nœuds pour vous adapter aux fluctuations du trafic de charge de travail.
Supprimer un pool de nœuds : supprimez les pools de nœuds si la demande pour les charges de travail de votre cluster diminue ou si vous souhaitez supprimer des types de machines qui ne sont plus adaptés à vos opérations de conteneur.
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 disposer des ressources et des rôles suivants :
Pour afficher et gérer les pools de nœuds dans un cluster Kubernetes partagé, demandez à votre administrateur IAM de l'organisation de vous accorder les rôles suivants :
- Administrateur de cluster d'utilisateur (
user-cluster-admin) - Lecteur de nœuds de cluster d'utilisateur (
user-cluster-node-viewer)
Ces rôles ne sont pas liés à un espace de noms.
- Administrateur de cluster d'utilisateur (
Pour afficher et gérer les pools de nœuds dans un cluster Kubernetes standard, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Administrateur de cluster standard (
standard-cluster-admin). Ce rôle est lié à l'espace de noms de votre projet.Pour exécuter des commandes sur un cluster Kubernetes, assurez-vous de disposer des ressources suivantes :
Recherchez le nom du cluster Kubernetes ou demandez-le à un membre du groupe des administrateurs de la plate-forme.
Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes si vous n'en avez pas.
Utilisez le chemin d'accès kubeconfig du cluster Kubernetes pour remplacer
KUBERNETES_CLUSTER_KUBECONFIGdans ces instructions.
Ajouter un pool de nœuds
Pour ajouter un pool de nœuds à un cluster Kubernetes existant, procédez comme suit :
Console
- Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.
- Cliquez sur le cluster dans la liste des clusters. La page Détails du cluster s'affiche.
- Sélectionnez Pools de nœuds> Ajouter un pool de nœuds.
- Attribuez un nom au pool de nœuds. Vous ne pouvez pas modifier le nom après avoir créé le pool de nœuds.
- Spécifiez le nombre de nœuds de calcul à créer dans le pool de nœuds.
- 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
- Cliquez sur Enregistrer.
API
Ouvrez la spécification de la ressource personnalisée
Clusteravec la CLIkubectlà l'aide de l'éditeur interactif :kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERRemplacez 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 nomsplatform. Pour les clusters standards, utilisez l'espace de noms du projet du cluster.MANAGEMENT_API_SERVER: chemin d'accès du fichier kubeconfig pour le serveur d'API zonal où est hébergé le cluster Kubernetes. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API dans votre zone cible, consultez Se connecter pour en savoir plus.
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 acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEMERemplacez 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.GPU_PARTITION_SCHEME: schéma de partitionnement du GPU, si vous exécutez des charges de travail GPU. Exemple :mixed-2Le GPU n'est pas partitionné si ce champ n'est pas défini. Pour connaître les profils MIG (Multi-Instance GPU) disponibles, consultez Profils MIG compatibles.
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
- Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.
- Cliquez sur le cluster dans la liste des clusters. La page Détails du cluster s'affiche.
- 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 Kubernetes spécifique :
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatusesRemplacez 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 nomsplatform. Pour les clusters standards, utilisez l'espace de noms du 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 des pools de nœuds
Vous pouvez redimensionner manuellement des pools de nœuds dans un cluster Kubernetes en augmentant ou en diminuant la taille du pool. Vous ne pouvez pas sélectionner un nœud spécifique à supprimer lorsque vous réduisez un pool de nœuds.
Pour mettre à l'échelle un pool de nœuds dans un cluster existant, procédez comme suit :
Console
- Dans le tableau de bord, sélectionnez le projet dans lequel se trouve le cluster que vous souhaitez modifier.
- Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.
- Sélectionnez le nom du cluster auquel le pool de nœuds est associé. La page Détails du cluster s'affiche.
- Cliquez sur l'onglet Pools de nœuds.
- Sélectionnez l'icône Modifier edit pour le pool de nœuds que vous souhaitez redimensionner. L'invite Modifier le pool de nœuds s'affiche.
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 besoins de votre charge de travail.
Cliquez sur Enregistrer.
Revenez à l'onglet Pools de nœuds de votre cluster et vérifiez que le pool de nœuds redimensionné présente l'état
Readyet le bon nombre de nœuds. La mise à l'échelle du pool de nœuds selon vos spécifications peut prendre quelques minutes.
API
Ouvrez la spécification de la ressource personnalisée
Clusteravec 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_SERVERRemplacez 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 nomsplatform. Pour les clusters standards, utilisez l'espace de noms du projet du cluster.MANAGEMENT_API_SERVER: chemin d'accès du fichier kubeconfig pour le serveur d'API zonal où est hébergé le cluster Kubernetes. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API dans votre zone cible, consultez Ressources du serveur d'API de gestion zonale.
Mettez à jour le champ
nodeCountdu 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_NODESRemplacez
NUMBER_OF_WORKER_NODESpar le nombre mis à jour de nœuds de calcul à provisionner dans le pool de nœuds.Enregistrez le fichier et quittez l'éditeur.
Vérifiez que la mise à l'échelle de vos nœuds est terminée en consultant 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.workerNodePoolStatusesVérifiez que le nombre
readyNodesreflète le 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 é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
Dans le menu de navigation, sélectionnez Kubernetes Engine > Clusters.
Cliquez sur le cluster qui héberge le pool de nœuds que vous souhaitez supprimer.
Sélectionnez Pools de nœuds.
Cliquez sur delete Supprimer à côté du pool de nœuds à supprimer.
API
Ouvrez la spécification de la ressource personnalisée
Clusteravec 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_SERVERRemplacez 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 nomsplatform. Pour les clusters standards, utilisez l'espace de noms du projet du cluster.MANAGEMENT_API_SERVER: chemin d'accès du fichier kubeconfig pour le serveur d'API zonal où est hébergé le cluster Kubernetes. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API dans votre zone cible, consultez Ressources du serveur d'API de gestion zonale.
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 champsmachineTypeName,nameetnodeCount:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3Veillez à supprimer tous les champs du pool de nœuds que vous supprimez.
Enregistrez le fichier et quittez l'éditeur.