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.
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:
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.
PrecauciónSi 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.7. 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.7, haga lo siguiente:
.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-
.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
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:
/usr/local/bin
y cámbiele el nombre a velero
.chmod +x /usr/local/bin/velero
Plataformas de Windows:
Program Files\velero
y copie el archivo binario en ella.velero.exe
velero
, seleccione Propiedades (Properties) > Seguridad (Security) y asegúrese de que su cuenta de usuario tenga el permiso Control completo (Full Control).env
.Path
en Variables del sistema (System variables) y haga clic en Editar (Edit).velero
.Para realizar una copia de seguridad del contenido del clúster de carga de trabajo de Tanzu Kubernetes Grid, necesita ubicaciones de almacenamiento para:
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:
VMware recomienda dedicar un depósito de almacenamiento único a cada clúster.
Para configurar MinIO:
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
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
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.3.
Para configurar el almacenamiento para Velero on AWS, siga los procedimientos descritos en el repositorio de complementos de Velero para AWS:
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.
Para configurar el almacenamiento de Velero en Azure, siga los procedimientos descritos en los complementos de Velero para el repositorio de Azure:
Crear una cuenta de almacenamiento de Azure y un contenedor de blob
Obtener el grupo de recursos que contiene las máquinas virtuales y los discos
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.
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
.
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.7:
Actualizar CRD:
velero install --crds-only --dry-run -o yaml | kubectl apply -f -
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.7_vmware.1
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.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
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.7_vmware.1
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.5_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--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.
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.
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.
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.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"
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
.
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.
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:
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
(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"
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
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
Aplicar ConfigMap
:
kubectl -n velero apply -f velero-plugin.conf
Añadir el complemento:
velero plugin add PLUGIN-IMAGE
Donde PLUGIN-IMAGE
es la ruta de registro a la imagen del contenedor que se muestra en Velero Plugin for vSphere repo v1.4.3, por ejemplo, http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.3_vmware.1
.
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:
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.
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.
Ejecute velero install
con las opciones enumeradas en Opciones de instalación de Velero anteriormente.
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.
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.
Ejecute velero install
con las opciones enumeradas en Opciones de instalación de Velero anteriormente.
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.
Para realizar una copia de seguridad del contenido de un clúster de carga de trabajo:
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.
Haga una copia de seguridad del contenido del clúster:
velero backup create your_backup_name
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.
NotaNo se admite la copia de seguridad ni la restauración de clústeres de carga de trabajo de varios sistemas operativos y Windows.
Para restaurar el contenido de un clúster de carga de trabajo desde una copia de seguridad:
Crea un nuevo clúster. No se puede restaurar una copia de seguridad del clúster en un clúster existente.
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.
Restaurar el contenido del clúster:
velero backup get
velero restore create your_restore_name --from-backup your_backup_name