Es posible utilizar el complemento de Velero para vSphere para realizar una copia de seguridad y una restauración de las cargas de trabajo que se ejecutan en un clúster de TKGS mediante la instalación del complemento de Velero para vSphere en ese clúster.

Descripción general

El complemento de Velero para vSphere proporciona una solución para realizar una copia de seguridad y una restauración de las cargas de trabajo de clúster de TKGS. Para cargas de trabajo persistentes, el complemento de Velero para vSphere le permite tomar instantáneas de los volúmenes persistentes.
Nota: Si necesita portabilidad para las cargas de trabajo del clúster de TKGS que desea restaurar y para las que quiere hacer una copia de seguridad, no utilice el complemento de Velero para vSphere. Para la portabilidad entre clústeres de Kubernetes, utilice Velero independiente con Restic.

Requisito previo: instale el complemento de Velero para vSphere en el Supervisor

Para la instalación del complemento de Velero para vSphere en un clúster de TKGS, se requiere que el Supervisor tenga instalado el complemento de Velero para vSphere. Además, Supervisor debe estar configurado con redes NSX. Consulte .

Paso 1: Instalar la CLI de Velero en una Workstation de Linux

La CLI de Velero es la herramienta estándar para interactuar con Velero. La CLI de Velero proporciona más funcionalidad que la CLI del complemento de Velero para vSphere (velero-vsphere) y es necesaria para realizar copias de seguridad y restauración de las cargas de trabajo del clúster de Tanzu Kubernetes.

Instale la CLI de Velero en una estación de trabajo Linux. Idealmente, este es el mismo host de salto en el que se ejecutan las CLI asociadas para el entorno de vSphere IaaS control plane, incluidos kubectl, kubectl-vsphere y velero-vsphere.

Los números de versión de Velero se presentan como X.Y.Z. Consulte la Matriz de compatibilidad de Velero para ver las versiones específicas que deben utilizarse y sustitúyalas según corresponda al ejecutar los comandos.

Complete los siguientes pasos para instalar la CLI de Velero.
  1. Ejecute los siguientes comandos:
    $ 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. Compruebe la instalación de la CLI de Velero.
    velero version
    
    Client:
        Version: vX.Y.Z

Paso 2: Obtener los detalles del depósito compatible con S3

Para mayor comodidad, los pasos asumen que está utilizando el mismo almacén de objetos compatible con S3 que configuró cuando instaló el complemento de Velero para vSphere en el Supervisor. En producción, es posible que desee crear un almacén de objetos independiente.

Para instalar el complemento de Velero para vSphere, deberá proporcionar la siguiente información sobre el almacén de objetos compatible con S3.
Elemento de datos Valor de ejemplo
s3Url

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

aws_access_key_id ACCESS-KEY-ID-STRING
aws_secret_access_key SECRET-ACCESS-KEY-STRING
Cree un nombre de archivo de secretos s3-credentials con la siguiente información. Debe hacer referencia a este archivo cuando instale el complemento de Velero para vSphere.
aws_access_key_id = ACCESS-KEY-ID-STRING
aws_secret_access_key = SECRET-ACCESS-KEY-STRING

Paso 3 Opción A: Instalar complemento de Velero para vSphere en el clúster de TKG con una etiqueta (nuevo método)

Si utiliza vSphere 8 Update 3 o una versión posterior, puede instalar complemento de Velero para vSphere automáticamente en un clúster de TKG agregando una etiqueta.
  1. Compruebe que se pueda acceder a la ubicación de almacenamiento de la copia de seguridad.
  2. Compruebe que esté activada la función servicio de supervisor de Velero vSphere Operator Core.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
  3. Compruebe que se haya creado un espacio de nombres de Kubernetes con el nombre velero en Supervisor.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
    velero                                      Active   1s
  4. Compruebe que servicio de supervisor de complemento de Velero para vSphere esté habilitado en Supervisor.
    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. Agregue la etiqueta velero al clúster a fin de habilitar Velero para el clúster de TKG de destino.
    kubectl label cluster CLUSTER-NAME --namespace CLUSTER-NS velero.vsphere.vmware.com/enabled=true
    Nota: Esto se realiza desde espacio de nombres de vSphere cuando se aprovisiona el clúster.
  6. Compruebe que Velero esté instalado y listo para el clúster.
    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

Paso 3 Opción B: Instalar complemento de Velero para vSphere en el clúster de TKG manualmente (método heredado)

Deberá utilizar la CLI de Velero para instalar el complemento de Velero para vSphere en el clúster de TKG de destino del que desea realizar una copia de seguridad y restauración.

El contexto de la CLI de Velero seguirá automáticamente el contexto de kubectl. Antes de ejecutar los comandos de la CLI de Velero para instalar Velero y el complemento de Velero para vSphere en el clúster de destino, asegúrese de establecer el contexto de kubectl en el clúster de destino.
  1. Utilice el complemento de vSphere para kubectl para autenticarse en el Supervisor.
  2. Establezca el contexto de kubectl en el clúster de TKG de destino.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  3. En el clúster de TKG, cree un mapa de configuración para el complemento de Velero denominado velero-vsphere-plugin-config.yaml.
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: velero-vsphere-plugin-config
    data:
      cluster_flavor: GUEST
    Aplique el mapa de configuración en el clúster de TKG.
    kubectl apply -n <velero-namespace> -f velero-vsphere-plugin-config.yaml
    Si no instala el mapa de configuración, recibirá el siguiente error cuando intente instalar el complemento de Velero para vSphere.
    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. Ejecute el siguiente comando de la CLI de Velero para instalar Velero en el clúster de destino.

    Reemplace los valores de marcador de posición de los campos BUCKET-NAME, REGION (dos instancias) y s3Url con los valores adecuados. Si se desvió de cualquiera de las instrucciones anteriores, ajuste también esos valores, como el nombre o la ubicación del archivo de secretos, el nombre del espacio de nombres velero creado manualmente, etc.

    ./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. Instale el complemento de Velero para vSphere en el clúster de destino. El Velero instalado se comunicará con el servidor de API de Kubernetes para instalar el complemento.
    velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z

Anexo: Desinstalar el complemento de Velero para vSphere del clúster de TKG

Siga estos pasos para desinstalar el complemento de Velero para vSphere.
  1. Establezca el contexto de kubectl en el clúster de destino de Tanzu Kubernetes.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  2. Para desinstalar el complemento, ejecute el siguiente comando para eliminar el InitContainer de velero-plugin-for-vsphere de la implementación de Velero.
    velero plugin remove vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z
  3. Para completar el proceso, elimine la implementación del controlador de copia de seguridad y los CRD relacionados.
    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