Ajouter ou supprimer des nœuds dans un cluster

Dans un cluster Anthos sur Bare Metal, vous ajoutez ou supprimez des nœuds en modifiant les définitions de pool de nœuds du cluster. Vous pouvez modifier ces définitions à l'aide de la commande kubectl.

Dans les clusters Anthos sur Bare Metal, il existe trois types de pools de nœuds : plan de contrôle, équilibreur de charge et pools de nœuds de calcul. Vous pouvez modifier les nœuds du plan de contrôle et de l'équilibreur de charge à travers les définitions des ressources de cluster associées, mais vous pouvez modifier les définitions des pools de nœuds de calcul directement.

Afficher l'état des nœuds

Vous pouvez afficher l'état des nœuds et de leurs pools de nœuds respectifs à l'aide de la commande kubectl get.

Par exemple, la commande suivante affiche l'état des pools de nœuds dans l'espace de noms du cluster my-cluster :

  kubectl -n my-cluster get nodepools.baremetal.cluster.gke.io
  

Le système renvoie des résultats semblables à ceux-ci :

  NAME                    READY   RECONCILING   STALLED   UNDERMAINTENANCE   UNKNOWN
  my-cluster              3       0             0         0                  0
  my-cluster-lb           2       0             0         0                  0
  np1                     3       0             0         0                  0

Si vous avez besoin d'informations supplémentaires sur le diagnostic de vos clusters, consultez la page Diagnostiquer et réinitialiser des clusters.

Modifier des nœuds

La plupart des modifications de nœuds sont spécifiées dans le fichier de configuration du cluster, lequel est ensuite appliqué au cluster. Nous vous recommandons d'utiliser le fichier de configuration du cluster comme source principale pour mettre à jour le cluster. Il est recommandé de stocker votre fichier de configuration dans un système de contrôle des versions pour pouvoir suivre les modifications à des fins de dépannage. Notez que la commande bmctl update n'est disponible que pour les clusters autonomes. Pour les clusters d'administrateur, d'utilisateur et hybrides, utilisez kubectl apply pour mettre à jour votre cluster avec les modifications apportées à votre pool de nœuds.

Le fichier de configuration des clusters Anthos sur Bare Metal comprend une section d'en-tête avec des informations d'identification. Les entrées d'identifiants et le reste du fichier de configuration respectent la syntaxe YAML, mais les entrées d'identifiants ne sont pas valides pour la ressource de cluster. Supprimez les entrées de chemin d'accès de la clé d'identification, telles que gcrKeyPath et sshPrivateKeyPath, avant d'utiliser kubectl apply. Utilisez bmctl update credentials pour les mises à jour des identifiants.

Vous pouvez également utiliser kubectl edit pour modifier directement la ressource de cluster. Exemple :

  kubectl edit cluster -n CLUSTER_NAMESPACE CLUSTER_NAME

Les sections suivantes décrivent certaines différences importantes pour la mise à jour de types de nœuds spécifiques.

Nœuds de plan de contrôle et d'équilibreur de charge

Les spécifications concernant les pools de nœuds de plan de contrôle et d'équilibreur de charge pour les clusters Anthos sur Bare Metal sont particulières. Ces spécifications déclarent et contrôlent les ressources critiques du cluster. La source canonique de ces ressources correspond à leurs sections respectives dans le fichier de configuration du cluster :

  • spec.controlPlane.nodePoolSpec
  • spec.LoadBalancer.nodePoolSpec

Vous pouvez ajouter ou supprimer des nœuds de plan de contrôle ou d'équilibreur de charge en modifiant le tableau d'adresses sous nodes dans la section correspondante du fichier de configuration du cluster.

Dans une configuration à haute disponibilité, un nombre impair de pools de nœuds du plan de contrôle (au moins trois) est requis pour établir un quorum afin d'être sûr que si un plan de contrôle échoue, d'autres prennent le relais. Si vous disposez temporairement d'un nombre pair de nœuds pendant l'ajout ou la suppression de nœuds à des fins de maintenance ou de remplacement, votre déploiement maintient une haute disponibilité tant que vous avez assez de quorum.

Nœuds de calcul

Vous pouvez ajouter ou supprimer des nœuds de calcul directement à l'aide de la commande kubectl. Les pools de nœuds de calcul doivent comporter au moins un nœud souhaité.

Dans l'exemple suivant, la commande supprime un pool de nœuds nommé np1, où la variable représentant l'espace de noms du cluster est my-cluster :

  kubectl -n my-cluster delete nodepool np1
  

De même, il est possible de redimensionner les pools de nœuds en modifiant le tableau d'adresses spec.nodes.

Notez que lorsque vous supprimez des nœuds d'un cluster, ceux-ci sont d'abord drainés de tous leurs pods. Les nœuds ne seront pas supprimés du cluster si les pods ne peuvent pas être reprogrammés sur d'autres nœuds. La suppression de nœuds ne supprime que le nœud du plan de contrôle. Le contenu du nœud n'est pas réinitialisé.

La commande kubectl edit suivante vous permet de modifier, puis de valider les modifications apportées à l'espace de noms du cluster my-cluster et au pool de nœuds np1 :

  kubectl -n my-cluster edit nodepool np1