En esta página se describen los errores relacionados con el sistema que pueden producirse al usar Backup para GKE, los aspectos que debes tener en cuenta al crear copias de seguridad de los recursos y los pasos para solucionar el problema.
Error 100020102: modo permisivo estricto. No se ha podido crear una copia de seguridad de CRD. Versión de la API v1beta1
no compatible.
El error 100020102
se produce cuando se intenta crear una copia de seguridad de un CustomResourceDefinition
que se aplicó originalmente como una versión apiextensions.k8s.io/v1beta1
, pero no se puede porque
carece del esquema estructural necesario en la versión de la API 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 la versión de la API apiextensions.k8s.io/v1
se ha retirado en la versión 1.22 de Google Kubernetes Engine. Para obtener más información sobre la retirada de la API en la versión 1.22 de GKE, consulta el artículo Retirada de APIs en GKE 1.22.
Comportamiento de las operaciones 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 haya creado con la API v1beta1
. Este error se produce porque el recurso no tiene el esquema estructural que requiere la API v1
. La presencia de este CustomResourceDefinition
se considera un error crítico porque es posible que no se restaure correctamente en un clúster más reciente.
Para resolver este error, siga estas instrucciones:
Identifica el
CustomResourceDefinition
problemático ejecutando el comandokubectl get crd
:kubectl get crd CRD_NAME
Sustituye
CRD_NAME
por el nombre delCustomResourceDefinition
del mensaje de error.En el resultado de YAML, comprueba si
CustomResourceDefinition
se ha convertido correctamente de la APIvbeta1
a la APIv1
buscando las siguientes condiciones:spec.versions
: busca la condiciónspec.versions
consultando cada versión que aparece en el campospec.versions
. Si falta el camposchema.openAIV3Schema
en alguno de losspec.versions
, significa queCustomResourceDefinition
no tiene un esquema estructural definido para esa versión.status.conditions
: busca la condiciónstatus.conditions
en la condicióntype:NonStructuralSchema
. Si elstatus
destatus.conditions
estrue
, se confirma explícitamente que el esquema no es estructural.
Actualiza la versión de la API
CustomResourceDefinition
av1
siguiendo estos pasos:Edita el
CustomResourceDefinition
para que sea compatible con el estándarv1
añadiendo un esquema estructural que defina cada campo y su tipo en el recurso personalizado. Para obtener más información sobre cómo añadir un esquema estructural, consulta Especificar un esquema estructural.Aplica el manifiesto
v1
compatible a tu clúster.
Si la actualización se realiza correctamente, vuelve a intentar crear la copia de seguridad. De lo contrario, utilice uno de los siguientes métodos para resolver el problema:
Elimina el
CustomResourceDefinition
ejecutando el comandokubectl delete crd
si elCustomResourceDefinition
no se está usando en el clúster.kubectl delete crd CRD_NAME
Sustituye
CRD_NAME
por el nombre delCustomResourceDefinition
que quieras eliminar.Habilita el modo permisivo en el plan de copia de seguridad, lo que permite que la función de copia de seguridad de GKE omita el recurso (incluido
CustomResourceDefinitions
en la versión de la APIv1beta1
) 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 el artículo Habilitar 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, ponte en contacto con Cloud Customer Care para obtener más ayuda.