Lorsque vous créez un cluster d'utilisateur, vous devez configurer au moins un pool de nœuds, qui est un groupe de nœuds partageant tous la même configuration. Une fois le cluster créé, vous pouvez ajouter des pools de nœuds, en mettre à jour les paramètres et les supprimer.
La façon dont vous créez, mettez à jour et supprimez des pools de nœuds varie selon que le cluster est géré par l'API Anthos On-Prem ou non. Un cluster d'utilisateur est géré par l'API Anthos On-Prem si l'une des conditions suivantes est remplie :
Le cluster a été créé dans la console Google Cloud, qui configure automatiquement l'API Anthos On-Prem pour gérer le cluster.
La commande
gkectl enroll cluster
a été exécutée sur un cluster d'utilisateur, avec pour effet de configurer le cluster pour qu'il soit géré par l'API Anthos On-Prem.
Si l'API Anthos On-Prem gère un cluster d'utilisateur, vous pouvez utiliser la console Google Cloud pour gérer les pools de nœuds. Si le cluster d'utilisateur n'est pas géré par l'API Anthos On-Prem, utilisez gkectl
sur la ligne de commande de votre poste de travail administrateur pour gérer les pools de nœuds.
Ajouter un pool de nœuds
Si vous avez créé le cluster dans la console Google Cloud, vous pouvez utiliser la console Cloud pour ajouter un pool de nœuds. Cependant, vous devez utiliser la ligne de commande pour configurer les paramètres de pool de nœuds suivants :
- Windows pour le type d'image de l'OS
- Datastore vSphere
Tags vSphere Si vous souhaitez associer des tags à toutes les VM d'un pool de nœuds, votre compte utilisateur vCenter doit disposer des droits d'ajout de tags vSphere suivants :
- "vSphere Tagging.Assign" ou "Unassign vSphere Tag"
- "vSphere Tagging.Assign" ou "Unassign vSphere Tag on Object" (vSphere 7)
Avant d'ajouter un autre pool de nœuds, vérifiez qu'il y a suffisamment d'adresses IP disponibles sur le cluster.
Console
Dans la console Google Cloud, accédez à la page Clusters d'Anthos.
Sélectionnez le projet Google Cloud dans lequel se trouve le cluster d'utilisateur.
Dans la liste des clusters, cliquez sur le nom du cluster puis sur Afficher les détails dans le panneau Détails.
Cliquez sur
Ajouter un pool de nœuds.Configurez le pool de nœuds :
- Saisissez le nom du pool de nœuds.
- Saisissez le nombre de processeurs virtuels pour chaque nœud du pool (au moins quatre par nœud de calcul de cluster d'utilisateur).
- Saisissez la taille de la mémoire en mébioctets (Mio) pour chaque nœud du pool (8192 Mio au minimum par nœud de nœud de calcul de cluster d'utilisateur, doit être un multiple de 4).
- Dans le champ Nœuds, saisissez le nombre de nœuds du pool (minimum 3).
Sélectionnez le type d'image d'OS : Ubuntu Containerd, Ubuntu ou COS.
Saisissez la taille du disque de démarrage en gibioctets (Gio) (la valeur par défaut est 40 Gio).
Dans la section Métadonnées du pool de nœuds (facultatif), si vous souhaitez ajouter des libellés et des rejets Kubernetes, procédez comme suit :
- Cliquez sur + Ajouter des libellés Kubernetes. Saisissez la clé et la valeur du libellé. Répétez l'opération autant de fois que nécessaire.
- Cliquez sur + Ajouter un rejet. Saisissez la clé, la valeur et l'effet pour le rejet. Répétez l'opération autant de fois que nécessaire.
Cliquez sur Créer.
La console Google Cloud affiche État du cluster : modifications en cours. Cliquez sur Afficher les détails pour afficher la Condition d'état de la ressource et les Messages d'état.
Ligne de commande
Dans votre fichier de configuration de cluster d'utilisateur, remplissez la section
nodePools
.Vous devez spécifier les champs suivants :
nodePools.[i].name
nodePools[i].cpus
nodePools.[i].memoryMB
nodePools.[i].replicas
Les champs suivants sont facultatifs. Si vous n'incluez pas
nodePools[i].bootDiskSizeGB
ounodePools[i].osImageType
, les valeurs par défaut sont utilisées.nodePools[i].labels
nodePools[i].taints
nodePools[i].bootDiskSizeGB
nodePools[i].osImageType
nodePools[i].vsphere.datastore
nodePools[i].vsphere.tags
Exécutez la commande suivante :
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Remplacez les éléments suivants :
[ADMIN_CLUSTER_KUBECONFIG]
par le chemin d'accès au fichier kubeconfig du cluster d'administrateur.[USER_CLUSTER_CONFIG]
par le chemin d'accès au fichier de configuration du cluster d'utilisateur.
Exemple de configuration
Il y a quatre pools de nœuds dans l'exemple de configuration suivant, avec des attributs différents pour chacun :
pool-1
: seuls les attributs minimaux requis sont spécifiés.pool-2
: inclutvsphere.datastore
etvsphere.tags
.pool-3
: incluttaints
etlabels
.pool-4
: inclutosImageType
etbootDiskSizeGB
.
nodePools:
- name: pool-1
cpus: 4
memoryMB: 8192
replicas: 5
- name: pool-2
cpus: 8
memoryMB: 16384
replicas: 3
vsphere:
datastore: my_datastore
tags:
- category: "purpose"
name: "testing"
- name: pool-3
cpus: 4
memoryMB: 8192
replicas: 5
taints:
- key: "example-key"
effect: NoSchedule
labels:
environment: production
app: nginx
- name: pool-4
cpus: 4
memoryMB: 8192
replicas: 5
osImageType: cos
bootDiskSizeGB: 40
Mettre à jour un pool de nœuds
Vous pouvez utiliser la ligne de commande pour mettre à jour tous les champs de la section nodePools
du fichier de configuration de votre cluster d'utilisateur. Actuellement, les seuls champs de pool de nœuds que vous pouvez mettre à jour à l'aide de la console Google Cloud sont les suivants :
- Nombre d'instances dupliquées
- Memory
- Nombre de processeurs virtuels
Lorsque vous augmentez le nombre d'instances dupliquées, les clusters Anthos sur VMware augmentent le nombre de nœuds requis pour le cluster utilisateur. Lorsque vous réduisez le nombre d'instances dupliquées, les nœuds sont supprimés. La modification du nombre d'instances dupliquées d'un pool de nœuds n'interrompt pas les charges de travail. Assurez-vous que vos adresses IP sont disponibles si vous augmentez le nombre d'instances dupliquées.
Le fait de mettre à jour un autre champ de pool de nœuds a pour effet de déclencher une mise à jour progressive sur le cluster. Dans une mise à jour progressive, les clusters Anthos sur VMware créent un nœud pour ensuite en supprimer un ancien. Ce processus est répété jusqu'à ce que tous les anciens nœuds soient remplacés par de nouveaux nœuds. Ce processus n'entraîne pas de temps d'arrêt, mais le cluster doit disposer d'une adresse IP supplémentaire à utiliser pendant la mise à jour.
Supposons qu'un pool de nœuds ait N nœuds à la fin d'une mise à jour. Vous devez alors disposer d'au moins N + 1 adresse IP pour les nœuds de ce pool. Cela signifie que si vous redimensionnez un cluster en ajoutant des nœuds à un ou plusieurs pools, vous devez disposer d'au moins une adresse IP de plus que le nombre total de nœuds qui se trouveront dans tous les pools de nœuds du cluster à la fin du redimensionnement. Pour en savoir plus, consultez la section Vérifier que suffisamment d'adresses IP sont disponibles.
Pour mettre à jour un pool de nœuds sur un cluster d'utilisateur :
Console
Dans la console Google Cloud, accédez à la page Clusters d'Anthos.
Sélectionnez le projet Google Cloud dans lequel se trouve le cluster d'utilisateur.
Dans la liste des clusters, cliquez sur le nom du cluster puis sur Afficher les détails dans le panneau Détails.
Cliquez sur l'onglet Nœuds.
Cliquez sur le nom du pool de nœuds que vous souhaitez modifier.
Cliquez sur
Modifier à côté du champ que vous souhaitez modifier, puis sur OK.Cliquez sur
pour revenir à la page précédente.La console Google Cloud affiche État du cluster : modifications en cours. Cliquez sur Afficher les détails pour afficher la Condition d'état de la ressource et les Messages d'état.
Ligne de commande
Modifiez les valeurs des champs que vous souhaitez modifier dans la section
nodePools
du fichier de configuration du cluster d'utilisateur.Mettez à jour le cluster :
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Remplacez les éléments suivants :
[ADMIN_CLUSTER_KUBECONFIG]
par le chemin d'accès au fichier kubeconfig du cluster d'administrateur.[USER_CLUSTER_CONFIG]
par le chemin d'accès au fichier de configuration du cluster d'utilisateur.
Mettre à jour le osImageType
utilisé par un pool de nœuds
Pour mettre à jour un pool de nœuds afin d'utiliser un autre osImageType
, vous devez utiliser la ligne de commande. Pour modifier le osImageType
utilisé par un pool de nœuds, mettez à jour le fichier de configuration du pool de nœuds comme indiqué dans l'exemple suivant, puis exécutez gkectl update cluster
.
nodePools: - name: np-1 cpus: 4 memoryMB: 8192 replicas: 3 osImageType: ubuntu_containerd
Vérifier vos modifications
Pour vérifier que vos pools de nœuds ont été créés ou mis à jour comme prévu, inspectez les nœuds de cluster :
Console
Dans la console Google Cloud, accédez à la page Clusters d'Anthos.
Sélectionnez le projet Google Cloud dans lequel se trouve le cluster d'utilisateur.
Dans la liste des clusters, cliquez sur le nom du cluster puis sur Afficher les détails dans le panneau Détails.
Cliquez sur l'onglet Nœuds.
Cliquez sur le nom du pool de nœuds que vous souhaitez afficher.
Ligne de commande
Exécutez la commande suivante :
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes -o wide
Si vous devez annuler vos modifications, modifiez le fichier de configuration du cluster et exécutez la commande gkectl update cluster
.
Supprimer un pool de nœuds
Bien que vous puissiez supprimer des pools de nœuds, votre cluster d'utilisateur doit disposer d'au moins un pool de nœuds. La suppression d'un pool de nœuds entraîne la suppression immédiate des nœuds de ce pool, que ceux-ci exécutent ou non des charges de travail.
Pour supprimer un pool de nœuds d'un cluster d'utilisateur, procédez comme suit :
Console
Assurez-vous qu'aucune charge de travail n'est en cours d'exécution sur les nœuds concernés.
Dans la console Google Cloud, accédez à la page Clusters d'Anthos.
Sélectionnez le projet Google Cloud dans lequel se trouve le cluster d'utilisateur.
Dans la liste des clusters, cliquez sur le nom du cluster puis sur Afficher les détails dans le panneau Détails.
Cliquez sur l'onglet Nœuds.
Cliquez sur le nom du pool de nœuds que vous souhaitez supprimer.
Cliquez sur
Supprimer.Cliquez sur
pour revenir à la page précédente.La console Google Cloud affiche État du cluster : modifications en cours. Cliquez sur Afficher les détails pour afficher la Condition d'état de la ressource et les Messages d'état.
Ligne de commande
Assurez-vous qu'aucune charge de travail n'est en cours d'exécution sur les nœuds concernés.
Supprimez sa définition de la section
nodePools
du fichier de configuration du cluster d'utilisateur.Mettez à jour le cluster :
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Remplacez les éléments suivants :
[ADMIN_CLUSTER_KUBECONFIG]
par le chemin d'accès au fichier kubeconfig du cluster d'administrateur.[USER_CLUSTER_CONFIG]
par le chemin d'accès au fichier de configuration du cluster d'utilisateur.
Dépannage
En général, la commande
gkectl update cluster
fournit des détails en cas d'échec. Si la commande aboutit et que vous ne voyez pas les nœuds, suivez le guide Diagnostiquer les problèmes de cluster pour résoudre le problème.Il est possible que les ressources du cluster soient insuffisantes. Par exemple, il peut arriver qu'il n'y ait plus d'adresse IP disponible lors de la création ou de la mise à jour du pool de nœuds. Consultez la page Redimensionner un cluster d'utilisateur pour savoir comment vérifier que des adresses IP sont disponibles.
Vous pouvez également consulter le guide général de dépannage.
Symptôme : Plus rien ne se passe après le message
Creating node MachineDeployment(s) in user cluster…
.La création ou la mise à jour des pools de nœuds dans votre cluster d'utilisateur peut prendre un certain temps. Cependant, si le temps d'attente est extrêmement long et que vous soupçonnez un échec, vous pouvez exécuter les commandes suivantes :
- Exécutez la commande
kubectl get nodes
pour connaître l'état des nœuds. - Pour tous les nœuds qui ne sont pas "Ready" (prêts), exécutez la commande
kubectl describe node NODE_NAME
pour obtenir plus de détails.
- Exécutez la commande