Soluciona problemas del sistema en Copia de seguridad para GKE

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:

  1. Para identificar el CustomResourceDefinition problemático, ejecuta el comando kubectl get crd:

    kubectl get crd CRD_NAME
    

    Reemplaza CRD_NAME por el nombre del CustomResourceDefinition que aparece en el mensaje de error.

  2. En el resultado de YAML, confirma si CustomResourceDefinition se convirtió correctamente de la API de vbeta1 a la API de v1. Para ello, busca las siguientes condiciones:

    1. spec.versions: Busca la condición spec.versions en cada versión que se muestra en el campo spec.versions. Si falta el campo schema.openAIV3Schema en alguno de los spec.versions, el CustomResourceDefinition no tiene un esquema estructural definido para esa versión.

    2. status.conditions: Busca la condición status.conditions encontrando la condición type:NonStructuralSchema. Si el status de status.conditions es true, se confirma explícitamente que el esquema no es estructural.

  3. Para actualizar la versión de la API de CustomResourceDefinition a v1, sigue estos pasos:

    1. Edita el CustomResourceDefinition existente para que sea compatible con el estándar v1. 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.

    2. Aplica el manifiesto v1 compatible a tu clúster.

  4. 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 comando kubectl delete crd si no se usa en el clúster.CustomResourceDefinition

      kubectl delete crd CRD_NAME
      

      Reemplaza CRD_NAME por el nombre del CustomResourceDefinitionque 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 de v1beta1) 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.

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

¿Qué sigue?