Copia de seguridad y restauración de cargas de trabajo de clúster

En este tema se explica cómo realizar una copia de seguridad y restaurar las cargas de trabajo y los volúmenes de almacenamiento dinámicos alojados en clústeres de carga de trabajo de Tanzu Kubernetes Grid (TKG) para TKG con un clúster de administración independiente.

Para realizar una copia de seguridad y restaurar la infraestructura del clúster, el clúster de administración independiente y los objetos del clúster de carga de trabajo, consulte Copia de seguridad y restauración de la infraestructura del clúster de carga de trabajo y de administración.

Para realizar una copia de seguridad y restaurar clústeres de vSphere with Tanzu, incluidos los clústeres de supervisor y los clústeres de carga de trabajo que crean, consulte Copia de seguridad y restauración de vSphere with Tanzu en la documentación de VMware vSphere 8.0.

Configurar Velero

Puede utilizar Velero, una herramienta estándar de comunidad de código abierto, para realizar copias de seguridad y restaurar cargas de trabajo e infraestructuras de clúster de administración independiente de TKG.

Velero admite diversos proveedores de almacenamiento para almacenar sus copias de seguridad. Velero también admite:

  • Enlaces previos y posteriores para copias de seguridad y restauraciones para ejecutar procesos personalizados antes o después de los eventos de copia de seguridad y restauración.
  • Sin incluir aspectos del estado de la carga de trabajo o del clúster que no son adecuados para copias de seguridad o restauraciones.

Una suscripción de Tanzu Kubernetes Grid incluye compatibilidad con la distribución probada y compatible de Velero de VMware disponible en la página de descargas de Tanzu Kubernetes Grid.

Para realizar una copia de seguridad y restaurar clústeres de TKG, necesita:

Después de completar los requisitos previos anteriores, también puede utilizar Velero para migrar cargas de trabajo entre clústeres. Para obtener instrucciones, consulte Migración de clústeres y Filtrado de recursos en la documentación de Velero.

Instalar la CLI de Velero

Precaución

Si ya instaló la CLI de Velero v1.8.1 o una versión anterior, como se distribuyó con versiones anteriores de TKG, debe actualizar a la versión 1.9.5. Las versiones anteriores de Velero no funcionan con los CRD utilizados en la versión 1.9 y posteriores.

Para instalar la CLI de Velero v1.9.5, haga lo siguiente:

  1. Vaya a la página de descargas de Tanzu Kubernetes Grid e inicie sesión con sus credenciales de VMware Customer Connect.
  2. En Descargas de productos, haga clic en Ir a descargas.
  3. Desplácese hasta las entradas de Velero y descargue el archivo .gz de la CLI de Velero para el sistema operativo de la estación de trabajo. El nombre de archivo comienza con velero-linux-, velero-mac- o velero-windows64-.
  4. Utilice el comando gunzip o la herramienta de extracción de su elección para descomprimir el archivo binario:

    gzip -d <RELEASE-TARBALL-NAME>.gz
    
  5. Cambie el nombre del archivo binario de la CLI de su plataforma a velero y asegúrese de que sea ejecutable y agréguelo a PATH.

    • Plataformas de macOS y Linux:

      1. Mueva el archivo binario a la carpeta /usr/local/bin y cámbiele el nombre a velero.
      2. Haga que el archivo sea ejecutable:
      chmod +x /usr/local/bin/velero
      
    • Plataformas de Windows:

      1. Cree una nueva carpeta Program Files\velero y copie el archivo binario en ella.
      2. Cambie el nombre del archivo binario a velero.exe
      3. Haga clic con el botón secundario en la carpeta velero, seleccione Propiedades (Properties) > Seguridad (Security) y asegúrese de que su cuenta de usuario tenga el permiso Control completo (Full Control).
      4. Utilice Windows Search para buscar env.
      5. Seleccione Editar las variables de entorno del sistema (Edit the system environment variables) y haga clic en el botón Variables de entorno (Environment Variables).
      6. Seleccione la fila Path en Variables del sistema (System variables) y haga clic en Editar (Edit).
      7. Haga clic en Nueva para agregar una nueva fila e introduzca la ruta en el archivo binario velero.

Configurar un proveedor de almacenamiento

Para realizar una copia de seguridad del contenido del clúster de carga de trabajo de Tanzu Kubernetes Grid, necesita ubicaciones de almacenamiento para:

  • Copias de seguridad de almacenamiento de objetos de clúster para metadatos de Kubernetes en clústeres
  • Instantáneas de volumen para datos utilizados por clústeres

Consulte Ubicaciones de almacenamiento de copias de seguridad y Ubicaciones de instantáneas de volumen en la documentación de Velero. Velero admite diversos proveedores de almacenamiento, que pueden ser:

  • Un proveedor de almacenamiento en la nube conectado.
  • Un servicio de almacenamiento de objetos local, como MinIO, para entornos con proxy o aislados.

VMware recomienda dedicar un depósito de almacenamiento único a cada clúster.

Para configurar MinIO:

  1. Ejecute la imagen de contenedor minio con las credenciales de MinIO y una ubicación de almacenamiento, por ejemplo:

    $ 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. Guarde las credenciales en un archivo local para pasar a la opción --secret-file de velero install, por ejemplo:

    [default]
    aws_access_key_id=minio
    aws_secret_access_key=minio123
    

Almacenamiento para vSphere

En vSphere, las copias de seguridad de almacenamiento de objetos de clúster y las instantáneas de volumen se guardan en la misma ubicación de almacenamiento. Esta ubicación debe ser un almacenamiento externo compatible con S3 en Amazon Web Services (AWS) o un proveedor S3, como MinIO.

Para configurar el almacenamiento de Velero en vSphere, consulte Complemento de Velero para vSphere en Vanilla Kubernetes Cluster para el complemento v1.4.2.

Almacenamiento para y en AWS

Para configurar el almacenamiento para Velero on AWS, siga los procedimientos descritos en el repositorio de complementos de Velero para AWS:

  1. Crear un contenedor S3.

  2. Establecer permisos para Velero.

Configure el almacenamiento de S3 según sea necesario para cada complemento. El complemento de almacén de objetos almacena y recupera copias de seguridad de objetos del clúster y la instantánea de volumen almacena y recupera volúmenes de datos.

Almacenamiento para y en Azure

Para configurar el almacenamiento de Velero en Azure, siga los procedimientos descritos en los complementos de Velero para el repositorio de Azure:

  1. Crear una cuenta de almacenamiento de Azure y un contenedor de blob

  2. Obtener el grupo de recursos que contiene las máquinas virtuales y los discos

  3. Establecer permisos para Velero

Configure el almacenamiento de S3 según sea necesario para cada complemento. El complemento de almacén de objetos almacena y recupera copias de seguridad de objetos del clúster y la instantánea de volumen almacena y recupera volúmenes de datos.

Implementar el servidor Velero en clústeres de carga de trabajo

Para implementar el servidor de Velero en un clúster de carga de trabajo, ejecute el comando velero install. Este comando crea un espacio de nombres denominado velero en el clúster y coloca una implementación denominada velero.

Actualizar CRD desde versiones anteriores de Velero

Si los clústeres tienen Velero v1.8.1 o una versión anterior instalada, haga lo siguiente para actualizar sus CRD para que funcionen con la CLI de Velero v1.9.5:

  1. Actualizar CRD:

    velero install --crds-only --dry-run -o yaml | kubectl apply -f -
    
  2. Actualice la ubicación de la imagen de Velero:

    kubectl -n velero set image deployment velero velero=projects.registry.vmware.com/tkg/velero/velero:v1.9.5_vmware.1
    
  3. Actualice las ubicaciones de imagen del complemento Velero ejecutando uno o varios de los siguientes comandos en función de los complementos instalados:

    kubectl -n velero set image deployment velero velero-plugin-for-csi=projects.registry.vmware.com/tkg/velero/velero-plugin-for-csi:v0.3.3_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.3_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.3_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.2_vmware.1
    
  4. Actualice la ubicación de la imagen de DaemonSet de Restic:

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

Opciones de instalación de Velero

Para instalar Velero, ejecute velero install con las siguientes opciones:

  • --provider $PROVIDER: Por ejemplo, aws
  • --plugins projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.5.3_vmware.1
  • --bucket $BUCKET: El nombre del contenedor S3
  • --backup-location-config region=$REGION: La región de AWS en la que se encuentra el contenedor
  • --snapshot-location-config region=$REGION: La región de AWS en la que se encuentra el contenedor
  • (Opcional) --kubeconfig para instalar el servidor de Velero en un clúster que no sea el predeterminado actual.
  • (Opcional) --secret-file ./VELERO-CREDS una forma de dar acceso de Velero a un contenedor S3 es pasar a esta opción un archivo VELERO-CREDS local similar al siguiente:

    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
    
  • Para obtener más opciones, consulte Instalar e iniciar Velero.

La ejecución del comando velero install crea un espacio de nombres denominado velero en el clúster, y coloca una implementación denominada velero en él.

La forma en que se ejecuta el comando velero install y, de otro modo, configurar Velero en un clúster depende de la infraestructura y el proveedor de almacenamiento, como se describe en las siguientes secciones.

Instalar Velero en clústeres en vSphere

Este procedimiento instala Velero en clústeres de carga de trabajo administrados por un clúster de administración independiente en vSphere.

Para implementar Velero en un clúster supervisor de vSphere with Tanzu que actúe como clúster de administración de Tanzu Kubernetes Grid, consulte Realizar copias de seguridad y restaurar vSphere with Tanzu.

  1. Si el clúster ya tiene Velero instalado desde TKG v1.6.x o una versión anterior, siga los pasos descritos en Actualizar CRD de versiones anteriores de Velero.

  2. Instale el servidor de Velero en el clúster predeterminado actual en kubeconfig ejecutando velero install con las opciones enumeradas en Opciones de instalación de Velero anteriores.

    • Por ejemplo, para usar MinIO como almacenamiento de objetos, siga las instrucciones de configuración del servidor MinIO en la documentación de Velero:

      velero install --provider aws --plugins "projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.5.3_vmware.1" --bucket velero --secret-file ./credentials-velero --backup-location-config "region=minio,s3ForcePathStyle=true,s3Url=minio_server_url" --snapshot-location-config region="default"
      
    • Para obtener más información, consulte la sección Instalar para los clústeres de Vanilla Kubernetes en el complemento Velero para el repositorio vSphere v1.4.0.

    • Al instalar el servidor de Velero en el clúster, se crea un espacio de nombres en el clúster denominado velero, y se coloca una implementación denominada velero.

  3. Si no ha pasado un archivo de credenciales a --secret-file con velero install anterior, configure la concesión de acceso a Velero desde el contenedor S3 de copia de seguridad. En AWS, por ejemplo, asocie una directiva a la función de IAM nodes.tkg.cloud.vmware.com, que controla las aplicaciones alojadas como Velero, para permitir el acceso al contenedor S3.

  4. Añade el complemento Velero para vSphere, que permite a Velero utilizar el contenedor S3 para almacenar instantáneas de volumen CSI para datos de carga de trabajo, además de almacenar objetos del clúster:

    1. Descargue la imagen de Complemento de Velero para vSphere v1.4.2.
    2. Recupere y descodifique las credenciales de vSphere utilizadas por el controlador CSI en un archivo de configuración secreto 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. (Opcional) Compruebe y confirme los valores de dirección IP, nombre de usuario y contraseña de vCenter en el archivo de configuración de secreto csi-vsphere.conf, que tiene el siguiente aspecto:

      cluster-id = "CLUSTER-ID"
      
      [VirtualCenter "VCENTER-IP"]
      user = "USERNAME"
      password = "PASSWORD"
      port = "443"
      
    4. Utilice el archivo de configuración para crear el secreto velero-vsphere-config-secret en el espacio de nombres velero:

      kubectl -n velero create secret generic velero-vsphere-config-secret --from-file=csi-vsphere.conf
      
    5. Cree un archivo ConfigMap velero-plugin.conf para el complemento Velero que hace referencia al secreto:

      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. Aplicar ConfigMap:

      kubectl -n velero apply -f velero-plugin.conf
      
    7. Añadir el complemento:

      velero plugin add PLUGIN-IMAGE
      

      Donde PLUGIN-IMAGE es la ruta de registro a la imagen del contenedor que aparece en el Complemento de Velero para el repositorio de vSphere v1.4.2, por ejemplo, http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.2_vmware.1.

    8. Para habilitar el complemento, agregue los siguientes permisos de VirtualMachine a la función que creó para la cuenta de Tanzu Kubernetes Grid, si aún no los incluyó al crear la cuenta:

      • Configuración > Alternar el seguimiento de cambios del disco
      • Aprovisionamiento > Permitir acceso de disco de solo lectura
      • Aprovisionamiento > Permitir descarga de la máquina virtual
      • Administración de instantáneas > Crear instantánea
      • Administración de instantáneas > Eliminar instantáneas

Instalar Velero en clústeres en AWS

Para instalar Velero en clústeres de carga de trabajo en AWS, siga el procedimiento Instalar e iniciar Velero en el repositorio de complementos Velero para AWS.

  1. Si el clúster ya tiene Velero instalado desde TKG v1.6.x o una versión anterior, siga los pasos descritos en Actualizar CRD de versiones anteriores de Velero.

  2. Ejecute velero install con las opciones enumeradas en Opciones de instalación de Velero anteriormente.

Instalar Velero en clústeres en Azure

Para instalar Velero en clústeres de carga de trabajo en Azure, siga el procedimiento Instalar e iniciar Velero en el repositorio de complementos Velero para Azure.

  1. Si el clúster ya tiene Velero instalado desde TKG v1.6.x o una versión anterior, siga los pasos descritos en Actualizar CRD de versiones anteriores de Velero.

  2. Ejecute velero install con las opciones enumeradas en Opciones de instalación de Velero anteriormente.

Copia de seguridad y restauración de cargas de trabajo

Utilice Velero para realizar una copia de seguridad y restaurar el estado de volúmenes persistentes y cargas de trabajo actuales de un clúster de carga de trabajo, para clústeres completos o espacios de nombres específicos.

Hacer copias de seguridad de cargas de trabajo

Para realizar una copia de seguridad del contenido de un clúster de carga de trabajo:

  1. Siga las instrucciones indicadas en Implementar el servidor de Velero en clústeres para su infraestructura a fin de implementar un servidor de Velero en el clúster de carga de trabajo, junto con el complemento de Velero para vSphere si es necesario.

  2. Haga una copia de seguridad del contenido del clúster:

    velero backup create your_backup_name
    
  3. Si velero backup devuelve un error transport is closing, vuelva a intentarlo después de aumentar el límite de memoria, como se describe en Actualizar solicitudes y límites de recursos después de la instalación en la documentación de Velero.

Nota

No se admite la copia de seguridad ni la restauración de clústeres de carga de trabajo de varios sistemas operativos y Windows.

Restaurar cargas de trabajo

Para restaurar el contenido de un clúster de carga de trabajo desde una copia de seguridad:

  1. Crea un nuevo clúster. No se puede restaurar una copia de seguridad del clúster en un clúster existente.

  2. Siga las instrucciones indicadas en Implementar el servidor de Velero en clústeres para su infraestructura a fin de implementar un servidor de Velero en el clúster junto con el complemento de Velero para vSphere si es necesario.

  3. Restaurar el contenido del clúster:

    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