Quando un cluster è in fase di installazione, i programmi binari e i servizi di sistema vengono installati sui nodi che ospitano il cluster e iniziano a sentire le porte sui nodi.
Tuttavia, se l'installazione di un cluster non riesce, tutti i programmi binari e i servizi dovranno essere eliminati. In altre parole, è necessario ripristinare o cancellare i dati dei nodi per ritentare l'installazione del cluster. Se i nodi non vengono reimpostati in questo modo, il tentativo successivo di installarvi un cluster non riesce.
Il comando bmctl reset
esegue questa operazione di pulizia dei nodi.
Puoi eseguire il comando bmctl reset
su un intero cluster o su nodi specifici di un cluster e questo documento spiega come eseguire il comando in entrambe le modalità.
È importante notare che quando il comando bmctl reset
viene applicato a un cluster, questo viene eliminato perché il comando cancella i nodi da tutti i programmi binari e i servizi.
Reimposta i cluster con bmctl reset cluster
Il ripristino di un cluster ne causa l'eliminazione. Una volta eliminato il cluster, puoi reinstallarlo dopo aver apportato eventuali modifiche alla configurazione necessarie.
Reimposta i cluster autogestiti
Per reimpostare i cluster di amministrazione, ibridi o autonomi, esegui questo comando:
bmctl reset --cluster CLUSTER_NAME
Nel comando, sostituisci CLUSTER_NAME
con il nome del cluster che vuoi reimpostare.
Al termine del ripristino del cluster potrai creare un nuovo cluster. Per i dettagli, consulta la panoramica della creazione del cluster.
Reimposta cluster utente
Puoi reimpostare o eliminare i cluster utente con il comando bmctl reset
o con il comando kubectl delete
. In entrambi i casi, il cluster viene eliminato. Ti consigliamo
di utilizzare bmctl reset
.
Utilizzo di bmctl
per reimpostare/eliminare un cluster utente
Esegui questo comando per reimpostare/eliminare un cluster utente con bmctl
:
bmctl reset --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
Nel comando, sostituisci le voci seguenti con informazioni specifiche per l'ambiente:
CLUSTER_NAME
: il nome del cluster utente che stai reimpostando.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
.
Utilizzo di kubectl
per eliminare un cluster utente
Per utilizzare kubectl
per eliminare un cluster utente, devi prima eliminare l'oggetto cluster e poi lo spazio dei nomi. In caso contrario, non è possibile creare i job di reimpostazione delle macchine e il processo di eliminazione potrebbe essere bloccato a tempo indeterminato.
Per eliminare un cluster utente con un kubectl
:
Esegui questo comando per eliminare l'oggetto del cluster:
kubectl delete cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \ --kubeconfig ADMIN_KUBECONFIG_PATH
Nel comando, sostituisci le voci seguenti con informazioni specifiche per l'ambiente:
CLUSTER_NAME
: il nome del cluster utente che stai eliminando.CLUSTER_NAMESPACE
: lo spazio dei nomi per il cluster. Per impostazione predefinita, gli spazi dei nomi dei cluster per Anthos clusters on bare metal sono i nomi dei cluster preceduti dacluster-
. Ad esempio, se assegni al tuo cluster il nometest
, lo spazio dei nomi ha un nome simile acluster-test
.ADMIN_KUBECONFIG_PATH
: il percorso del filekubeconfig
del cluster di amministrazione associato.
Dopo aver eliminato correttamente il cluster, esegui il comando seguente per eliminare lo spazio dei nomi:
kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
Reimposta nodi cluster specifici
Ti consigliamo di reimpostare nodi specifici di un cluster, ad esempio, se un cluster di amministrazione è stato eliminato, ma i cluster utente gestiti dal cluster di amministrazione rimangono invariati. In questo caso, non è possibile eliminare i cluster utente nel loro insieme perché il cluster di amministrazione è stato eliminato. Di conseguenza, i nodi dei cluster utente devono essere ripristinati singolarmente.
Reimposta i nodi utilizzando la chiave JSON dell'account di servizio GCR
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 voci seguenti con informazioni specifiche per l'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 alla chiave privata SSH.SERVICE_ACCOUNT_KEY_PATH
: percorso al file JSON contenente la chiave dell'account di servizio. Questa chiave concede abmctl
l'autorizzazione per eseguire il pull delle immagini da Google Container Registry (GCR). Puoi creare una chiave dell'account di servizio utilizzando la console Google Cloud, l'gcloud CLI, il metodoserviceAccounts.keys.create()
o una delle librerie client. Per maggiori dettagli, consulta Creazione e gestione delle chiavi degli account di servizio. Un altro modo per creare un file di chiave dell'account di servizio è eseguire il comandocreate config
con il flag--create-service-accounts
. Per maggiori dettagli sul comando, vedi Creare e gestire la configurazione del cluster con bmctl.
Reimposta i dettagli del cluster
L'output del comando bmctl cluster reset
è simile a questo esempio:
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
Durante l'operazione di reimpostazione, bmctl
tenta prima di eliminare la registrazione dell'appartenenza all'hub GKE, quindi esegue la pulizia dei nodi interessati. Durante il ripristino, vengono eliminati anche i supporti di archiviazione e i dati di anthos-system StorageClass
.
Per tutti i nodi, bmctl
esegue kubeadm reset
, rimuove le interfacce dei tunnel utilizzate per il networking del cluster ed elimina le seguenti directory:
/etc/kubernetes
/etc/cni/net.d
/root/.kube
/var/lib/kubelet
Per i nodi del bilanciatore del carico, bmctl
esegue anche le seguenti azioni:
- Consente di disattivare i servizi
keepalived
ehaproxy
. - Elimina i file di configurazione per
keepalived
ehaproxy
.
Il comando bmctl reset
prevede 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 utilizzarlo per specificare la directory di lavoro durante il ripristino del cluster.