En esta página, se describen los errores relacionados con el sistema que puedes experimentar cuando usas 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 100020102: Modo permisivo estricto: No se pudo crear una copia de seguridad de la CRD. No se admite la versión de la API de v1beta1
.
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: Strict permissive mode - Failed to backup CRD - Unsupported v1beta1 API Version
.
Este error se produce porque se quitó la versión de la API de apiextensions.k8s.io/v1
en la versión 1.22 de Google Kubernetes Engine. Si deseas 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 el 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:
Para identificar el
CustomResourceDefinition
problemático, ejecuta el comandokubectl get crd
:kubectl get crd CRD_NAME
Reemplaza
CRD_NAME
por el nombre delCustomResourceDefinition
que aparece en el mensaje de error.En el resultado de YAML, confirma si
CustomResourceDefinition
se convirtió correctamente de la API devbeta1
a la API dev1
. Para ello, busca las siguientes condiciones:spec.versions
: Busca la condiciónspec.versions
en cada versión que se muestra en el campospec.versions
. Si falta el camposchema.openAIV3Schema
en alguno de losspec.versions
, elCustomResourceDefinition
no tiene un esquema estructural definido para esa versión.status.conditions
: Busca la condiciónstatus.conditions
encontrando la condicióntype:NonStructuralSchema
. Si elstatus
destatus.conditions
estrue
, se confirma explícitamente que el esquema no es estructural.
Para actualizar la versión de la API de
CustomResourceDefinition
av1
, sigue estos pasos:Edita el
CustomResourceDefinition
existente 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
v1
compatible 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
CustomResourceDefinition
ejecutando el comandokubectl delete crd
si no se usa en el clúster.CustomResourceDefinition
kubectl delete crd CRD_NAME
Reemplaza
CRD_NAME
por el nombre delCustomResourceDefinition
que 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
CustomResourceDefinitions
en 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 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 alcance 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 enumeraron 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 muestra 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, consulta la lista
selectedNamespaces
en 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_NAME
Reemplaza
NAMESPACE_NAME
por 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, actualizaBackupPlan
con 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 listaselectedNamespaces
en la configuración deBackupPlan
.Vuelve a intentar la operación de copia de seguridad después de realizar las correcciones necesarias en
BackupPlan
y, luego, inicia una nueva copia de seguridad.
Si la operación sigue fallando, comunícate con Atención al cliente de Cloud para obtener más ayuda.