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

Se la CLI di Velero è già stata installata con una versione precedente di TKG, è necessario aggiornare Velero a v1.11.1. Per informazioni, vedere Aggiornamento di Velero di seguito.

Per installare la CLI di Velero v1.11.1, eseguire le operazioni 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.

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

Aggiornamento di Velero

Se si aggiorna TKG da v2.3 a v2.4, è necessario aggiornare Velero a v1.11.1.

Importante

Velero v1.10.x utilizza CRD diversi, denominazione dei componenti diversa e funziona in modo diverso da v1.9.x. Se si utilizza ancora Velero v1.9.x con TKG 2.3 e si esegue l'aggiornamento a TKG 2.4, è necessario aggiornare Velero dalla versione v1.9.x alla versione v1.10.x prima di poter eseguire l'aggiornamento a v1.11.1. Per istruzioni su come aggiornare Velero da v1.9.x a v1.10.x, eseguire la procedura per aggiornare Velero indicata nella documentazione di TKG 2.3 prima di aggiornare Velero a v1.11.1.

Per aggiornare Velero da v1.10.x a v1.11.1, eseguire i passaggi seguenti.

  1. Eseguire la procedura descritta in Installazione della CLI di Velero per installare Velero v1.11.1.
  2. Aggiornare le definizioni CRD con il file binario Velero v1.11.1.

    velero install --crds-only --dry-run -o yaml | kubectl apply -f -
    
  3. Aggiornare la configurazione della distribuzione di Velero in modo che utilizzi la nuova versione di Velero e la versione del plug-in di Velero per l'infrastruttura in uso.

    vSphere
    kubectl set image deployment/velero \
        velero=velero/velero:v1.11.1 \
        velero-plugin-for-vsphere=velero/velero-plugin-for-vsphere:v1.5.1 \
        --namespace velero
    
    AWS
    kubectl set image deployment/velero \
        velero=velero/velero:v1.11.1 \
        velero-plugin-for-aws=velero/velero-plugin-for-aws:v1.7.1 \
        --namespace velero
    
    Azure
    kubectl set image deployment/velero \
        velero=velero/velero:v1.11.1 \
        velero-plugin-for-microsoft-azure=velero/velero-plugin-for-microsoft-azure:v1.7.1 \
        --namespace velero
    
  4. (Facoltativo) Se si utilizza il set di daemon node, aggiornare la versione dell'agente del nodo.

    kubectl set image daemonset/node-agent \
       node-agent=velero/velero:v1.11.1 \
       --namespace velero 
    

Per ulteriori informazioni, vedere Aggiornamento a Velero 1.11 nella documentazione di 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.5.1.

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.

Nota

Se nel cluster è già installato Velero, eseguire i passaggi descritti in Aggiornamento di Velero.

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.7.1_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. 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.7.1_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.

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

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

      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.

    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

  1. 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.
  2. Eseguire velero install con le opzioni elencate nella sezione Opzioni di installazione di Velero precedente.

Installazione di Velero in cluster di Azure

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