Quando è in corso l'installazione di un cluster Google Distributed Cloud Virtual for Bare Metal, i servizi binari e systemd vengono installati sui nodi che ospitano il cluster e i servizi iniziano ad ascoltare le porte sui nodi.
Tuttavia, se l'installazione di un cluster non va a buon fine, tutti questi programmi binari e servizi devono essere eliminati. In altre parole, è necessario reimpostare o cancellare i dati dei nodi per prepararli a un nuovo tentativo di installazione del cluster. Se i nodi non vengono reimpostati in questo modo, il prossimo tentativo di installazione di un cluster su di essi non va a buon fine.
Questa pagina descrive come eseguire questa operazione di pulizia di nodi specifici e come eliminare un cluster.
Scegli un metodo di eliminazione
Il metodo da utilizzare per eliminare un cluster dipende da:
- Il tipo di cluster.
- Se vuoi eseguire la pulizia solo di nodi specifici e non eliminare l'intero cluster.
- Modalità di creazione del cluster.
GKE su Bare Metal offre i seguenti metodi di eliminazione:
La console Google Cloud o Google Cloud CLI:
Utilizza la console o l'gcloud CLI per eliminare i cluster utente gestiti dall'API Anthos On-Prem. Un cluster utente è gestito dall'API Anthos On-Prem se una delle seguenti condizioni è vera:
Il cluster è stato creato nella console Google Cloud o utilizzando gcloud CLI, che configura automaticamente l'API Anthos On-Prem per gestire il cluster.
Il cluster è stato creato utilizzando
bmctl
, ma è stato configurato in modo che sia gestito dall'API Anthos On-Prem.
bmctl
:- Utilizza
bmctl reset nodes
per reimpostare nodi specifici. - Utilizza
bmctl reset
per eliminare cluster amministrativi, ibridi e autonomi e cluster utente non gestiti dall'API Anthos On-Prem.
Se utilizzi
bmctl
per reimpostare i nodi o eliminare un cluster, il comando si aspetta che il file di configurazione del cluster si trovi nella directory di lavoro attuale. Per impostazione predefinita, il percorso è simile al seguente:bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml
Se hai utilizzato il flag
--workspace-dir
per specificare una directory diversa durante la creazione del cluster, devi utilizzare il flag per specificare la directory di lavoro durante la reimpostazione del cluster.- Utilizza
kubectl
:- Utilizza
kubectl delete cluster
per eliminare solo i cluster utente non gestiti dai cluster dell'API Anthos On-Prem. Non eseguire il comando su altri tipi di cluster. - Tieni presente che se utilizzi
kubectl delete cluster
, dopo aver eliminato il cluster devi eliminare anche lo spazio dei nomi in cui si trova il cluster.
- Utilizza
Dopo aver eliminato un cluster, puoi reinstallarlo dopo aver apportato le modifiche di configurazione necessarie.
Elimina 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
Al termine dell'eliminazione del cluster, puoi crearne uno nuovo. Per maggiori dettagli, vedi Panoramica della creazione del cluster.
Elimina cluster utente
Se il cluster utente è gestito dall'API Anthos On-Prem, elimina il cluster utilizzando la console o lgcloud CLI.
In caso contrario, usa 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 Anthos 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 filekubeconfig
del cluster di amministrazione associato.bmctl
supporta l'uso di--kubeconfig
come 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 Anthos On-Prem. Per utilizzare kubectl
al fine di eliminare un cluster utente, devi prima eliminare l'oggetto cluster e poi il relativo spazio dei nomi. In caso contrario, i job per reimpostare le macchine non potranno essere creati e il processo di eliminazione potrebbe essere bloccato 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_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.USER_CLUSTER_NAMESPACE
: lo spazio dei nomi per il cluster. Per impostazione predefinita, gli spazi dei nomi del cluster per GKE su Bare Metal sono il nome del cluster preceduto dacluster-
. Ad esempio, se il nome del cluster ètest
, lo spazio dei nomi avrà un nome simile acluster-test
.ADMIN_KUBECONFIG_PATH
: il percorso del filekubeconfig
del cluster di amministrazione associato.
Dopo aver eliminato il cluster, esegui il comando seguente per eliminare lo spazio dei nomi:
kubectl delete namespace USER_CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
Console
Se il cluster utente è gestito dall'API Anthos On-Prem, segui questi passaggi per eliminarlo:
Nella console, vai alla pagina dei cluster GKE Enterprise.
Seleziona il progetto Google Cloud in cui si trova il cluster utente.
Nell'elenco dei cluster, fai clic su quello che vuoi eliminare.
Nel riquadro Dettagli, se il Tipo è Anthos (Utente Bare metal), segui questi passaggi per eliminare il cluster:
Nel riquadro Dettagli, fai clic su Visualizza dettagli.
Nella parte superiore della finestra, fai clic su
Elimina.Quando ti viene chiesto di confermare, fai di nuovo clic su Elimina.
Se il valore Type è external, significa che il cluster è stato creato utilizzando uno strumento a riga di comando e che non è gestito dall'API Anthos On-Prem. In questo caso, utilizza
bmctl
okubectl
per eliminare il cluster.
Interfaccia a riga di comando gcloud
Se il cluster utente è gestito dall'API Anthos 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 componenti:
gcloud components update
Ottieni 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.14.10 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
--force
consente di eliminare un cluster con pool di nodi. Senza il flag--force
, devi prima eliminare i pool di nodi, quindi eliminare il cluster.Il flag
--allow-missing
è un flag standard dell'API di Google. Quando includi questo flag, il comando restituisce successo se il cluster non viene trovato.Se il comando restituisce un errore contenente il testo
failed connecting to the cluster's control plane
, ciò indica problemi di connettività con il cluster di amministrazione, l'agente Connect o l'ambiente on-premise. Per risolvere i problemi con l'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 l'amministratore o il cluster utente sono state arrestate o portate offline, includi il flag
--ignore-errors
e riprova a eseguire il comando.Devi includere
--ignore-errors
anche se il cluster è stato eliminato utilizzandobmctl
okubectl
, lasciando le risorse dell'API Anthos On-Prem in Google Cloud. Un sintomo di ciò è che il cluster viene ancora visualizzato nella pagina dei cluster Anthos nella console Google Cloud in stato non integro.
Per informazioni sugli altri flag, consulta il riferimento per l'interfaccia a riga di comando gcloud.
Reimposta nodi cluster specifici
È possibile reimpostare nodi specifici di un cluster se, ad esempio, è stato eliminato un cluster di amministrazione, ma i cluster utente gestiti da quel cluster di amministrazione rimangono. In questo caso, non è possibile eliminare i cluster utente nel loro complesso perché il cluster di amministrazione è stato eliminato. Di conseguenza, i nodi dei cluster utente devono essere reimpostati singolarmente.
Per reimpostare i nodi, è necessario un account di servizio con accesso in lettura a Google Container Registry (GCR). Il comando bmctl
prevede il file della chiave JSON per questo account di servizio come argomento. Per reimpostare 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 di indirizzi IP dei nodi che vuoi eliminare.SSH_KEY_PATH
: percorso della chiave privata SSH. Questa è la chiave che verrà utilizzata per stabilire le connessioni SSH con i nodi durante il ripristino.SERVICE_ACCOUNT_KEY_PATH
: percorso del file JSON che contiene la chiave dell'account di servizio. Questa chiave concede abmctl
l'autorizzazione per eseguire il pull di immagini da Google Container Registry. Puoi creare una chiave dell'account di servizio utilizzando la console o gcloud CLI. Per maggiori dettagli, consulta Creazione e gestione delle chiavi degli account di servizio. Un altro modo per creare il file della chiave dell'account di servizio consiste nell'eseguire il comandocreate config
con il flag--create-service-accounts
. Per maggiori dettagli su questo comando, vedi Creare e gestire la configurazione del cluster con bmctl.
Dettagli eliminazione cluster
Durante l'eliminazione, la registrazione dell'appartenenza al parco risorse del cluster, i montaggi dello spazio di archiviazione e i dati provenienti da anthos-system StorageClass
vengono eliminati.
Per tutti i nodi, le interfacce del tunnel utilizzate per il networking dei cluster vengono rimosse e le seguenti directory vengono eliminate:
/etc/kubernetes
/etc/cni/net.d
/root/.kube
/var/lib/kubelet
Per i nodi del bilanciatore del carico:
- I servizi
keepalived
ehaproxy
sono stati eliminati. - I file di configurazione di
keepalived
ehaproxy
sono stati eliminati.