Backup e ripristino dei cluster del carico di lavoro

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.

Configurazione di Velero

È 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:

  • Pre e post-hook per il backup e il ripristino per eseguire processi personalizzati prima o dopo gli eventi di backup e ripristino.
  • L'esclusione di aspetti dello stato del carico di lavoro o del cluster che non sono adatti al backup/ripristino.

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.

Installazione della CLI di Velero

Attenzione

Se è già stata installata la CLI di Velero v1.8.1 o versioni precedenti distribuita con le versioni precedenti di TKG, è necessario eseguire l'aggiornamento a v1.9.7. Le versioni precedenti di Velero non funzionano con le CRD utilizzate in v1.9 e versioni successive.

Per installare la CLI di Velero v1.9.7, eseguire i passaggi seguenti:

  1. Passare alla pagina di download di Tanzu Kubernetes Grid e accedere con le credenziali di VMware Customer Connect.
  2. In Download prodotti (Product Downloads) fare clic su Vai ai download (Go to Downloads).
  3. Scorrere fino alle voci di Velero e scaricare il file .gz della CLI di Velero per il sistema operativo della workstation. Il nome del file inizia con velero-linux-, velero-mac- o velero-windows64-.
  4. Utilizzare il comando gunzip o lo strumento di estrazione desiderato per decomprimere il file binario:

    gzip -d <RELEASE-TARBALL-NAME>.gz
    
  5. Rinominare il file binario della CLI per la piattaforma con velero, assicurarsi che sia eseguibile e aggiungerlo in PATH.

    • Piattaforme macOS e Linux:

      1. Spostare il file binario nella cartella /usr/local/bin e rinominarlo con velero.
      2. Rendere eseguibile il file:
      chmod +x /usr/local/bin/velero
      
    • Piattaforme Windows:

      1. Creare una nuova cartella Program Files\velero e copiare il file binario in tale cartella.
      2. Rinominare il file binario con velero.exe.
      3. Fare clic con il pulsante destro del mouse sulla cartella velero, selezionare Proprietà > Sicurezza e assicurarsi che l'account utente disponga dell'autorizzazione Controllo completo.
      4. Utilizzare Windows Search per cercare env.
      5. Selezionare Modifica le variabili di ambiente relative al sistema e fare clic sul pulsante Variabili di ambiente.
      6. Selezionare la riga Path sotto Variabili di sistema e fare clic su Modifica.
      7. Fare clic su Nuovo per aggiungere una nuova riga e immettere il percorso del file binario velero.

Configurazione di un provider di storage

Per eseguire il backup dei contenuti del cluster del carico di lavoro Tanzu Kubernetes Grid, sono necessarie le posizioni di storage per:

  • Backup dello storage dell'oggetto cluster per i metadati di Kubernetes nei cluster
  • Snapshot dei volumi per i dati utilizzati dai cluster

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:

  • Un provider di storage cloud online.
  • Un servizio di storage di oggetti locale come MinIO per gli ambienti con proxy o air gap.

VMware consiglia di dedicare un bucket di storage univoco a ogni cluster.

Per configurare MinIO:

  1. 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
    
  2. 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
    

Storage per vSphere

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.4.3.

Storage per e in AWS

Per configurare lo storage per Velero in AWS, eseguire le procedure nel repository dei plug-in Velero per AWS:

  1. Creazione di un bucket S3.

  2. Impostazione delle autorizzazioni per Velero.

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.

Storage per e in Azure

Per configurare lo storage per Velero in Azure, eseguire le procedure nel repository dei plug-in Velero per Azure:

  1. Creare un account di storage e un container blob di Azure

  2. Recuperare il gruppo di risorse contenente le macchine virtuali e i dischi

  3. Impostare le autorizzazioni per Velero

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.

Distribuzione del server Velero nei cluster del carico di lavoro

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.

Aggiornamento delle CRD dalle versioni precedenti di Velero

Se nei cluster è installato Velero v1.8.1 o una versione precedente, eseguire i passaggi seguenti per aggiornarne le CRD in modo che funzionino con la CLI v1.9.7 di Velero:

  1. Aggiornare le CRD:

    velero install --crds-only --dry-run -o yaml | kubectl apply -f -
    
  2. Aggiornare la posizione dell'immagine di Velero:

    kubectl -n velero set image deployment velero velero=projects.registry.vmware.com/tkg/velero/velero:v1.9.7_vmware.1
    
  3. Aggiornare le posizioni delle immagini dei plug-in Velero eseguendo uno o più dei seguenti comandi, in base ai plug-in installati:

    kubectl -n velero set image deployment velero velero-plugin-for-csi=projects.registry.vmware.com/tkg/velero/velero-plugin-for-csi:v0.3.5_vmware.1
    kubectl -n velero set image deployment velero velero-plugin-for-aws=projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.5.5_vmware.1
    kubectl -n velero set image deployment velero velero-plugin-for-microsoft-azure=projects.registry.vmware.com/tkg/velero/velero-plugin-for-microsoft-azure:v1.5.5_vmware.1
    kubectl -n velero set image deployment velero velero-plugin-for-vsphere=projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.3_vmware.1
    
  4. Aggiornare la posizione dell'immagine di Restic DaemonSet:

    kubectl -n velero set image DaemonSet restic restic=projects.registry.vmware.com/tkg/velero/velero:v1.9.7_vmware.1
    

Opzioni di installazione 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.5.5_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
  • (Facoltativo) --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.

Installazione di Velero in cluster di vSphere

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.

  1. Se Velero è già stato installato nel cluster da TKG v1.6.x o versioni precedenti, eseguire i passaggi descritti in Aggiornamento delle CRD dalle versioni precedenti di Velero.

  2. 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.5.5_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.4.0.

    • Quando si installa il server Velero nel cluster, viene creato uno spazio dei nomi denominato velero in cui viene posizionata una distribuzione denominata velero.

  3. 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.

  4. 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:

    1. Scaricare l'immagine del plug-in Velero per vSphere v1.4.3.
    2. 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
      
    3. (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"
      
    4. 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
      
    5. 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
      
    6. Applicare ConfigMap:

      kubectl -n velero apply -f velero-plugin.conf
      
    7. Aggiungere il plug-in:

      velero plugin add PLUGIN-IMAGE
      

      In cui PLUGIN-IMAGE è il percorso del registro dell'immagine del container indicato in Repository del plug-in Velero per vSphere v1.4.3, ad esempio http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.3_vmware.1.

    8. 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:

      • Configurazione > Attiva/Disattiva rilevamento modifiche disco
      • Provisioning > Consenti accesso a disco di sola lettura
      • Provisioning > Consenti download macchina virtuale
      • Gestione snapshot > Crea snapshot
      • Gestione snapshot > Rimuovi snapshot

Installazione di Velero nei cluster in AWS

Per installare Velero nei cluster del carico di lavoro in AWS, eseguire la procedura Installazione e avvio di Velero nel repository dei plug-in Velero per AWS.

  1. Se Velero è già stato installato nel cluster da TKG v1.6.x o versioni precedenti, eseguire i passaggi descritti in Aggiornamento delle CRD dalle versioni precedenti di Velero.

  2. Eseguire velero install con le opzioni elencate nella sezione Opzioni di installazione di Velero precedente.

Installazione di Velero in cluster di Azure

Per installare Velero nei cluster del carico di lavoro in Azure, eseguire la procedura Installazione e avvio di Velero nel repository dei plug-in Velero per Azure.

  1. Se Velero è già stato installato nel cluster da TKG v1.6.x o versioni precedenti, eseguire i passaggi descritti in Aggiornamento delle CRD dalle versioni precedenti di Velero.

  2. Eseguire velero install con le opzioni elencate nella sezione Opzioni di installazione di Velero precedente.

Backup e ripristino dei carichi di lavoro

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.

Backup dei carichi di lavoro

Per eseguire il backup dei contenuti di un cluster del carico di lavoro:

  1. 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.

  2. Eseguire il backup dei contenuti del cluster:

    velero backup create your_backup_name
    
  3. 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.

Nota

Il backup e il ripristino dei cluster del carico di lavoro di Windows e multi OS non sono supportati.

Ripristino dei carichi di lavoro

Per ripristinare i contenuti di un cluster del carico di lavoro dal backup:

  1. Creare un nuovo cluster. Non è possibile ripristinare un backup del cluster in un cluster esistente.

  2. 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.

  3. Ripristinare i contenuti del cluster:

    velero backup get
    velero restore create your_restore_name --from-backup your_backup_name
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon