Lorsqu'un cluster Google Distributed Cloud 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.
Cette page explique comment effectuer cette opération de nettoyage de nœuds spécifiques et comment supprimer un cluster.
Cette page est destinée aux administrateurs, aux architectes et aux opérateurs qui gèrent le cycle de vie de l'infrastructure technologique sous-jacente. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud, consultez la section Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.
Choisir une méthode de suppression
La méthode utilisée pour supprimer un cluster dépend des éléments suivants :
- Le type de cluster.
- Si vous souhaitez nettoyer uniquement des nœuds spécifiques et non supprimer l'ensemble du cluster.
- Comment le cluster a-t-il été créé ?
Google Distributed Cloud fournit les méthodes de suppression suivantes :
La console Google Cloud ou Google Cloud CLI :
Utilisez la console ou gcloud CLI pour supprimer les clusters utilisateur gérés par l'API GKE On-Prem. Un cluster d'utilisateur est géré par l'API GKE On-Prem si l'une des conditions suivantes est remplie :
Le cluster a été créé dans la console Google Cloud ou à l'aide de gcloud CLI, ce qui configure automatiquement l'API GKE On-Prem pour gérer le cluster.
Le cluster a été créé à l'aide de
bmctl
, mais il a été configuré pour être géré par l'API GKE On-Prem.
bmctl
:- Utilisez
bmctl reset nodes
pour réinitialiser des nœuds spécifiques. Utilisez
bmctl reset
pour supprimer les types de clusters suivants :- Les clusters d'administration, hybrides et autonomes (appelés clusters autogérés). Cela inclut les clusters d'administrateur gérés par l'API GKE On-Prem.
- Clusters d'utilisateurs qui ne sont pas gérés par l'API GKE On-Prem.
Si vous utilisez
bmctl
pour réinitialiser des nœuds ou supprimer un cluster, la commande 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.- Utilisez
kubectl
:- Utilisez
kubectl delete cluster
pour ne supprimer que les clusters d'utilisateurs qui ne sont pas gérés par les clusters de l'API GKE On-Prem. N'exécutez pas la commande sur d'autres types de clusters. - Notez que si vous utilisez
kubectl delete cluster
, vous devez également supprimer l'espace de noms dans lequel se trouve le cluster après l'avoir supprimé.
- Utilisez
Après avoir supprimé un cluster, vous pouvez le réinstaller après avoir effectué les modifications de configuration nécessaires.
Supprimer des clusters autogérés
Pour supprimer un cluster d'administrateur, hybride ou autonome, 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.
Le résultat de la commande bmctl cluster reset
ressemble à ceci :
Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log [2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK [2022-10-25 18:48:18+0000] Loading images... OK [2022-10-25 18:48:18+0000] Waiting for reset jobs to finish... [2022-10-25 18:48:28+0000] Operation reset in progress: 1 Completed: 0 Failed: 0 ... [2022-10-25 18:50:08+0000] Operation reset in progress: 0 Completed: 1 Failed: 0 [2022-10-25 18:50:08+0000] Flushing logs... OK [2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345... [2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345 [2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK
En plus de supprimer le cluster, la commande supprime l'appartenance du cluster du parc.
Pour les clusters administrateur gérés par l'API GKE On-Prem, vous devez également supprimer les ressources API dans Google Cloud. Sinon, le cluster s'affiche sur la page Clusters GKE de la console Google Cloud. Utilisez la commande suivante pour supprimer les ressources de l'API GKE On-Prem pour un cluster administrateur:
gcloud container bare-metal admin-clusters unenroll CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --ignore-errors
Remplacez les éléments suivants :
FLEET_HOST_PROJECT_ID
: ID du projet de la flotte dont le cluster d'administrateur était membre.REGION
: région Google Cloud dans laquelle l'API GKE On-Prem stocke les métadonnées du cluster.
L'option --ignore-errors
garantit que la désinscription d'une ressource de cluster administrateur sur machine nue aboutit, même si des erreurs se produisent lors de la désinscription.
Une fois la suppression du cluster terminée, vous pouvez en créer un autre. Pour en savoir plus, consultez la page Présentation de la création de clusters.
Supprimer des clusters d'utilisateur
Si le cluster utilisateur est géré par l'API GKE On-Prem, supprimez-le à l'aide de la console ou de gcloud CLI. Sinon, utilisez bmctl
ou kubectl
pour supprimer le cluster.
bmctl
Vous pouvez utiliser bmctl
pour supprimer les clusters d'utilisateurs créés avec bmctl
ou kubectl
et qui ne sont pas inscrits dans l'API GKE On-Prem.
Exécutez la commande suivante pour supprimer un cluster d'utilisateur avec bmctl
:
bmctl reset --cluster USER_CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
Dans la commande, remplacez les entrées suivantes par des informations spécifiques à votre environnement de cluster :
USER_CLUSTER_NAME
: nom du cluster d'utilisateur que vous supprimez.ADMIN_KUBECONFIG_PATH
: chemin d'accès au fichierkubeconfig
du cluster d'administrateur associé.bmctl
permet d'utiliser--kubeconfig
comme alias pour l'option--admin-kubeconfig
.
Le résultat de la commande bmctl cluster reset
ressemble à ceci :
Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log [2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK [2022-10-25 18:48:18+0000] Loading images... OK [2022-10-25 18:48:18+0000] Waiting for reset jobs to finish... [2022-10-25 18:48:28+0000] Operation reset in progress: 1 Completed: 0 Failed: 0 ... [2022-10-25 18:50:08+0000] Operation reset in progress: 0 Completed: 1 Failed: 0 [2022-10-25 18:50:08+0000] Flushing logs... OK [2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345... [2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345 [2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK
kubectl
Vous pouvez utiliser kubectl
pour supprimer les clusters d'utilisateurs créés avec bmctl
ou kubectl
et qui ne sont pas inscrits dans l'API GKE On-Prem. 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 :
Exécutez la commande suivante pour supprimer l'objet du cluster :
kubectl delete cluster USER_CLUSTER_NAME -n USER_CLUSTER_NAMESPACE \ --kubeconfig ADMIN_KUBECONFIG_PATH
Dans la commande, remplacez les entrées suivantes par des informations spécifiques à votre environnement de cluster :
USER_CLUSTER_NAME
: nom du cluster d'utilisateur que vous supprimez.USER_CLUSTER_NAMESPACE
: espace de noms du cluster. Par défaut, les espaces de noms des clusters Google Distributed Cloud sont le nom du cluster précédé decluster-
. Par exemple, si vous nommez votre clustertest
, l'espace de noms porte un nom tel quecluster-test
.ADMIN_KUBECONFIG_PATH
: chemin d'accès au fichierkubeconfig
du cluster d'administrateur associé.
Une fois le cluster supprimé, exécutez la commande suivante pour supprimer l'espace de noms :
kubectl delete namespace USER_CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
Console
Si le cluster d'utilisateurs est géré par l'API GKE On-Prem, procédez comme suit pour le supprimer :
Dans la console, accédez à la page Vue d'ensemble des clusters Google Kubernetes Engine.
Sélectionnez le projet Google Cloud dans lequel se trouve le cluster d'utilisateur.
Dans la liste des clusters, cliquez sur le cluster que vous souhaitez modifier.
Dans la liste des clusters, localisez le cluster que vous souhaitez modifier. Si le Type est externe, cela signifie que le cluster a été créé à l'aide de
bmctl
et n'a pas été inscrit dans l'API GKE On-Prem. Dans ce cas, suivez les étapes décrites dans l'ongletbmctl
oukubectl
pour supprimer le cluster.Si l'icône de la colonne État indique un problème, suivez la procédure de l'onglet gcloud CLI pour supprimer le cluster. Vous devrez ajouter l'option
--ignore-errors
à la commande de suppression.Cliquez sur le nom du cluster que vous souhaitez supprimer.
Dans le panneau Détails, en haut de la fenêtre, cliquez sur
Supprimer.Lorsque vous êtes invité à confirmer l'opération, saisissez le nom du cluster, puis cliquez sur Supprimer.
CLI gcloud
Si le cluster d'utilisateurs est géré par l'API GKE On-Prem, procédez comme suit pour le supprimer sur un ordinateur sur lequel gcloud CLI est installé :
Connectez-vous à votre compte Google :
gcloud auth login
Mettez à jour les composants :
gcloud components update
Obtenez la liste des clusters pour vous assurer de spécifier le nom de cluster correct dans la commande de suppression :
gcloud container bare-metal clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Remplacez les éléments suivants :
FLEET_HOST_PROJECT_ID
: ID du projet dans lequel le cluster a été créé.LOCATION
: emplacement Google Cloud associé au cluster d'utilisateurs.
Le résultat ressemble à ce qui suit :
NAME LOCATION VERSION ADMIN_CLUSTER STATE example-user-cluster-1a us-west1 1.30.100-gke.96 example-admin-cluster-1 RUNNING
Exécutez la commande suivante pour supprimer le cluster :
gcloud container bare-metal clusters delete USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --force \ --allow-missing
Remplacez les éléments suivants :
USER_CLUSTER_NAME
: nom du cluster d'utilisateur à supprimer.FLEET_HOST_PROJECT_ID
: ID du projet dans lequel le cluster a été créé.LOCATION
: emplacement Google Cloud associé au cluster d'utilisateurs.
L'option
--force
vous permet de supprimer un cluster qui comporte des pools de nœuds. Sans l'option--force
, vous devez d'abord supprimer les pools de nœuds, puis le cluster.L'option
--allow-missing
est une option d'API Google standard. Lorsque vous incluez cette option, la commande renvoie un résultat positif si le cluster n'est pas trouvé.Si la commande renvoie une erreur contenant le texte
failed connecting to the cluster's control plane
, cela indique des problèmes de connectivité avec le cluster d'administration, l'agent Connect ou l'environnement sur site. Pour résoudre les problèmes liés à l'agent Connect, consultez la section Collecter les journaux de l'agent Connect.Si vous pensez que le problème de connectivité est temporaire, par exemple en raison de problèmes de réseau, attendez et réessayez la commande.
Si vous savez que le cluster d'administrateur a été supprimé, ou si les machines de nœud du cluster d'administrateur ou d'utilisateur ont été arrêtées ou mises hors connexion, incluez l'option
--ignore-errors
et réessayez la commande.Vous devez également inclure
--ignore-errors
si le cluster a été supprimé à l'aide debmctl
ou dekubectl
, ce qui laisse les ressources de l'API GKE On-Prem dans Google Cloud. Un des symptômes de ce problème est que le cluster reste affiché sur la page Clusters GKE de la console dans un état non opérationnel.
Pour en savoir plus sur les autres options, consultez la documentation de référence de gcloud CLI.
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.
Pour réinitialiser des nœuds, vous avez besoin d'un compte de service doté d'un accès en lecture à Google Container Registry (GCR). La commande bmctl
attend le fichier de clé JSON pour ce compte de service en tant qu'argument. 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. Il s'agit de la clé qui sera utilisée pour établir des connexions SSH avec les nœuds lors de la réinitialisation.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. Vous pouvez créer une clé de compte de service à l'aide de la console ou de gcloud CLI. 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 commandecreate 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.
Détails de la suppression du cluster
Lors de la suppression, l'enregistrement de l'adhésion à la flotte du cluster, les points de montage de stockage et les données de anthos-system StorageClass
sont supprimés.
Pour tous les nœuds, les interfaces de tunnel utilisées pour la mise en réseau des clusters sont supprimées, ainsi que les répertoires suivants :
/etc/kubernetes
/etc/cni/net.d
/root/.kube
/var/lib/kubelet
Pour les nœuds d'équilibrage de charge :
- Les services
keepalived
ethaproxy
sont supprimés. - Les fichiers de configuration de
keepalived
ethaproxy
sont supprimés.