Questo argomento spiega come eseguire il backup e il ripristino dei carichi di lavoro e dei volumi di storage dinamici ospitati nei cluster del carico di lavoro Tanzu Kubernetes Grid (TKG) per TKG con un cluster di gestione autonomo.
Per eseguire il backup e il ripristino dell'infrastruttura del cluster, del cluster di gestione autonomo e degli oggetti del cluster del carico di lavoro, vedere Backup e ripristino dell'infrastruttura di cluster di gestione e del carico di lavoro.
Per eseguire il backup e il ripristino dei cluster vSphere with Tanzu, inclusi i cluster supervisore e i cluster del carico di lavoro che creano, vedere Backup e ripristino di vSphere with Tanzu nella documentazione di VMware vSphere 8.0.
È possibile utilizzare Velero, uno strumento open source standard della community, per eseguire il backup e il ripristino dell'infrastruttura e dei carichi di lavoro del cluster di gestione autonoma TKG.
Velero supporta una serie di provider di storage per l'archiviazione dei suoi backup. Velero supporta anche:
Una sottoscrizione di Tanzu Kubernetes Grid include il supporto per la distribuzione di Velero testata da VMware e compatibile disponibile nella pagina di download di Tanzu Kubernetes Grid.
Per eseguire il backup e il ripristino dei cluster TKG, è necessario:
Dopo aver completato i prerequisiti precedenti, è possibile utilizzare Velero anche per eseguire la migrazione dei carichi di lavoro tra cluster. Per istruzioni, vedere Migrazione del cluster e Filtro delle risorse nella documentazione di Velero.
AttenzioneSe è già stata installata la CLI di Velero v1.9.x o versioni precedenti distribuita con le versioni precedenti di TKG, è necessario eseguire l'aggiornamento a v1.10.3. Le versioni precedenti di Velero non funzionano con le CRD utilizzate in v1.10 e versioni successive. Per informazioni, vedere Aggiornamento di Velero di seguito.
Per installare la CLI di Velero v1.10.3, eseguire i passaggi seguenti:
.gz
della CLI di Velero per il sistema operativo della workstation. Il nome del file inizia con velero-linux-
, velero-mac-
o velero-windows64-
.Utilizzare il comando gunzip
o lo strumento di estrazione desiderato per decomprimere il file binario:
gzip -d <RELEASE-TARBALL-NAME>.gz
Rinominare il file binario della CLI per la piattaforma con velero
, assicurarsi che sia eseguibile e aggiungerlo in PATH
.
/usr/local/bin
e rinominarlo con velero
.chmod +x /usr/local/bin/velero
Program Files\velero
e copiare il file binario in tale cartella.velero.exe
.velero
, selezionare Proprietà > Sicurezza e assicurarsi che l'account utente disponga dell'autorizzazione Controllo completo.env
.Path
sotto Variabili di sistema e fare clic su Modifica.velero
.Velero v1.10.3 utilizza CRD diversi per v1.9.x. Inoltre, Velero v1.10 ha adottato Kopia con Restic come programma di caricamento, che ha portato a diverse modifiche nella denominazione dei componenti e dei comandi e nel modo in cui Velero funziona. Per ulteriori informazioni sulle modifiche importanti tra v1.9.x e v1.10, vedere Modifiche importanti nel registro delle modifiche di Velero v1.10. Se è stato installato Velero v1.9.x con una versione precedente di TKG, è necessario aggiornare Velero.
Aggiornare le definizioni CRD con il file binario di Velero v1.10.
velero install --crds-only --dry-run -o yaml | kubectl apply -f -
Aggiornare la distribuzione di Velero e la configurazione dei set di daemon in modo che corrisponda alla ridenominazione del componente avvenuta in Velero v1.10.
Nel comando seguente, uploader_type
può essere restic
o kopia
.
kubectl get deploy -n velero -ojson \
| sed "s#\"image\"\: \"velero\/velero\:v[0-9]*.[0-9]*.[0-9]\"#\"image\"\: \"velero\/velero\:v1.10.0\"#g" \
| sed "s#\"server\",#\"server\",\"--uploader-type=$uploader_type\",#g" \
| sed "s#default-volumes-to-restic#default-volumes-to-fs-backup#g" \
| sed "s#default-restic-prune-frequency#default-repo-maintain-frequency#g" \
| sed "s#restic-timeout#fs-backup-timeout#g" \
| kubectl apply -f -
(Facoltativo) Se si utilizza il set di daemon restic
, rinominare i componenti corrispondenti.
echo $(kubectl get ds -n velero restic -ojson) \
| sed "s#\"image\"\: \"velero\/velero\:v[0-9]*.[0-9]*.[0-9]\"#\"image\"\: \"velero\/velero\:v1.10.0\"#g" \
| sed "s#\"name\"\: \"restic\"#\"name\"\: \"node-agent\"#g" \
| sed "s#\[ \"restic\",#\[ \"node-agent\",#g" \
| kubectl apply -f -
kubectl delete ds -n velero restic --force --grace-period 0
Per ulteriori informazioni, vedere Aggiornamento a Velero 1.10 nella documentazione di Velero.
Per eseguire il backup dei contenuti del cluster del carico di lavoro Tanzu Kubernetes Grid, sono necessarie le posizioni di storage per:
Vedere Posizioni di storage di backup e posizioni degli snapshot dei volumi nella documentazione di Velero. Velero supporta una serie di provider di storage, che possono essere:
VMware consiglia di dedicare un bucket di storage univoco a ogni cluster.
Per configurare MinIO:
Eseguire l'immagine del container minio
con le credenziali di MinIO e una posizione di storage, ad esempio:
$ docker run -d --name minio --rm -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -e "MINIO_DEFAULT_BUCKETS=mgmt" gcr.io/velero-gcp/bitnami/minio:2021.6.17-debian-10-r7
Salvare le credenziali in un file locale da passare all'opzione --secret-file
di velero install
ad esempio:
[default]
aws_access_key_id=minio
aws_secret_access_key=minio123
In vSphere, i backup di storage dell'oggetto cluster e gli snapshot dei volumi vengono salvati nella stessa posizione di storage. Questa posizione deve essere uno storage esterno compatibile con S3 in Amazon Web Services (AWS) o un provider S3 come MinIO.
Per configurare lo storage per Velero in vSphere, vedere Plug-in Velero per vSphere in Vanilla Kubernetes Cluster per il plug-in v1.5.1.
Per configurare lo storage per Velero in AWS, eseguire le procedure nel repository dei plug-in Velero per AWS:
Configurare lo storage S3 in base alle esigenze per ogni plug-in. Il plug-in dell'archivio di oggetti archivia e recupera i backup dell'oggetto cluster, mentre lo strumento di creazione di snapshot del volume archivia e recupera i volumi di dati.
Per configurare lo storage per Velero in Azure, eseguire le procedure nel repository dei plug-in Velero per Azure:
Configurare lo storage S3 in base alle esigenze per ogni plug-in. Il plug-in dell'archivio di oggetti archivia e recupera i backup dell'oggetto cluster, mentre lo strumento di creazione di snapshot del volume archivia e recupera i volumi di dati.
Per distribuire il server Velero in un cluster del carico di lavoro, eseguire il comando velero install
. Questo comando crea nel cluster uno spazio dei nomi denominato velero
e vi posiziona una distribuzione denominata velero
.
NotaSe nel cluster è già installato Velero, eseguire i passaggi descritti in Aggiornamento di Velero.
Per installare Velero, eseguire velero install
con le seguenti opzioni:
--provider $PROVIDER
: Ad esempio, aws
--plugins projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.6.2_vmware.1
--bucket $BUCKET
: Nome del bucket S3--backup-location-config region=$REGION
: Regione AWS in cui si trova il bucket--snapshot-location-config region=$REGION
: Regione AWS in cui si trova il bucket--kubeconfig
per installare il server Velero in un cluster diverso da quello predefinito corrente.(Facoltativo) --secret-file ./VELERO-CREDS
: un modo per consentire a Velero di accedere a un bucket S3 consiste nel passare a questa opzione un file VELERO-CREDS
locale con aspetto simile al seguente:
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
Per ulteriori opzioni, vedere Installazione e avvio di Velero.
Quando si esegue il comando velero install
, viene creato nel cluster uno spazio dei nomi denominato velero
in cui viene posizionata una distribuzione denominata velero
.
La modalità di esecuzione del comando velero install
e la configurazione di Velero in un cluster dipendono dall'infrastruttura e dal provider di storage, come descritto nelle sezioni seguenti.
Questa procedura installa Velero nei cluster del carico di lavoro gestiti da un cluster di gestione autonomo in vSphere.
Per distribuire Velero in un cluster supervisore vSphere with Tanzu che funge da cluster di gestione Tanzu Kubernetes Grid, vedere Backup e ripristino di vSphere with Tanzu.
Installare il server Velero nel cluster predefinito corrente in kubeconfig
eseguendo velero install
con le opzioni elencate nella sezione Opzioni di installazione di Velero precedente.
Ad esempio, per utilizzare MinIO come storage di oggetti, seguire le Istruzioni di configurazione del server MinIO nella documentazione di Velero:
velero install --provider aws --plugins "projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.6.2_vmware.1" --bucket velero --secret-file ./credentials-velero --backup-location-config "region=minio,s3ForcePathStyle=true,s3Url=minio_server_url" --snapshot-location-config region="default"
Per ulteriori informazioni, vedere la sezione Installazione per i cluster Vanilla Kubernetes nel repository del plug-in Velero per vSphere v1.5.1.
Quando si installa il server Velero nel cluster, viene creato uno spazio dei nomi denominato velero
in cui viene posizionata una distribuzione denominata velero
.
Se in precedenza non è stato passato un file di credenziali a --secret-file
con velero install
, concedere l'accesso a Velero dal bucket S3 di backup. In AWS, ad esempio, collegare un criterio al ruolo IAM nodes.tkg.cloud.vmware.com
, che gestisce le applicazioni ospitate come Velero, per consentire l'accesso al bucket S3.
Aggiungere il plug-in Velero per vSphere che consente a Velero di utilizzare il bucket S3 per archiviare gli snapshot del volume CSI per i dati del carico di lavoro, oltre ad archiviare gli oggetti del cluster:
Recuperare e decodificare le credenziali di vSphere utilizzate dal driver CSI in un file di configurazione segreto csi-vsphere.conf
:
kubectl -n vmware-system-csi get secret vsphere-config-secret -o jsonpath='{.data.csi-vsphere\.conf}'| base64 -d > csi-vsphere.conf
(Facoltativo) Controllare e confermare i valori di indirizzo IP, nome utente e password di vCenter nel file di configurazione segreto csi-vsphere.conf
con il seguente aspetto:
cluster-id = "CLUSTER-ID"
[VirtualCenter "VCENTER-IP"]
user = "USERNAME"
password = "PASSWORD"
port = "443"
Utilizzare il file di configurazione per creare il segreto velero-vsphere-config-secret
nello spazio dei nomi velero
:
kubectl -n velero create secret generic velero-vsphere-config-secret --from-file=csi-vsphere.conf
Creare un file ConfigMap
velero-plugin.conf
per il plug-in Velero che faccia riferimento al segreto:
apiVersion: v1
kind: ConfigMap
metadata:
name: velero-vsphere-plugin-config
data:
cluster_flavor: VANILLA
vsphere_secret_name: velero-vsphere-config-secret
vsphere_secret_namespace: velero
Applicare ConfigMap
:
kubectl -n velero apply -f velero-plugin.conf
Aggiungere il plug-in:
velero plugin add PLUGIN-IMAGE
Dove PLUGIN-IMAGE
è il percorso del Registro di sistema dell'immagine del container indicata in Repository del plug-in Velero per vSphere v1.5.1, ad esempio http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.5.1_vmware.1
.
Abilitare il plug-in aggiungendo le seguenti autorizzazioni VirtualMachine al ruolo creato per l'account Tanzu Kubernetes Grid, se non sono già state incluse al momento della creazione dell'account:
velero install
con le opzioni elencate nella sezione Opzioni di installazione di Velero precedente.velero install
con le opzioni elencate nella sezione Opzioni di installazione di Velero precedente.Utilizzare Velero per eseguire il backup e il ripristino dei carichi di lavoro correnti e dello stato dei volumi persistenti di un cluster del carico di lavoro per interi cluster o spazi dei nomi specifici.
Per eseguire il backup dei contenuti di un cluster del carico di lavoro:
Seguire le istruzioni della sezione precedente Distribuzione del server Velero nei cluster relative all'infrastruttura in uso per distribuire un server Velero nel cluster del carico di lavoro insieme al plug-in Velero per vSphere, se necessario.
Eseguire il backup dei contenuti del cluster:
velero backup create your_backup_name
Se velero backup
restituisce un errore transport is closing
, riprovare dopo aver aumentato il limite della memoria, come descritto in Aggiornamento delle richieste e dei limiti delle risorse dopo l'installazione nella documentazione di Velero.
NotaIl backup e il ripristino dei cluster del carico di lavoro di Windows e multi OS non sono supportati.
Per ripristinare i contenuti di un cluster del carico di lavoro dal backup:
Creare un nuovo cluster. Non è possibile ripristinare un backup del cluster in un cluster esistente.
Seguire le istruzioni della sezione precedente Distribuzione del server Velero nei cluster relative all'infrastruttura in uso per distribuire un server Velero nel nuovo cluster insieme al plug-in Velero per vSphere, se necessario.
Ripristinare i contenuti del cluster:
velero backup get
velero restore create your_restore_name --from-backup your_backup_name