Questo documento mostra come eseguire la migrazione dei dischi da un datastore vSphere a un altro datastore vSphere con la Gestione basata su criteri di archiviazione (SPBM).
1.29: Disponibile a livello generale
1.28: Anteprima
1.16: Non disponibile
Puoi eseguire la migrazione dei seguenti tipi di spazio di archiviazione:
Archiviazione per componenti di sistema gestiti da Google Distributed Cloud, tra cui:
Dischi dati (file VMDK) utilizzati dai nodi del piano di controllo dei cluster di amministrazione e dei cluster utente Controlplane V2
Dischi di avvio (file VMDK) utilizzati da tutti i nodi del cluster di amministrazione e del cluster utente
Volumi vSphere rappresentati da PV/PVC nel cluster di amministrazione e utilizzati dai componenti del piano di controllo dei cluster utente kubeception
Archiviazione per i carichi di lavoro di cui esegui il deployment su nodi worker dei cluster utente con PV/PVC di cui è stato eseguito il provisioning dal plug-in di volume vSphere in-tree o dal driver CSI vSphere
Prerequisiti per un cluster di amministrazione
Il cluster di amministrazione deve avere un piano di controllo ad alta disponibilità. Se il cluster di amministrazione ha un piano di controllo non ad alta disponibilità, esegui la migrazione ad alta disponibilità prima di continuare.
Verifica che il cluster di amministrazione abbia un piano di controllo ad alta disponibilità:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes
Sostituisci ADMIN_CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster di amministrazione.
Assicurati che nell'output siano presenti tre nodi del piano di controllo. Ad esempio:
admin-cp-1 Ready control-plane,master ... admin-cp-2 Ready control-plane,master ... admin-cp-3 Ready control-plane,master ...
Prerequisiti per tutti i cluster (amministratore e utente)
La riparazione automatica dei nodi deve essere disabilitata nel cluster. Se la riparazione automatica dei nodi è abilitata, disabilita la riparazione automatica dei nodi.
Il cluster deve utilizzare la gestione basata sui criteri di archiviazione (SPBM). Se il cluster non utilizza SPBM, crea un criterio di archiviazione prima di continuare.
Verifica che il cluster utilizzi SPBM:
kubectl --kubeconfig CLUSTER_KUBECONFIG get onpremadmincluster --namespace kube-system \ -ojson | jq '{datastore: .items[0].spec.vCenter.datastore, storagePolicyName: .items[0].spec.vCenter.storagePolicyName}'
(Solo cluster utente) Verifica che i pool di nodi utilizzino SPBM:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremnodepools --namespace USER_CLUSTER_NAME-gke-onprem-mgmt \ -ojson | jq '.items[] | {name: .metadata.name, datastore: .spec.vsphere.datastore, storagePolicyName: .spec.vsphere.storagePolicyName}'
Sostituisci quanto segue:
CLUSTER_KUBECONFIG: il percorso del file kubeconfig del cluster (amministratore o utente).
ADMIN_CLUSTER_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione
USER_CLUSTER_NAME: il nome del cluster utente
Nell'output, se il campo
datastore
è vuoto e il campostoragePolicyName
non lo è, il cluster utilizza SPBM.Il cluster non deve utilizzare il plug-in di volume vSphere in-tree.
Se il cluster è stato eseguito l'upgrade da una versione precedente di Google Distributed Cloud, potrebbe contenere PV/PVC di cui è stato eseguito il provisioning dal plug-in volume vSphere in-tree. Questo tipo di volume potrebbe essere utilizzato da un nodo del piano di controllo di un cluster utente kubeception o da un carico di lavoro creato su un nodo worker.
Elenco di tutti i PVC e delle rispettive classi di archiviazione:
kubectl --kubeconfig CLUSTER_KUBECONFIG get pvc --all-namespaces \ -ojson | jq '.items[] | {namespace: .metadata.namespace, name: .metadata.name, storageClassName: .spec.storageClassName}'
Elenca tutti gli oggetti StorageClass e vedi quali provisioner stanno utilizzando:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Nell'output, se la colonna
PROVISIONER
èkubernetes.io/vsphere-volume
, le PVC create con questo oggetto StorageClass utilizzano il plug-in del volume in-tree vSphere. Per gli StatefulSet che utilizzano questi PV/PVC, esegui la migrazione al driver CSI vSphere.
Esegui la migrazione dello spazio di archiviazione
Google Distributed Cloud supporta due categorie di migrazione dello spazio di archiviazione:
Storage vMotion per VM, che sposta l'archiviazione delle VM, inclusi i volumi CNS vSphere collegati utilizzati dai pod in esecuzione su un nodo e i VMDK utilizzati da questi volumi CNS delle VM collegati ai nodi
Riposizionamento del volume CNS, che trasferisce volumi vSphere CNS specificati in un datastore compatibile senza eseguire vMotion di archiviazione per le VM
Esegui vMotion di archiviazione per le VM
La migrazione prevede i passaggi che esegui nel tuo ambiente vSphere e i comandi che esegui sulla workstation di amministrazione:
Nel tuo ambiente vSphere, aggiungi i datastore di destinazione ai criteri di archiviazione.
Nel tuo ambiente vSphere, esegui la migrazione delle VM del cluster utilizzando il vecchio datastore al nuovo datastore. Per le istruzioni, consulta Eseguire la migrazione di una macchina virtuale a una nuova risorsa di computing e spazio di archiviazione.
Sulla workstation di amministrazione, verifica che sia stata eseguita correttamente la migrazione delle VM al nuovo datastore.
Recupera gli oggetti macchina nel cluster:
kubectl --kubeconfig CLUSTER_KUBECONFIG get machines --output yaml
Nell'output, in
status.disks
, puoi vedere i dischi collegati alle VM. Ad esempio:status: addresses: – address: 172.16.20.2 type: ExternalIP disks: – bootdisk: true datastore: pf-ds06 filepath: me-xvz2ccv28bf9wdbx-2/me-xvz2ccv28bf9wdbx-2.vmdk uuid: 6000C29d-8edb-e742-babc-9c124013ba54 – datastore: pf-ds06 filepath: anthos/gke-admin-nc4rk/me/ci-bluecwang-head-2-data.vmdk uuid: 6000C29e-cb12-8ffd-1aed-27f0438bb9d9
Verifica che sia stata eseguita la migrazione di tutti i dischi di tutte le macchine nel cluster nel datastore di destinazione.
Sulla workstation di amministrazione, esegui
gkectl diagnose
per verificare che il cluster sia integro.
Chiama le API CNS Relocation per lo spostamento di volumi CNS
Se vuoi spostare solo i volumi CNS di cui è stato eseguito il provisioning dal driver CSI vSphere, puoi seguire le istruzioni in Migrazione dei volumi dei container in vSphere. Questo potrebbe essere più semplice se hai solo volumi CNS nel vecchio datastore.
Aggiorna i criteri relativi allo spazio di archiviazione, se necessario
Nel tuo ambiente vSphere, aggiorna il criterio di archiviazione in modo da escludere i datastore precedenti. In caso contrario, i nuovi volumi e le VM ricreate potrebbero essere assegnati a un datastore precedente.