Resolver problemas de erros do sistema no Backup para GKE

Nesta página, descrevemos erros relacionados ao sistema que podem ocorrer ao usar o Backup para GKE, o que considerar ao fazer backup de recursos e as etapas para resolver o problema.

Erro 100020102: modo permissivo estrito. Falha ao fazer backup do CRD. Versão da API v1beta1 não compatível.

O erro 100020102 ocorre quando uma tentativa de fazer backup de um CustomResourceDefinition que foi originalmente aplicado como uma versão apiextensions.k8s.io/v1beta1 falha porque não tem o esquema estrutural necessário na versão da API apiextensions.k8s.io/v1. Essa falha resulta na seguinte mensagem de erro: Strict permissive mode - Failed to backup CRD - Unsupported v1beta1 API Version.

Esse erro ocorre porque a versão da API apiextensions.k8s.io/v1 foi removida no Google Kubernetes Engine versão 1.22. Para mais informações sobre a remoção da API para a versão 1.22 do GKE, consulte Remoções de API para o GKE v1.22.

Comportamento da operação de backup no modo não permissivo

No modo não permissivo ou em um plano de backup estrito, a operação de backup falha se encontrar um recurso que não pode ser armazenado em backup, como um CustomResourceDefinition criado com a API v1beta1. Esse erro ocorre porque o recurso não tem o esquema estrutural exigido pela API v1. A presença desse CustomResourceDefinition é considerada um erro crítico porque pode não ser restaurado corretamente em um cluster mais recente.

Para resolver esse erro, siga estas instruções:

  1. Identifique o CustomResourceDefinition problemático executando o comando kubectl get crd:

    kubectl get crd CRD_NAME
    

    Substitua CRD_NAME pelo nome do CustomResourceDefinition na mensagem de erro.

  2. Na saída YAML, confirme se o CustomResourceDefinition foi convertido corretamente da API vbeta1 para a API v1 localizando as seguintes condições:

    1. spec.versions: localize a condição spec.versions examinando cada versão listada no campo spec.versions. Se algum dos spec.versions não tiver o campo schema.openAIV3Schema, o CustomResourceDefinition não terá um esquema estrutural definido para essa versão.

    2. status.conditions: localize a condição status.conditions encontrando a condição type:NonStructuralSchema. Se o status do status.conditions for true, isso confirma explicitamente que o esquema não é estrutural.

  3. Faça upgrade da versão da API CustomResourceDefinition para v1 seguindo estas etapas:

    1. Edite o CustomResourceDefinition atual para torná-lo compatível com o padrão v1. Para isso, adicione um esquema estrutural que defina cada campo e seu tipo no recurso personalizado. Para mais informações sobre como adicionar um esquema estrutural, consulte Como especificar um esquema estrutural.

    2. Aplique o manifesto v1 compatível ao cluster.

  4. Se o upgrade for bem-sucedido, tente fazer o backup novamente. Caso contrário, use um dos seguintes métodos para resolver o problema:

    • Exclua o CustomResourceDefinition executando o comando kubectl delete crd se ele não estiver sendo usado no cluster.CustomResourceDefinition

      kubectl delete crd CRD_NAME
      

      Substitua CRD_NAME pelo nome do CustomResourceDefinitionque você quer excluir.

    • Ative o modo permissivo no plano de backup, o que permite que o Backup para GKE pule o recurso, incluindo CustomResourceDefinitions na versão da API v1beta1, e continue com o restante da operação de backup. Para mais informações sobre como ativar o modo permissivo, consulte Ativar o modo permissivo em um plano de backup.

  5. Tente fazer o backup novamente. Se a operação continuar falhando, entre em contato com o Cloud Customer Care para receber mais ajuda.

A seguir