Réinitialiser des nœuds de cluster

Lorsqu'un cluster est en cours d'installation, les binaires et les services systemd sont installés sur les nœuds hébergeant ce cluster, et les services commencent à écouter les ports sur les nœuds.

Toutefois, en cas d'échec de l'installation d'un cluster, tous ces binaires et services doivent être supprimés. En d'autres termes, les nœuds doivent être réinitialisés ou nettoyés pour les préparer à une nouvelle tentative d'installation du cluster. Si les nœuds ne sont pas réinitialisés de cette manière, la prochaine tentative d'installation d'un cluster échouera.

La commande bmctl reset effectue cette opération de nettoyage des nœuds. Vous pouvez exécuter la commande bmctl reset sur un cluster entier ou sur des nœuds spécifiques d'un cluster. Ce document explique comment exécuter la commande dans les deux modes.

Il est important de noter que, lorsque la commande bmctl reset est appliquée à un cluster, ce cluster est supprimé, car la commande nettoie les nœuds de tous les binaires et services du cluster.

Réinitialiser des clusters avec bmctl reset cluster

La réinitialisation d'un cluster entraîne sa suppression. Une fois le cluster supprimé, vous pouvez le réinstaller après avoir effectué les modifications de configuration nécessaires.

Réinitialiser des clusters autogérés

Pour réinitialiser des clusters d'administrateur, hybrides ou autonomes, exécutez la commande suivante :

bmctl reset --cluster CLUSTER_NAME

Dans la commande, remplacez CLUSTER_NAME par le nom du cluster que vous souhaitez réinitialiser.

Une fois la réinitialisation du cluster terminée, vous pouvez créer un nouveau cluster. Pour en savoir plus, consultez la page Présentation de la création de clusters.

Réinitialiser des clusters d'utilisateur

Vous pouvez réinitialiser ou supprimer des clusters d'utilisateur à l'aide de la commande bmctl reset ou de la commande kubectl delete. Dans les deux cas, le cluster est supprimé. nous vous recommandons d'utiliser bmctl reset.

Utiliser bmctl pour réinitialiser/supprimer un cluster d'utilisateur

Exécutez la commande suivante pour réinitialiser/supprimer un cluster d'utilisateur avec bmctl :

bmctl reset --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

Dans la commande, remplacez les entrées suivantes par des informations spécifiques à votre environnement de cluster :

  • CLUSTER_NAME : nom du cluster d'utilisateur que vous réinitialisez.

  • ADMIN_KUBECONFIG_PATH : chemin d'accès au fichier kubeconfig du cluster d'administrateur associé. bmctl permet d'utiliser --kubeconfig comme alias pour l'option --admin-kubeconfig.

Utiliser kubectl pour supprimer un cluster d'utilisateur

Pour supprimer un cluster d'utilisateur à l'aide de kubectl, vous devez d'abord supprimer l'objet du cluster, avant de supprimer son espace de noms. Autrement, les tâches de réinitialisation des machines ne peuvent pas être créées et le processus de suppression peut être bloqué indéfiniment.

Pour supprimer un cluster d'utilisateur à l'aide de kubectl, procédez comme suit :

  1. Exécutez la commande suivante pour supprimer l'objet du cluster :

    kubectl delete cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG_PATH
    

    Dans la commande, remplacez les entrées suivantes par des informations spécifiques à votre environnement de cluster :

    • CLUSTER_NAME : nom du cluster d'utilisateur que vous supprimez.

    • CLUSTER_NAMESPACE : espace de noms du cluster. Par défaut, les espaces de noms des clusters Anthos sur Bare Metal sont le nom du cluster précédé de cluster-. Par exemple, si vous nommez votre cluster test, l'espace de noms porte un nom tel que cluster-test.

    • ADMIN_KUBECONFIG_PATH : chemin d'accès au fichier kubeconfig du cluster d'administrateur associé.

  2. Une fois le cluster supprimé, exécutez la commande suivante pour supprimer l'espace de noms :

    kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
    

Réinitialiser des nœuds de cluster spécifiques

Vous pouvez réinitialiser des nœuds spécifiques d'un cluster si, par exemple, un cluster d'administrateur a été supprimé, mais que les clusters d'utilisateur gérés par ce cluster d'administrateur demeurent. Dans ce cas, les clusters d'utilisateur dans leur ensemble ne peuvent pas être supprimés, car le cluster d'administrateur a été supprimé. Par conséquent, les nœuds des clusters d'utilisateur doivent être réinitialisés individuellement.

Réinitialiser des nœuds à l'aide de la clé JSON du compte de service GCR

Pour réinitialiser des nœuds individuels d'un cluster, exécutez la commande suivante :

bmctl reset nodes --addresses NODE_1_IP_ADDRESS,NODE_2_IP_ADDRESS \
    --ssh-private-key-path SSH_KEY_PATH \
    --gcr-service-account-key SERVICE_ACCOUNT_KEY_PATH \
    --login-user root

Dans la commande, remplacez les entrées suivantes par des informations spécifiques à votre environnement de cluster :

  • NODE_1_IP_ADDRESS , NODE_2_IP_ADDRESS : liste des adresses IP des nœuds à supprimer, séparées par une virgule.

  • SSH_KEY_PATH : chemin d'accès à la clé privée SSH.

  • SERVICE_ACCOUNT_KEY_PATH : chemin d'accès au fichier JSON contenant la clé du compte de service. Cette clé accorde à bmctl l'autorisation d'extraire des images de Google Container Registry (GCR). Pour créer une clé de compte de service, vous pouvez utiliser Cloud Console, gcloud CLI, la méthode serviceAccounts.keys.create() ou l'une des bibliothèques clientes. Pour plus d'informations, consultez la page Créer et gérer les clés de comptes de service. Vous pouvez également créer le fichier de clé de compte de service si vous exécutez la commande create config avec l'option --create-service-accounts. Pour en savoir plus sur cette commande, consultez la section Créer et configurer une configuration de cluster d'administrateur avec bmctl.

Réinitialiser les détails du cluster

Le résultat de la commande bmctl cluster reset ressemble à ceci :

bmctl reset --cluster cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1    Completed: 0    Failed: 0
...
Resetting: 0    Completed: 1    Failed: 0
Flushing logs... OK

Lors de la réinitialisation, bmctl tente d'abord de supprimer l'enregistrement de l'abonnement GKE Hub, puis nettoie les nœuds concernés. Lors de la réinitialisation, les installations de stockage et les données provenant de anthos-system StorageClass sont également supprimées.

Pour tous les nœuds, bmctl exécute kubeadm reset, supprime les interfaces de tunnel utilisées pour la mise en réseau du cluster, puis supprime les répertoires suivants :

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

Pour les nœuds d'équilibreur de charge, bmctl effectue également les actions suivantes :

  • Désactive les services keepalived et haproxy.
  • Supprime les fichiers de configuration pour keepalived et haproxy.

La commande bmctl reset s'attend à ce que le fichier de configuration du cluster se trouve dans le répertoire de travail actuel. Par défaut, le chemin d'accès est semblable à ce qui suit : bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

Si vous avez utilisé l'option --workspace-dir pour spécifier un répertoire différent lors de la création du cluster, vous devez également l'utiliser pour spécifier le répertoire de travail lors de la réinitialisation du cluster.