En esta página, se describen los errores relacionados con el sistema que puedes experimentar cuando usas la Copia de seguridad para GKE, los aspectos que debes tener en cuenta cuando creas copias de seguridad de los recursos y los pasos para solucionar el problema.
Error 100010108: No se pudo crear una copia de seguridad de PersistentVolumeClaim. Falta la CMEK del plan de copias de seguridad para el disco encriptado
El error 100010108 se produce cuando se crean copias de seguridad de volúmenes con alcance regional y se exige la CMEK del plan de copia de seguridad porque el clúster de GKE hace referencia a un disco encriptado.
Comprende el error
Cuando se crean copias de seguridad de volúmenes con alcance regional, se exige la CMEK del plan de copia de seguridad si el clúster de GKE hace referencia a algún disco encriptado. Este es un requisito estricto para las copias de seguridad de volúmenes con alcance regional. Si el disco de origen está encriptado, la instantánea de ese disco solo es posible si se proporciona una CMEK del plan de copia de seguridad. Si tu plan de copia de seguridad no tiene esta configuración de CMEK, la creación de la instantánea fallará y verás un mensaje de error similar al siguiente:
failed to create snapshot as disk "pvc-1" is encrypted with CMEK "projects/proj1/locations/us-east1/keyRings/keyring1/cryptoKeys/key1/cryptoKeyVersions/1", but no Backup Plan CMEK is provided. Please add CMEK to the Backup Plan.
Pasos para solucionar problemas
- Identifica la configuración de CMEK faltante: El mensaje de error confirma que el PVC del que se crea una copia de seguridad está encriptado, pero la configuración del plan de copias de seguridad no tiene una clave de encriptación.
- Agrega una CMEK al plan de copia de seguridad: Actualiza la configuración de tu plan de copia de seguridad para incluir una clave de encriptación administrada por el cliente (CMEK). Esta clave se usará para encriptar los datos de la copia de seguridad, incluidas las copias de seguridad de volúmenes con alcance regional.
- Asegúrate de que se hayan otorgado los permisos adecuados: Verifica que el agente de servicio de Copia de seguridad para GKE (
service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com) tenga asignado el rolroles/cloudkms.cryptoKeyEncrypterDecrypterpara la CMEK recién agregada. - Vuelve a probar la operación de copia de seguridad: Una vez que se actualice el plan de copia de seguridad con la CMEK y se otorguen los permisos, vuelve a intentar la operación de copia de seguridad.
Error 100020102: CustomResourceDefinition tiene un esquema no válido: versión de API v1beta1 no compatible
El error 100020102 se produce cuando falla un intento de crear una copia de seguridad de un CustomResourceDefinition que se aplicó originalmente como una versión de apiextensions.k8s.io/v1beta1 porque carece del esquema estructural que se requiere en la versión de la API de apiextensions.k8s.io/v1. Este error genera el siguiente mensaje de error: CustomResourceDefinition - has an invalid schema. The resource was
originally applied as v1beta1, which has been removed from Kubernetes 1.22+.
Este error se produce porque se quitó la versión de la API de apiextensions.k8s.io/v1beta1 en la versión 1.22 de Google Kubernetes Engine. Para obtener más información sobre la eliminación de la API para
la versión 1.22 de GKE, consulta
Eliminaciones de la API para GKE v1.22.
Comportamiento de la operación de copia de seguridad en modo no permisivo
En el modo no permisivo o en un plan de copias de seguridad estricto, la operación de copia de seguridad falla si encuentra un recurso del que no se puede crear una copia de seguridad, como un CustomResourceDefinition que se creó con la API de v1beta1. Este error se produce porque el recurso no tiene el esquema estructural que requiere la API de v1. La presencia de este CustomResourceDefinition se considera un error crítico porque es posible que no se restablezca correctamente en un clúster más nuevo.
Para resolver este error, sigue estas instrucciones:
Ejecuta el comando
kubectl get crdpara identificar elCustomResourceDefinitionproblemático:kubectl get crd CRD_NAMEReemplaza
CRD_NAMEpor el nombre delCustomResourceDefinitionque aparece en el mensaje de error.En el resultado de YAML, confirma si
CustomResourceDefinitionse convirtió correctamente de la API devbeta1a la API dev1. Para ello, busca las siguientes condiciones:spec.versions: Ubica la condiciónspec.versionsrevisando cada versión que aparece en el campospec.versions. Si falta el camposchema.openAIV3Schemaen alguno de losspec.versions, elCustomResourceDefinitionno tiene un esquema estructural definido para esa versión.status.conditions: Ubica la condiciónstatus.conditionsbuscando la condicióntype:NonStructuralSchema. Si elstatusdestatus.conditionsestrue, se confirma explícitamente que el esquema no es estructural.
Actualiza la versión de la API de
CustomResourceDefinitionav1siguiendo estos pasos:Edita el
CustomResourceDefinitionexistente para que sea compatible con el estándarv1. Para ello, agrega un esquema estructural que defina cada campo y su tipo dentro del recurso personalizado. Para obtener más información sobre cómo agregar un esquema estructural, consulta Cómo especificar un esquema estructural.Aplica el manifiesto
v1compatible a tu clúster.
Si la actualización se realiza correctamente, vuelve a intentar la operación de copia de seguridad. De lo contrario, usa uno de los siguientes métodos para resolver el problema:
Borra el
CustomResourceDefinitionejecutando el comandokubectl delete crdsi no se usaCustomResourceDefinitionen el clúster.kubectl delete crd CRD_NAMEReemplaza
CRD_NAMEpor el nombre delCustomResourceDefinitionque deseas borrar.Habilita el modo permisivo en el plan de copia de seguridad, lo que permite que Copia de seguridad para GKE omita el recurso (incluido
CustomResourceDefinitionsen la versión de la API dev1beta1) y continúe con el resto de la operación de copia de seguridad. Para obtener más información sobre cómo habilitar el modo permisivo, consulta Habilita el modo permisivo en un plan de copia de seguridad.
Vuelve a intentar la operación de copia de seguridad. Si la operación sigue fallando, comunícate con Atención al cliente de Cloud para obtener más ayuda.
Error 100020103: No se pudieron consultar los recursos de la API
El error 100020103 se produce cuando la copia de seguridad para GKE no puede detectar servicios de la API de Kubernetes personalizados o agregados antes de crear una copia de seguridad, lo que genera un mensaje de error que indica Failed to query API resources. Please check if any API service
is unavailable by using 'kubectl get apiservice'. Esto sucede si un servicio de API agregado está mal configurado o si sus servicios y Pods de respaldo no están en buen estado o no se puede acceder a ellos. En el modo no permisivo o en un plan de copia de seguridad estricto,
la Copia de seguridad para GKE detiene la operación de copia de seguridad si encuentra un APIService no disponible
para evitar capturar un estado de clúster incompleto o incoherente.
Para resolver este error, sigue estas instrucciones:
Ejecuta el siguiente comando para identificar los servicios de API no disponibles:
kubectl get apiserviceEn el resultado, busca los servicios de API en los que la columna
AVAILABLEseaFalse.Inspecciona los detalles del
APIServicecon errores ejecutando el siguiente comando:kubectl describe apiservice APISERVICE_NAMEReemplaza
APISERVICE_NAMEpor el nombre del servicio de API con errores, por ejemplo,v1beta1.custom.metrics.k8s.io.En el resultado, revisa el campo
Serviceenspec.servicey la secciónConditionspara identificar el servicio de respaldo, su espacio de nombres y la causa de la falla (como la falta de extremos o un puerto de destino inaccesible).Usa uno de los siguientes métodos para resolver el error:
Restablece el servicio de respaldo: Verifica que el servicio de respaldo tenga extremos listos ejecutando el siguiente comando:
kubectl get endpoints -n NAMESPACE SERVICE_NAMEReemplaza lo siguiente:
NAMESPACE: Es el espacio de nombres del servicio de respaldo.SERVICE_NAME: Es el nombre del servicio de respaldo.
Verifica que los Pods que respaldan el servicio existan y estén en el estado
Running. Resuelve cualquier Pod que falle, errores de extracción de imágenes o configuraciones incorrectas de políticas de red que impidan que el tráfico llegue al servicio de respaldo.Borra un
APIServicehuérfano: Si elAPIServicepertenece a una aplicación, un operador o una herramienta de supervisión que se quitó o ya no se usa, borra elAPIServiceinactivo:kubectl delete apiservice APISERVICE_NAMEReemplaza
APISERVICE_NAMEpor el nombre del servicio de API huérfano.Habilita el modo permisivo: Si no puedes corregir o quitar de inmediato el servicio de API no disponible, habilita el modo permisivo en el plan de copias de seguridad. Cuando se habilita el modo permisivo, la Copia de seguridad para GKE continúa con la operación de copia de seguridad. Sin embargo, no se creará una copia de seguridad de los recursos que pertenezcan al grupo de APIs no disponible. Para obtener más información sobre cómo habilitar el modo permisivo, consulta Habilita el modo permisivo en un plan de copia de seguridad.
Vuelve a intentar la operación de copia de seguridad. Si la operación sigue fallando, comunícate con Atención al cliente de Cloud para obtener más ayuda.
Error 100040102: No se encontró el espacio de nombres
El error 100040102 se produce cuando falla un intento de realizar una operación de copia de seguridad
porque no se puede encontrar un espacio de nombres especificado en el permiso de la copia de seguridad dentro del
clúster. El agente de Copia de seguridad para GKE no pudo ubicar uno o más espacios de nombres
que se indicaron de forma explícita en el campo selectedNamespaces de la configuración
de BackupPlan. Copia de seguridad para GKE requiere que todos los espacios de nombres especificados estén presentes en el clúster en el momento en que se inicia la operación de copia de seguridad. Si no se encuentra
el espacio de nombres, se produce el siguiente mensaje de error:
Namespace [NAMESPACE_NAME] is not found.
Para resolver este problema, sigue estas instrucciones:
Verifica que el espacio de nombres se haya ingresado correctamente. Para ello, revisa la lista
selectedNamespacesen tu configuración deBackupPlan.Para confirmar que el espacio de nombres que se indica en el mensaje de error existe, ejecuta el comando
kubectl get namespace:kubectl get namespace NAMESPACE_NAMEReemplaza
NAMESPACE_NAMEpor el nombre del espacio de nombres que se indica en el mensaje de error.Si el espacio de nombres no existe, aparecerá un mensaje que indica que no se encontró, por ejemplo,
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not found.Corrige el objeto
BackupPlan. Si el espacio de nombres se escribió mal, actualizaBackupPlancon el nombre correcto. Si el espacio de nombres realmente ya no existe y no es necesario hacer una copia de seguridad, quítalo de la listaselectedNamespacesen la configuración deBackupPlan.Vuelve a intentar la operación de copia de seguridad después de realizar las correcciones necesarias en el
BackupPlany, luego, inicia una copia de seguridad nueva.
Si la operación sigue fallando, comunícate con Atención al cliente de Cloud para obtener más ayuda.