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 copias 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.