La reimpostazione dei nodi e l'eliminazione dei cluster in Google Distributed Cloud rimuove i file binari residui, i servizi systemd e le porte di ascolto dalle macchine host. La cancellazione di questi nodi prepara l'ambiente per il nuovo deployment o il ritiro.
Durante l'installazione del cluster, i file binari e i servizi systemd vengono installati sui nodi host e i servizi iniziano ad ascoltare sulle porte. Se un'installazione non va a buon fine, devi reimpostare (cancellare) i nodi per rimuovere questi file binari e servizi e prepararli per un nuovo tentativo di installazione del cluster.
Se non reimposti i nodi, i tentativi successivi di installare un cluster su di essi
non andranno a buon fine.
Scegli un metodo di eliminazione
Il metodo che utilizzi per eliminare un cluster dipende da:
- Il tipo di cluster.
- Se vuoi pulire solo nodi specifici e non eliminare l'intero cluster.
- Come è stato creato il cluster.
Google Distributed Cloud offre i seguenti metodi di eliminazione:
La console Google Cloud o Google Cloud CLI:
Utilizza la console o gcloud CLI per eliminare i cluster utente gestiti dall'API GKE On-Prem. Un cluster utente è gestito dall'API GKE On-Prem se si verifica una delle seguenti condizioni:
Il cluster è stato creato nella console Google Cloud o utilizzando gcloud CLI, che configura automaticamente l'API GKE On-Prem per gestire il cluster.
Il cluster è stato creato utilizzando
bmctl, ma è stato configurato per essere gestito dall'API GKE On-Prem.
bmctl:- Utilizza
bmctl reset nodesper reimpostare nodi specifici. Utilizza
bmctl resetper eliminare i seguenti tipi di cluster:- Cluster di amministrazione, ibridi e autonomi (noti come cluster autogestiti). Sono inclusi i cluster di amministrazione gestiti dall'API GKE On-Prem.
- Cluster utente non gestiti dall'API GKE On-Prem.
Se utilizzi
bmctlper reimpostare i nodi o per eliminare un cluster, il comando prevede che il file di configurazione del cluster si trovi nella directory di lavoro corrente. Per impostazione predefinita, il percorso è simile al seguente:bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yamlSe hai utilizzato il flag
--workspace-dirper specificare una directory diversa durante la creazione del cluster, devi utilizzarlo per specificare la directory di lavoro durante il reset del cluster.- Utilizza
kubectl:- Utilizza
kubectl delete clusterper eliminare solo i cluster utente non gestiti dai cluster dell'API GKE On-Prem. Non eseguire il comando su altri tipi di cluster. - Tieni presente che se utilizzi
kubectl delete cluster, devi anche eliminare lo spazio dei nomi in cui si trova il cluster dopo aver eliminato il cluster.
- Utilizza
Dopo aver eliminato un cluster, puoi reinstallarlo dopo aver apportato le modifiche di configurazione necessarie.
Elimina i cluster autogestiti
Per eliminare un cluster di amministrazione, ibrido o autonomo, esegui questo comando:
bmctl reset --cluster CLUSTER_NAME
Nel comando, sostituisci CLUSTER_NAME con il nome del
cluster che vuoi reimpostare.
L'output del comando bmctl cluster reset è simile a questo esempio:
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
Oltre a eliminare il cluster, il comando elimina l'appartenenza del cluster al parco risorse.
Per i cluster di amministrazione gestiti dall'API GKE On-Prem, devi anche eliminare le risorse API in Google Cloud. In caso contrario, il cluster verrà visualizzato nella pagina Cluster GKE nella console Google Cloud . Utilizza il seguente comando per eliminare le risorse dell'API GKE On-Prem per un cluster di amministrazione:
gcloud container bare-metal admin-clusters unenroll CLUSTER_NAME \
--project=FLEET_HOST_PROJECT_ID \
--location=REGION \
--ignore-errors
Sostituisci quanto segue:
FLEET_HOST_PROJECT_ID: l'ID progetto del parco risorse di cui il cluster di amministrazione era membro.REGION: la regione Google Cloud in cui l'API GKE On-Prem archivia i metadati del cluster.
Il flag --ignore-errors garantisce che l'annullamento della registrazione di una risorsa del cluster di amministrazione bare metal venga eseguito correttamente anche se si verificano errori durante l'annullamento della registrazione.
Al termine dell'eliminazione del cluster, puoi crearne uno nuovo. Per maggiori dettagli, consulta Panoramica della creazione dei cluster.
Elimina i cluster utente
Se il cluster utente è gestito dall'API GKE On-Prem, eliminalo utilizzando la console o gcloud CLI. In caso contrario, utilizza bmctl
o kubectl per eliminare il cluster.
bmctl
Puoi utilizzare bmctl per eliminare i cluster utente creati con bmctl o kubectl e che non sono registrati nell'API GKE On-Prem.
Esegui questo comando per eliminare un cluster utente con bmctl:
bmctl reset --cluster USER_CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
Nel comando, sostituisci le seguenti voci con informazioni specifiche per il tuo ambiente:
USER_CLUSTER_NAME: il nome del cluster utente che stai eliminando.ADMIN_KUBECONFIG_PATH: il percorso del filekubeconfigdel cluster di amministrazione associato.bmctlsupporta l'utilizzo di--kubeconfigcome alias per il flag--admin-kubeconfig.
L'output del comando bmctl cluster reset è simile a questo esempio:
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
Puoi utilizzare kubectl per eliminare i cluster utente creati con bmctl o kubectl e che non sono registrati nell'API GKE On-Prem. Per utilizzare kubectl per eliminare un cluster utente, devi prima eliminare l'oggetto cluster, poi il relativo spazio dei nomi. In caso contrario, non è possibile creare i job per reimpostare le macchine
e il processo di eliminazione potrebbe bloccarsi a tempo indeterminato.
Per eliminare un cluster utente con kubectl:
Esegui questo comando per eliminare l'oggetto cluster:
kubectl delete cluster USER_CLUSTER_NAME -n USER_CLUSTER_NAMESPACE \ --kubeconfig ADMIN_KUBECONFIG_PATHNel comando, sostituisci le seguenti voci con informazioni specifiche per il tuo ambiente:
USER_CLUSTER_NAME: il nome del cluster utente che stai eliminando.USER_CLUSTER_NAMESPACE: lo spazio dei nomi del cluster. Per impostazione predefinita, gli spazi dei nomi del cluster per Google Distributed Cloud sono il nome del cluster preceduto dacluster-. Ad esempio, se assegni al cluster il nometest, lo spazio dei nomi avrà un nome simile acluster-test.ADMIN_KUBECONFIG_PATH: il percorso del filekubeconfigdel cluster di amministrazione associato.
Dopo aver eliminato il cluster, esegui questo comando per eliminare lo spazio dei nomi:
kubectl delete namespace USER_CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
Console
Se il cluster utente è gestito dall'API GKE On-Prem, segui questi passaggi per eliminarlo:
Nella console, vai alla pagina Panoramica dei cluster Google Kubernetes Engine.
Seleziona il progetto Google Cloud in cui si trova il cluster utente.
Nell'elenco dei cluster, fai clic sul cluster che vuoi eliminare.
Nell'elenco dei cluster, individua quello che vuoi eliminare. Se il Tipo è esterno, significa che il cluster è stato creato utilizzando
bmctle non è stato registrato nell'API GKE On-Prem. In questo caso, segui i passaggi nella schedabmctlokubectlper eliminare il cluster.Se l'icona nella colonna Stato indica un problema, segui i passaggi nella scheda gcloud CLI per eliminare il cluster. Dovrai aggiungere il flag
--ignore-errorsal comando delete.Fai clic sul nome del cluster che vuoi eliminare.
Nel riquadro Dettagli, nella parte superiore della finestra, fai clic su Elimina.
Quando ti viene chiesto di confermare, inserisci il nome del cluster e fai clic su Rimuovi.
gcloud CLI
Se il cluster utente è gestito dall'API GKE On-Prem, segui questi passaggi per eliminare il cluster su un computer su cui è installata gcloud CLI:
Accedi con il tuo Account Google:
gcloud auth login
Aggiorna i componenti:
gcloud components update
Visualizza un elenco di cluster per assicurarti di specificare il nome del cluster corretto nel comando di eliminazione:
gcloud container bare-metal clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Sostituisci quanto segue:
FLEET_HOST_PROJECT_ID: l'ID del progetto in cui è stato creato il cluster.LOCATION: la località Google Cloud associata al cluster utente.
L'output è simile al seguente:
NAME LOCATION VERSION ADMIN_CLUSTER STATE example-user-cluster-1a us-west1 1.36.200-gke.118 example-admin-cluster-1 RUNNING
Esegui questo comando per eliminare il cluster:
gcloud container bare-metal clusters delete USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --force \ --allow-missing
Sostituisci quanto segue:
USER_CLUSTER_NAME: il nome del cluster utente da eliminare.FLEET_HOST_PROJECT_ID: l'ID del progetto in cui è stato creato il cluster.LOCATION: la località Google Cloud associata al cluster utente.
Il flag
--forceconsente di eliminare un cluster con pool di nodi. Senza il flag--force, devi prima eliminare i node pool e poi il cluster.Il flag
--allow-missingè un flag standard dell'API di Google. Se includi questo flag, il comando restituisce un esito positivo se il cluster non viene trovato.Se il comando restituisce un errore che contiene il testo
failed connecting to the cluster's control plane, significa che ci sono problemi di connettività con il cluster di amministrazione, l'agente Connect o l'ambiente on-premise. Per risolvere i problemi relativi all'agente Connect, consulta Raccolta dei log dell'agente Connect.Se ritieni che il problema di connettività sia temporaneo, ad esempio a causa di problemi di rete, attendi e riprova a eseguire il comando.
Se sai che il cluster di amministrazione è stato eliminato o se le macchine nodo per il cluster di amministrazione o utente sono state arrestate o messe offline, includi il flag
--ignore-errorse riprova a eseguire il comando.Devi includere anche
--ignore-errorsse il cluster è stato eliminato utilizzandobmctlokubectl, che lascia le risorse dell'API GKE On-Prem in Google Cloud. Un sintomo di questo problema è che il cluster viene ancora visualizzato nella pagina Cluster GKE della console in uno stato non integro.
Per informazioni sugli altri flag, consulta il riferimento di gcloud CLI.
Reimposta nodi del cluster specifici
Potresti voler reimpostare nodi specifici di un cluster se, ad esempio, un cluster di amministrazione è stato eliminato, ma i cluster utente gestiti da quel cluster di amministrazione rimangono. In questo caso, i cluster utente nel loro complesso non possono essere eliminati perché il cluster di amministrazione è stato eliminato. Di conseguenza, i nodi dei cluster utente devono essere reimpostati singolarmente.
Per reimpostare i nodi, devi disporre di un account di servizio con accesso in lettura ad Artifact Registry. Il comando bmctl prevede come argomento il file della chiave JSON per questo account di servizio. Per reimpostare i singoli nodi di un cluster, esegui questo comando:
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
Nel comando, sostituisci le seguenti voci con informazioni specifiche per il tuo ambiente:
NODE_1_IP_ADDRESS , NODE_2_IP_ADDRESS: elenco separato da virgole degli indirizzi IP dei nodi che vuoi eliminare.SSH_KEY_PATH: il percorso della chiave privata SSH. Questa è la chiave che verrà utilizzata per stabilire connessioni SSH con i nodi durante il reset.SERVICE_ACCOUNT_KEY_PATH: il percorso del file JSON che contiene la chiave del account di servizio. Questa chiave concede abmctll'autorizzazione per eseguire il pull delle immagini da Artifact Registry. Puoi creare una chiave del service account utilizzando la console o gcloud CLI. Per maggiori dettagli, vedi Creazione e gestione account di servizio account. Un altro modo per creare il file della chiave del account di servizio è eseguire il comandocreate configcon il flag--create-service-accounts. Per i dettagli su questo comando, consulta Crea una configurazione del cluster di amministrazione con bmctl.
Dettagli sull'eliminazione del cluster
Durante l'eliminazione, vengono eliminati la registrazione dell'appartenenza al parco risorse del cluster, i montaggi dello spazio di archiviazione e i dati di anthos-system StorageClass.
Per tutti i nodi, vengono rimosse le interfacce del tunnel utilizzate per il networking del cluster e vengono eliminate le seguenti directory:
/etc/kubernetes/etc/cni/net.d/root/.kube/var/lib/kubelet
Per i nodi del bilanciatore del carico:
- I servizi
keepalivedehaproxyvengono eliminati. - I file di configurazione per
keepalivedehaproxyvengono eliminati.