En esta página se describen los errores de permisos que pueden surgir al usar Backup para GKE, los aspectos que debes tener en cuenta al realizar la acción y cómo resolver el error.
Error 100010101: no se ha podido crear una copia de seguridad de PersistentVolumeClaim. Falta el enlace de gestión de identidades y accesos del proyecto de inquilino
El error 100010101
se produce cuando se intenta crear una copia de seguridad de un PersistentVolumeClaim
y se produce un fallo debido a que falta un enlace de gestión de identidades y accesos en tu proyecto de arrendatario, lo que provoca que se muestre el mensaje de error Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project
.
Backup for GKE crea capturas del disco persistente de tu clúster de GKE. Las instantáneas se encuentran en tu Google Cloud proyecto, también conocido como proyecto del cliente, y Google Cloud las crea en un proyecto de arrendatario que gestiona. El proyecto de arrendatario se encuentra en la organización google.com
y está separado de tu organización.
El agente de servicio del proyecto de inquilino requiere permisos específicos para usar la clave de cifrado gestionada por el cliente (CMEK) que cifra el disco persistente al que hace referencia el PersistentVolumeClaim
de tu clúster. Este permiso cifra y descifra los datos de la captura. Si el agente de servicio service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
no tiene el rol roles/cloudkms.cryptoKeyEncrypterDecrypter
en la clave CMEK del disco, la operación de copia de seguridad fallará.
Para resolver este error, siga estas instrucciones:
Verifica que tienes los permisos de gestión de identidades y accesos suficientes para modificar las políticas de gestión de identidades y accesos de la clave de Cloud Key Management Service en la Google Cloud consola
roles/cloudkms.admin
o enroles/owner
.Busca el agente de servicio de Compute Engine del proyecto de arrendatario con el valor
TENANT_PROJECT_NUMBER
del mensajestatus reason
de la operación de copia de seguridad fallida. Por ejemplo,service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
.Busca la siguiente información de CMEK que se ha usado para tu disco persistente cifrado:
Nombre de la clave: el nombre de la clave de cifrado.
Conjunto de claves: el nombre del conjunto de claves en el que se encuentra tu clave.
Ubicación: la Google Cloud ubicación de la clave. Por ejemplo,
global
ous-central1
.
Para asignar el rol
roles/cloudkms.cryptoKeyEncrypterDecrypter
al agente de servicio de Compute Engine del proyecto de inquilino en tu CMEK, ejecuta el comandogcloud kms keys add-iam-policy-binding
con la CLI de Google Cloud:gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Haz los cambios siguientes:
KEY_NAME
: el nombre de tu clave de cifrado.KEY_RING
: el nombre del conjunto de claves.LOCATION
: la Google Cloud ubicación de tu clave. Por ejemplo,global
ous-central1
.TENANT_PROJECT_NUMBER
: el número del proyecto de inquilino que has obtenido del mensajestatus reason
de tu operación de copia de seguridad fallida.
Si el comando se ejecuta correctamente, el resultado será similar al siguiente:
- members: - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter
Vuelve a probar la operación de copia de seguridad. Si la operación sigue sin completarse, ponte en contacto con el equipo de Asistencia de Google Cloud para obtener más ayuda.
Error 100010104: no se ha podido crear una copia de seguridad de PersistentVolumeClaim. Se ha infringido la restricción de la política de organización al crear la instantánea.
El error 100010104
se produce cuando se intenta crear una copia de seguridad de un PersistentVolumeClaim
y se produce un error debido a una infracción de las restricciones de la política de la organización durante la creación de la instantánea, lo que provoca que se muestre el mensaje de error Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot
.
Backup for GKE crea capturas del disco persistente de tu clúster de GKE. Las capturas se encuentran en tu proyecto Google Cloud , también conocido como proyecto de consumidor, y se crean en un proyecto de cliente gestionado por Google Cloud. El proyecto de arrendatario se encuentra en la organización google.com
y está separado de tu organización.
La política de tu organización determina dónde puedes crear recursos de almacenamiento. El error Constraint constraints/compute.storageResourceUseRestrictions violated
significa que un recurso o una instantánea infringe la política porque se ha creado en un proyecto de un arrendatario que no forma parte de tu estructura organizativa permitida. Como el proyecto de inquilino está dentro de la organización de Google, queda fuera de la política que has definido, lo que provoca que falle la copia de seguridad.
Para resolver este error, siga estas instrucciones:
Busca la política de organización que implementa la restricción
constraints/compute.storageResourceUseRestrictions
. Para obtener más información sobre cómo ver las políticas de la organización mediante la consola Google Cloud , consulta Ver políticas de la organización.Modifica la política
constraints/compute.storageResourceUseRestrictions
para incluir la carpeta del proyecto de inquilinofolders/77620796932
que usa Backup for GKE en su lista de permitidos.Guarda los cambios en la política después de añadir la carpeta a la lista de permitidas.
Vuelve a probar la operación de copia de seguridad después de que se actualice y se propague la política de la organización, lo que suele tardar unos minutos. La copia de seguridad debe realizarse sin infringir las restricciones de uso de recursos de almacenamiento. Si la operación sigue sin completarse, ponte en contacto con Cloud Customer Care para obtener más ayuda.
Error 100010106: No se ha podido crear una copia de seguridad de PersistentVolumeClaim. Falta un enlace de gestión de identidades y accesos para el agente de servicio de la función de copia de seguridad de GKE
El error 100010106
se produce cuando no se puede crear una copia de seguridad de un PersistentVolumeClaim
porque falta un enlace de gestión de identidades y accesos para el agente de servicio de Backup for GKE, lo que provoca que se muestre el mensaje de error Failed to backup PVC - Missing IAM binding for Backup for GKE service agent
.
Backup para GKE requiere permisos para usar la clave de cifrado gestionada por el cliente (CMEK) de tu BackupPlan
para cifrar y descifrar volúmenes de Persistent Disk. Si el agente de servicio de la función de copia de seguridad de GKE no tiene el rol roles/cloudkms.cryptoKeyEncrypterDecrypter
en tu BackupPlan
CMEK, las operaciones de copia de seguridad fallarán.
Para resolver este error, siga estas instrucciones:
Identifica el agente de servicio de la función de copia de seguridad de GKE gestionada por Google específico de tu proyecto. Por ejemplo,
service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com
. Puedes encontrar el número de tu proyecto de las siguientes formas:Usa el Google Cloud panel de control del proyecto en la Google Cloud consola.
Ejecuta el comando
gcloud projects describe
con Google Cloud CLI:gcloud projects describe PROJECT_ID –format="value(projectNumber)"
Sustituye
PROJECT_ID
por el nombre único de tu proyecto.
Identifica los siguientes detalles de CMEK:
Nombre de la clave: el nombre de la clave de cifrado.
Conjunto de claves: el nombre del conjunto de claves en el que se encuentra tu clave.
Ubicación: la Google Cloud ubicación en la que se encuentra tu
BackupPlan
CMEK. Por ejemplo,global
ous-central1
.
Para conceder al agente de servicio de Backup for GKE el rol
roles/cloudkms.cryptoKeyEncrypterDecrypter
en tu CMEK, usa la CLI de Google Cloud para ejecutar el comandogcloud kms keys add-iam-policy-binding
:gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Haz los cambios siguientes:
KEY_NAME
: el nombre de tu clave de cifrado.KEY_RING
: el nombre del conjunto de claves.LOCATION
: la Google Cloud ubicación de tu clave. Por ejemplo,global
ous-central1
.PROJECT_NUMBER
: tu número de proyecto Google Cloud .
Verifica que tengas los permisos de Gestión de Identidades y Accesos necesarios en la clave de Cloud Key Management Service. Por ejemplo,
roles/cloudkms.admin
oroles/owner
.Verifica que tienes los permisos concedidos. En la salida del comando
gcloud kms keys add-iam-policy-binding
anterior, busca una entrada similar a la siguiente:-members: -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter
Vuelve a probar la operación de copia de seguridad después de conceder los permisos necesarios. Si la operación no se completa correctamente, ponte en contacto con Cloud Customer Care para obtener más ayuda.
Error 100010107: no se ha podido crear una copia de seguridad de PersistentVolumeClaim. Falta el enlace de gestión de identidades y accesos de la cuenta de servicio del agente (KCP).
El error 100010107
se produce cuando intentas realizar una operación de copia de seguridad de Backup for GKE y el
agente de servicio del clúster de Google Kubernetes Engine no tiene acceso a tu
clave de cifrado gestionada por el cliente (CMEK), lo que provoca que se muestre el mensaje
Failed to backup PVC - Missing IAM binding - agent service account (KCP)
.
El agente de servicio del clúster de Google Kubernetes Engine, que suele tener el formato service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
,
es esencial para que tu clúster de GKE interactúe con los servicios de Google Cloud. Cuando tu plan de copias de seguridad usa una clave de cifrado gestionada por el cliente (CMEK).
Este agente de servicio necesita permisos para cifrar y descifrar tus datos de copia de seguridad
con tu CMEK. Si falta el rol roles/cloudkms.cryptoKeyEncrypterDecrypter
en tu CMEK, las operaciones de copia de seguridad iniciadas desde el clúster fallarán y se mostrará un error permission denied
.
Para solucionar este error, sigue estas instrucciones:
Verifica que tienes los permisos correctos para modificar las políticas de gestión de identidades y accesos en la clave de Cloud Key Management Service. Por ejemplo,
cloudkms.admin
oroles/owner
.Identifica el agente de servicio del clúster de Google Kubernetes Engine. Este agente de servicio se crea y gestiona automáticamente por Google Cloud para tus clústeres de GKE. Por ejemplo,
service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
. Necesitas el número de proyecto para crear la cuenta de servicio completa. Para encontrar el número de tu proyecto, utiliza uno de los siguientes métodos:Usa el Google Cloud panel de control del proyecto en la Google Cloud consola.
Ejecuta el comando
gcloud projects describe
con Google Cloud CLI:gcloud projects describe PROJECT_ID –-format="value(projectNumber)"
Sustituye
PROJECT_ID
por el ID del proyecto.
Busca la siguiente información de CMEK:
Nombre de la clave: el nombre de la clave de cifrado.
Conjunto de claves: el nombre del conjunto de claves en el que se encuentra tu clave.
Ubicación: la Google Cloud ubicación de la clave. Por ejemplo,
global
ous-central1
.
Concede el rol
roles/cloudkms.cryptoKeyEncrypterDecrypter
a nivel de CMEK. El agente de servicio de Google Kubernetes Engine necesita permisos en tu clave de cifrado. Para asignar el rolroles/cloudkms.cryptoKeyEncrypterDecrypter
a tu CMEK, usa Google Cloud CLI para ejecutar el comandogcloud kms key add-iam-policy-binding
:gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Haz los cambios siguientes:
KEY_NAME
: el nombre de tu clave de cifrado.KEY_RING
: el nombre del conjunto de claves.LOCATION
: la Google Cloud ubicación de tu clave. Por ejemplo,global
ous-central1
.PROJECT_NUMBER
: el nombre del proyecto.
El resultado debería ser similar al siguiente:
- members: - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter ```
Vuelve a intentar la operación de Backup for GKE. Si la operación sigue fallando, ponte en contacto con Cloud Customer Care para obtener más ayuda.
Error 100020101: No se ha podido crear una copia de seguridad de PersistentVolumeClaim. PersistentVolumeClaim está vinculado a un tipo de PersistentVolume no admitido.
El error 100020101
se produce cuando se intenta crear una copia de seguridad de un PersistentVolumeClaim
y se produce un error porque el PersistentVolumeClaim
está vinculado a un tipo de PersistentVolume
no admitido. El error da como resultado el siguiente mensaje:
PersistentVolumeClaims are bound to PersistentVolumes of unsupported types and cannot be backed up.
Este error se produce cuando tu operación de Copia de seguridad de GKE encuentra un PersistentVolumeClaim
que está vinculado a un PersistentVolume
que usa un tipo de volumen que no es compatible con la copia de seguridad de datos de Copia de seguridad de GKE. La función de copia de seguridad de GKE admite principalmente la creación de copias de seguridad de datos de volúmenes de discos persistentes. Si un PersistentVolumeClaim
está enlazado a un PersistentVolume
que no es un disco persistente, la operación de copia de seguridad falla para los datos del PersistentVolumeClaim
.
Para solucionar este error, sigue estas instrucciones:
Para ver todos los
PersistentVolumeClaims
y losPersistentVolumes
que están vinculados a ellos, ejecuta el comandokubectl get pvc
. Consulta esta lista para identificar losPersistentVolumes
que están respaldados por tipos de volúmenes no admitidos.kubectl get pvc --all-namespaces -o wide
Para determinar el tipo de volumen de
PersistentVolume
que está respaldado por un tipo de volumen no admitido por Backup para GKE, ejecuta el comandokubectl describe pv
:kubectl describe pv PERSISTENT_VOLUME_NAME
Haz los cambios siguientes:
PERSISTENT_VOLUME_NAME
: el nombre dePersistentVolume
que tiene un tipo de volumen no admitido en la columnaVOLUME
de la salida del paso anterior.En la salida, usa los campos
Source
yDriver
para obtener los detalles del proveedor de volumen:En el caso de los discos persistentes compatibles, el resultado es similar a
Source.Driver: pd.csi.storage.gke.io
oSource.Type:GCEPersistentDisk
.En el caso de los tipos no admitidos que provocan el error, el resultado sería un controlador de disco no persistente, por ejemplo,
Source.Driver:filestore.csi.storage.gke.io
.
Para solucionar el error, siga uno de estos métodos:
Migrar a un volumen de Persistent Disk: recomendamos este método para hacer copias de seguridad completas de los datos. Si necesitas crear una copia de seguridad de los datos del volumen, debes usar un disco persistente, lo que implica migrar los datos del tipo de volumen no admitido a un nuevo volumen CSI de disco persistente. Si necesitas ayuda para migrar un volumen de disco persistente, ponte en contacto con Cloud Customer Care.
Habilita el modo permisivo en Backup for GKE: te recomendamos este método si no es necesario crear copias de seguridad de datos de volúmenes no admitidos. Si no es posible o necesario migrar los datos (por ejemplo, si el volumen está respaldado por un servicio externo y tienes previsto volver a conectarlo durante la operación de restauración), puedes configurar tu plan de copias de seguridad de Backup for GKE para que la copia de seguridad se cree en modo permisivo. Para obtener más información sobre cómo habilitar el modo permisivo, consulta el artículo Habilitar el modo permisivo en un plan de copia de seguridad.
Vuelve a intentar la operación de Backup for GKE. En función del método que hayas elegido para resolver el error, la operación de Backup for GKE se comporta de las siguientes formas:
Si has migrado a un volumen de Persistent Disk, la copia de seguridad debería crearse correctamente para el volumen, incluidos sus datos.
Si has habilitado el modo permisivo, la operación de copia de seguridad debería completarse correctamente, pero no se creará una copia de seguridad de los datos de los volúmenes no compatibles.
Si la operación sigue fallando, ponte en contacto con el equipo de Asistencia de Google Cloud para obtener más ayuda.
Error 100020104: No se ha podido crear una copia de seguridad de PersistentVolumeClaim. PersistentVolumeClaim no está vinculado a PersistentVolume
El error 100020104
se produce cuando no se puede crear una copia de seguridad de un PersistentVolumeClaim
porque no está vinculado a un PersistentVolume
.PersistentVolumeClaim
El error da como resultado el siguiente mensaje: Failed to backup PVC - PVC Not Bound to a Persistent Volume
.
Este error se produce cuando tu operación de Backup for GKE intenta crear una copia de seguridad de un PersistentVolumeClaim
que no se ha vinculado correctamente a un PersistentVolume
.
Un PersistentVolumeClaim
debe estar enlazado a un PersistentVolume
para que una carga de trabajo de consumo, como un pod, pueda usarlo y, posteriormente, Copia de seguridad de GKE pueda crear una copia de seguridad del mismo. Si el PersistentVolumeClaim
permanece en el estado Pending
,
significa que no hay ningún PersistentVolume
adecuado disponible o que no se puede
proporcionar o vincular, lo que provoca que la operación de copia de seguridad falle. Una razón habitual por la que un PersistentVolumeClaim
permanece sin enlazar es cuando su StorageClass
asociado usa un modo de enlace WaitForFirstConsumer
, pero ningún pod u otra carga de trabajo intenta consumir el PersistentVolumeClaim
.
Para solucionar este error, sigue estas instrucciones:
Para comprobar el estado de todos los
PersistentVolumeClaims
del clúster e identificar losPersistentVolumeClaim
no enlazados, ejecuta el comandokubectl get pvc
:kubectl get pvc --all-namespaces | grep `Pending`
Una vez que hayas identificado el
PersistentVolumeClaim
que no está enlazado a unPersistentVolume
, recupera información sobre elPersistentVolumeClaim
no enlazado ejecutando el comandokubectl describe pvc
:kubectl describe pvc PVC_NAME -n NAMESPACE_NAME
Haz los cambios siguientes:
PVC_NAME
: el nombre delPersistentVolumeClaim
del que no se ha podido crear una copia de seguridad.NAMESPACE_NAME
: el nombre del espacio de nombres en el que se encuentraPersistentVolumeClaim
.
Una vez que aparezca la descripción, usa los campos
Status
yEvents
para determinar si elPersistentVolumeClaim
está vinculado a unPersistentVolume
. Si sigues sin poder determinar por qué no se ha vinculado elPersistentVolumeClaim
a unPersistentVolume
o no puedes resolver el problema identificado, puedes habilitar el modo permisivo en tu plan de copia de seguridad. Para obtener más información sobre cómo habilitar el modo permisivo, consulta el artículo Habilitar el modo permisivo en un plan de copias de seguridad.