È possibile utilizzare Plug-in Velero per vSphere per eseguire il backup e il ripristino dei carichi di lavoro in esecuzione in un cluster TKGS installando Plug-in Velero per vSphere in tale cluster.

Panoramica

Plug-in Velero per vSphere fornisce una soluzione per il backup e il ripristino dei carichi di lavoro del cluster TKGS. Per i carichi di lavoro persistenti, Plug-in Velero per vSphere consente di creare snapshot dei volumi persistenti.
Nota: Se per i carichi di lavoro dei cluster TKGS di cui si desidera eseguire il backup e il ripristino è necessaria la portabilità, non utilizzare Plug-in Velero per vSphere. Per la portabilità tra i cluster di Kubernetes, utilizzare Velero con Restic in modalità autonoma.

Prerequisito: installare Plug-in Velero per vSphere in Supervisore

L'installazione di Plug-in Velero per vSphere in un cluster TKGS richiede che nel Supervisore sia installato Plug-in Velero per vSphere. Il Supervisore deve inoltre essere configurato con la rete NSX. Vedere .

Passaggio 1: Installare la CLI di Velero in una workstation Linux

La CLI di Velero è lo strumento standard per l'interazione con Velero. La CLI di Velero offre più funzionalità della CLI di Plug-in Velero per vSphere (velero-vsphere) ed è necessaria per il backup e il ripristino dei carichi di lavoro dei cluster di Tanzu Kubernetes.

Installare la CLI di Velero in una workstation Linux. È consigliabile utilizzare lo stesso jump host in cui vengono eseguite le CLI associate per l'ambiente di vSphere IaaS control plane, inclusi kubectl, kubectl-vsphere e velero-vsphere.

I numeri di versione di Velero vengono indicati con il formato X.Y.Z. Fare riferimento alla Matrice di compatibilità di Velero per le versioni specifiche da utilizzare e sostituire di conseguenza quando si eseguono i comandi.

Completare i passaggi seguenti per installare la CLI di Velero.
  1. Eseguire i comandi seguenti:
    $ wget https://github.com/vmware-tanzu/velero/releases/download/vX.Y.Z/velero-vX.Y.Z-linux-amd64.tar.gz
    $ gzip -d velero-vX.Y.Z-linux-amd64.tar.gz && tar -xvf velero-vX.Y.Z-linux-amd64.tar
    $ export PATH="$(pwd)/velero-vX.Y.Z-linux-amd64:$PATH"
     
    $ which velero
    /root/velero-vX.Y.Z-linux-amd64/velero
  2. Verificare l'installazione della CLI di Velero.
    velero version
    
    Client:
        Version: vX.Y.Z

Passaggio 2: Recuperare i dettagli del bucket compatibile con S3

Per comodità, i passaggi presuppongono che si stia utilizzando lo stesso archivio di oggetti compatibile con S3 configurato quando è stato installato Plug-in Velero per vSphere nel Supervisore. Nella produzione può essere necessario creare un archivio di oggetti separato.

Per installare Plug-in Velero per vSphere, sarà necessario fornire le seguenti informazioni sull'archivio di oggetti compatibile con S3.
Elemento dati Valore di esempio
s3Url

http://my-s3-store.example.com

aws_access_key_id ACCESS-KEY-ID-STRING
aws_secret_access_key SECRET-ACCESS-KEY-STRING
Creare un file dei segreti denominato s3-credentials con le informazioni seguenti. Si farà riferimento a questo file durante l'installazione di Plug-in Velero per vSphere.
aws_access_key_id = ACCESS-KEY-ID-STRING
aws_secret_access_key = SECRET-ACCESS-KEY-STRING

Passaggio 3 Opzione A: installare Plug-in Velero per vSphere nel cluster TKG utilizzando un'etichetta (nuovo metodo)

Se si utilizza vSphere 8 Update 3 o versioni successive, è possibile installare automaticamente Plug-in Velero per vSphere in un cluster TKG aggiungendo un'etichetta.
  1. Verificare che la posizione di storage del backup sia accessibile.
  2. Verificare che Servizio supervisore principale dell'operatore Velero vSphere sia attivato.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
  3. Verificare che nel Supervisore sia creato uno spazio dei nomi Kubernetes denominato velero.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
    velero                                      Active   1s
  4. Verificare che Plug-in Velero per vSphere Servizio supervisore sia abilitato in Supervisore.
    velero version
    Client:
            Version: v1.11.1
            Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c
    Server:
            Version: v1.11.1
    kubectl get veleroservice -A
    NAMESPACE   NAME      AGE
    velero      default   53m
    velero backup-location get
    NAME      PROVIDER   BUCKET/PREFIX   PHASE       LAST VALIDATED                  ACCESS MODE   DEFAULT
    default   aws        velero          Available   2023-11-20 14:10:57 -0800 PST   ReadWrite     true
  5. Abilitare Velero per il cluster TKG di destinazione aggiungendo l'etichetta velero al cluster.
    kubectl label cluster CLUSTER-NAME --namespace CLUSTER-NS velero.vsphere.vmware.com/enabled=true
    Nota: Questa operazione viene eseguita da Spazio dei nomi vSphere quando viene eseguito il provisioning del cluster.
  6. Verificare che Velero sia installato e pronto per il cluster.
    kubectl get ns
    NAME                                 STATUS   AGE
    ...
    velero                               Active   2m    <--
    velero-vsphere-plugin-backupdriver   Active   2d23h
    kubectl get all -n velero
    NAME                                 READY   STATUS    RESTARTS   AGE
    pod/backup-driver-5945d6bcd4-gtw9d   1/1     Running   0          17h
    pod/velero-6b9b49449-pq6b4           1/1     Running   0          18h
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/backup-driver   1/1     1            1           17h
    deployment.apps/velero          1/1     1            1           18h
    NAME                                       DESIRED   CURRENT   READY   AGE
    replicaset.apps/backup-driver-5945d6bcd4   1         1         1       17h
    replicaset.apps/velero-6b9b49449           1         1         1       18h
    velero version
    Client:
            Version: v1.11.1
            Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c
    Server:
            Version: v1.11.1

Passaggio 3 Opzione B: installare manualmente Plug-in Velero per vSphere nel cluster TKG (metodo legacy)

Per installare Plug-in Velero per vSphere nel cluster TKG di destinazione di cui si desidera eseguire il backup e il ripristino, verrà utilizzata la CLI di Velero.

Il contesto della CLI di Velero seguirà automaticamente il contesto di kubectl. Prima di eseguire i comandi della CLI di Velero per installare Velero e Plug-in Velero per vSphere nel cluster di destinazione, assicurarsi di impostare il contesto di kubectl sul cluster di destinazione.
  1. Utilizzando Plug-in vSphere per kubectl, eseguire l'autenticazione con il Supervisore.
  2. Impostare il contesto di kubectl nel cluster TKG di destinazione.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  3. Nel cluster TKG, creare una mappa di configurazione per il plug-in Velero denominata velero-vsphere-plugin-config.yaml.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: velero-vsphere-plugin-config
    data:
      cluster_flavor: GUEST
    Applicare la mappa di configurazione nel cluster TKG.
    kubectl apply -n <velero-namespace> -f velero-vsphere-plugin-config.yaml
    Se non si installa la mappa di configurazione, quando si tenta di installare Plug-in Velero per vSphere viene visualizzato il messaggio di errore seguente.
    Error received while retrieving cluster flavor from config, err: configmaps "velero-vsphere-plugin-config" not found
    Falling back to retrieving cluster flavor from vSphere CSI Driver Deployment
  4. Eseguire il seguente comando della CLI di Velero per installare Velero nel cluster di destinazione.

    Sostituire i valori dei segnaposto per i campi BUCKET-NAME, REGION (due istanze) e s3Url con i valori appropriati. Se una delle istruzioni precedenti non è stata seguita, modificare anche tali valori, ad esempio il nome o la posizione del file dei segreti, il nome dello spazio dei nomi velero creato manualmente e così via.

    ./velero install --provider aws \
    --bucket BUCKET-NAME \
    --secret-file ./s3-credentials \
    --features=EnableVSphereItemActionPlugin \
    --plugins velero/velero-plugin-for-aws:vX.Y.Z \
    --snapshot-location-config region=REGION \
    --backup-location-config region=REGION,s3ForcePathStyle="true",s3Url=http://my-s3-store.example.com
  5. Installare Plug-in Velero per vSphere nel cluster di destinazione. L'istanza di Velero installata comunicherà con il server dell'API Kubernetes per installare il plug-in.
    velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z

Addendum: Disinstallare Plug-in Velero per vSphere dal cluster TKG

Per disinstallare Plug-in Velero per vSphere, completare la procedura seguente.
  1. Impostare il contesto di kubectl nel cluster di Tanzu Kubernetes di destinazione.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  2. Per disinstallare il plug-in, eseguire il comando seguente per rimuovere InitContainer di velero-plugin-for-vsphere dalla distribuzione di Velero.
    velero plugin remove vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z
  3. Per completare il processo, eliminare la distribuzione del driver di backup e i relativi CRD.
    kubectl -n velero delete deployment.apps/backup-driver
    kubectl delete crds \
    backuprepositories.backupdriver.cnsdp.vmware.com \
    backuprepositoryclaims.backupdriver.cnsdp.vmware.com \
    clonefromsnapshots.backupdriver.cnsdp.vmware.com \
    deletesnapshots.backupdriver.cnsdp.vmware.com \
    snapshots.backupdriver.cnsdp.vmware.com
    kubectl delete crds uploads.datamover.cnsdp.vmware.com downloads.datamover.cnsdp.vmware.com