En esta página se describe cómo seleccionar recursos para restaurarlos con mayor granularidad.
Información general
La función de restauración granular te permite restaurar un subconjunto de recursos a partir de una copia de seguridad. La función de restauración detallada ofrece la flexibilidad de refinar el ámbito de restauración definido en el plan de restauración principal. Si el ámbito de restauración detallado no se solapa con el ámbito original definido en el plan de restauración principal, no se restaurará ningún recurso.
La función de restauración pormenorizada se puede habilitar en planes de restauración con modos de gestión de conflictos a nivel de recurso individual:
- Combinar salto
- Combinar y reemplazar
- Combinar y reemplazar el volumen
Si tus planes de restauración usan modos de gestión de conflictos a nivel de espacio de nombres o ProtectedApplication, como Fail on conflict o Rollback, y quieres habilitar la restauración granular, debes actualizar tu plan de restauración para usar los modos admitidos o crear un nuevo plan de restauración. Para obtener más información sobre los modos de restauración, consulta Gestionar conflictos de recursos durante la restauración.
Para usar la restauración granular, puedes definir una o varias condiciones de filtro en los filtros de inclusión y exclusión. Puedes seleccionar un subconjunto específico de recursos de la copia de seguridad para restaurarlos o restaurar todos los recursos excepto un subconjunto. Puedes definir filtros de inclusión y de exclusión simultáneamente. Si se usan filtros de inclusión, solo se restaurarán los recursos que coincidan con esos filtros. Si se usan filtros de exclusión, se excluyen los recursos coincidentes del proceso de restauración. Si se especifican filtros de inclusión y de exclusión, los de inclusión se aplican primero y, después, los de exclusión. Esto significa que los filtros de exclusión tienen prioridad sobre los de inclusión. Si no se especifica ningún filtro, la restauración se realiza en todo el ámbito definido en el plan de restauración principal.
Hay cuatro atributos opcionales al crear una condición de filtro:
- GroupKind: el grupo y el tipo de la API de Kubernetes del recurso
- Espacio de nombres: el espacio de nombres de los recursos con permisos de espacio de nombres
- Nombre de recurso: el nombre del recurso
- Etiquetas: los pares clave-valor para seleccionar recursos en función de las etiquetas de Kubernetes.
Puede usar una combinación de los cuatro atributos anteriores para definir una condición de filtro. Si se especifica más de un atributo, las relaciones entre ellos se consideran AND
. Se selecciona un recurso si coincide con todos los atributos definidos en la condición del filtro. También puedes proporcionar varias condiciones de filtro al mismo tiempo. Las relaciones entre las diferentes condiciones de filtro son OR
. Se selecciona un recurso si coincide con alguna condición de filtro
de todos los proporcionados.
Antes de empezar
Planificar un conjunto de restauraciones.
Crear una restauración con un filtro de restauración detallado
gcloud
Crea un archivo YAML o JSON con filtros de restauración detallados. Puedes usar el siguiente ejemplo de YAML.
exclusionFilters: - groupKind: resourceGroup: foo.io resourceKind: Bar name: name1 namespace: ns1 inclusionFilters: - labels: key1: value1 key2: value2
Crea una restauración con el archivo de filtro de restauración detallada que has creado.
gcloud beta container backup-restore restores create RESTORE \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN \ --backup=BACKUP \ --filter-file=FILTER_FILE
Haz los cambios siguientes:
RESTORE
: el nombre de la restauración que quieras crear.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: la región de cálculo del plan de restauración principal.RESTORE_PLAN
: el nombre del plan de restauración principal del que deriva esta restauración.BACKUP
: la copia de seguridad que se va a restaurar. Debe estar en el plan de copia de seguridad al que hace referencia el plan de restauración principal comoprojects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP
.FILTER_FILE
: la ruta de tus filtros de restauración detallada.
Para ver la lista completa de opciones, consulta la
gcloud beta container backup-restore restores create
documentación.
Consola
Sigue estas instrucciones para crear una restauración granular en la consola: Google Cloud
En la Google Cloud consola, ve a la página Google Kubernetes Engine.
En el menú de navegación, haga clic en Backup for GKE.
Haz clic en la pestaña Copias de seguridad.
En la lista de copias de seguridad, selecciona la que quieras restaurar y haz clic en Configurar una restauración.
Elige un plan de restauración de la lista de planes que se aplican a esta copia de seguridad.
Escribe un nombre para la restauración y, si quieres, una descripción.
Marca la casilla Habilitar restauración granular.
En la sección Filtros de inclusión o Filtros de exclusión, haga clic en Añadir condición de filtro.
En Restaurar condición del filtro, define la condición y haz clic en Guardar cambios.
Si quieres añadir más condiciones, vuelve a hacer clic en Añadir condiciones de filtro.
Haz clic en Restaurar.
Ejemplos de archivos de filtros de restauración detallada
Los siguientes ejemplos se proporcionan en el formato YAML que usa la CLI de Google Cloud o las instrucciones paso a paso para la consola. Google Cloud
Restaurar un solo recurso con permisos de espacio de nombres
En este ejemplo, se restaura un recurso de tipo ConfigMap
con el nombre nginx-vars
en el espacio de nombres webserver
. Para seleccionar el recurso, se usa la restauración detallada InclusionFilters
. Si quieres elegir recursos del grupo core
, usa una cadena vacía para resourceGroup
.
gcloud
inclusionFilters:
- groupKind:
resourceKind: ConfigMap
name: nginx-vars
namespace: webserver
Consola
- Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
- En la sección Filtros de inclusión, haga clic en Añadir condición de filtro.
- En el campo Nombre del recurso, introduce
nginx-vars
. - En el campo Namespace, introduce
webserver
. - En el campo Object kind (Tipo de objeto), introduce
ConfigMap
. - Haz clic en Guardar cambios.
Excluir un solo recurso con permisos de clúster
En este ejemplo se restauran todos los recursos disponibles, excepto un GroupKind storage.k8s.io/StorageClass
con el nombre sc1
, mediante la restauración detallada ExclusionFilters
para excluir el recurso.
gcloud
exclusionFilters:
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
name: sc1
Consola
- Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
- En la sección Filtros de exclusión, haga clic en Añadir condición de filtro.
- En el campo Nombre del recurso, introduce
sc1
. - En el campo API group (Grupo de APIs), introduce
storage.k8s.io
. - En el campo Object kind (Tipo de objeto), introduce
StorageClass
. - Haz clic en Guardar cambios.
Restaurar recursos con dos etiquetas
En este ejemplo se restauran los recursos que tienen las etiquetas key1:value1
y key2:value2
. Para seleccionar los recursos, se usa la restauración detallada InclusionFilters
.
gcloud
inclusionFilters:
- labels:
key1: value1
key2: value2
Consola
- Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
- En la sección Filtros de inclusión, haga clic en Añadir condición de filtro.
En la sección Etiquetas:
- Haz clic en Añadir etiqueta.
- En el campo Clave 1, introduce
key1
. - En el campo Valor 1, introduce
value1
. - Haz clic en Añadir etiqueta.
- En el campo Clave 2, introduce
key2
. - En el campo Valor 2, introduce
value2
.
Haz clic en Guardar cambios.
Excluir todos los recursos de algunos GroupKinds
En este ejemplo se restauran todos los recursos disponibles, excepto GroupKind ConfigMap
y storage.k8s.io/StorageClass
, mediante la restauración detallada ExclusionFilters
para excluir estos dos GroupKinds.
gcloud
exclusionFilters:
- groupKind:
resourceKind: ConfigMap
- groupKind:
resourceGroup: storage.k8s.io
resourceKind: StorageClass
Consola
- Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
- En la sección Filtros de exclusión, haga clic en Añadir condición de filtro.
- En el campo Object kind (Tipo de objeto), introduce
ConfigMap
. - Haz clic en Guardar cambios.
- En el campo Object kind (Tipo de objeto), introduce
- En la sección Filtros de exclusión, haga clic en Añadir condición de filtro.
- En el campo API group (Grupo de APIs), introduce
storage.k8s.io
. - En el campo Object kind (Tipo de objeto), introduce
StorageClass
. - Haz clic en Guardar cambios.
- En el campo API group (Grupo de APIs), introduce