En esta página, se describe cómo crear un repositorio de copias de seguridad para máquinas virtuales (VM) en Google Distributed Cloud (GDC) aislado.
Antes de crear copias de seguridad o instantáneas, debes definir al menos un repositorio de copias de seguridad que se pueda compartir entre varias copias de seguridad o instantáneas. Un repositorio de copias de seguridad le indica al sistema de copias de seguridad dónde almacenar o recuperar las copias de seguridad. Los repositorios de copias de seguridad para VMs están restringidos al servidor de la API de Management.
Antes de comenzar
Antes de crear un repositorio de copias de seguridad, debes aprovisionar el almacenamiento subyacente y configurar los permisos necesarios, incluidos los siguientes:
- Un bucket de almacenamiento de objetos y un extremo compatible con S3
- Una cuenta de servicio con acceso otorgado al bucket y sus credenciales de S3
Los roles de IAM necesarios son los siguientes:
- Administrador de copias de seguridad de la organización: Administra recursos de copias de seguridad, como planes de copias de seguridad y restablecimiento en clústeres de usuario.
- Secret Viewer: Visualiza los secretos de Kubernetes en los proyectos.
Pídele al administrador de IAM de la organización que te otorgue los roles de administrador de copias de seguridad de la organización (
organization-backup-admin) y visualizador de secretos (secret-viewer). Para obtener más información, consulta Definiciones de roles.
Crea un repositorio de copias de seguridad
Crea un repositorio con la consola de GDC o la API.
Console
- Accede a la consola de GDC.
- En el menú de navegación, haz clic en Copia de seguridad para máquinas virtuales > Repositorios.
- Haz clic en Crear repositorio.
- Ingresa un nombre de repositorio y una descripción opcional.
En el campo Extremo del URI de S3, ingresa un extremo con el nombre de dominio completamente calificado de tu sitio de almacenamiento de objetos, como
https://objectstorage.ORG.ZONE.DOMAIN.SUFFIX:PORT. Por ejemplo,https://objectstorage.org-1.zone1.google.gdch.test. Para obtener el valor del recurso personalizadoBucket, ejecuta el siguiente comando:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'En el campo Nombre del bucket, ingresa el nombre de dominio completamente calificado del bucket. Puedes obtener este nombre en la página Detalles del bucket en la consola de GDC o, para obtener el valor del recurso personalizado
Bucket, ejecuta el siguiente comando:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'En el campo Región del bucket, ingresa la región en la que se creó el bucket y obtén el valor del recurso personalizado del bucket ejecutando el siguiente comando:
kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.region'En los campos ID de clave de acceso y Clave de acceso, ingresa el ID de la clave de acceso y la clave de acceso secreta. Para obtener más información sobre cómo obtener estas credenciales, consulta Otorga y obtén acceso bucket de almacenamiento.
Haz clic en Crear.
API
Crea un recurso personalizado BackupRepository con tus credenciales de S3.
Obtén el nombre del secreto que contiene las credenciales de S3:
export PROJECT_NAME=PROJECT_NAME export SA_NAME=SA_NAME kubectl get secrets --namespace $PROJECT_NAME -o json | jq -r --arg USER_NAME "${SA_NAME:?}" '.items[] | select( (.metadata.annotations."object.gdc.goog/subject"==$USER_NAME)) | .metadata.name'Asegúrate de registrar el nombre secreto que devolvió el comando y úsalo como
SECRET_NAMEen el siguiente paso.Reemplaza lo siguiente:
PROJECT_NAME: nombre del proyecto.SA_NAME: Es el nombre de la cuenta de servicio que se usa para acceder al almacenamiento de objetos.
Para obtener detalles del bucket, como el FQDN y los extremos, extrae los valores
fullyQualifiedNameyzonalEndpointsdel resultado:kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yamlCrea un
BackupRepositorydentro del servidor de la API de Management:apiVersion: backup.gdc.goog/v1 kind: BackupRepository metadata: name: REPOSITORY_NAME spec: secretReference: namespace: PROJECT_NAME name: SECRET_NAME endpoint: ENDPOINT type: "S3" s3Options: bucket: BUCKET_FQDN region: REGION forcePathStyle: FORCE_PATH_STYLE importPolicy: IMPORT_POLICYReemplaza lo siguiente:
REPOSITORY_NAME: Es el nombre del repositorio de copias de seguridad.PROJECT_NAME: nombre del proyecto.SA_NAME: Es el nombre de la cuenta de servicio que se usa para acceder al almacenamiento de objetos.SECRET_NAME: Es el nombre del Secret que muestra el comandokubectl get secrets.ENDPOINT: Es el nombre de dominio completamente calificado del sistema de almacenamiento, por ejemplo,https://objectstorage.google.gdch.test. Para el campotype, solo se admite el valorS3.BUCKET_FQDN: Es el nombre completamente calificado del bucket.REGION: Es la región en la que se creó el bucket.FORCE_PATH_STYLE: Usa el campoforcePathStylepara forzar URLs con estilo de ruta de acceso para los objetos. Este campo debe tener un valor detrueofalse.IMPORT_POLICY: Se establece en uno de los siguientes valores:ReadWrite: Este repositorio se puede usar para programar o crear copias de seguridad, planes de copias de seguridad y restablecimientos.ReadOnly: Este repositorio solo se puede usar para importar y ver copias de seguridad. No se pueden crear copias de seguridad ni recursos nuevos en este repositorio, pero los restablecimientos pueden usar y hacer referencia a copias de seguridad de solo lectura para el restablecimiento. No hay restricciones sobre la frecuencia con la que se puede usar un repositorio de copias de seguridad como ReadOnly.
El comando
BackupRepositorycrea un recursoBackupRepositoryhabilitado para lectura y escritura en el servidor de la API de Management que tiene el mismo nombre.