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:
Identifique o
CustomResourceDefinition
problemático executando o comandokubectl get crd
:kubectl get crd CRD_NAME
Substitua
CRD_NAME
pelo nome doCustomResourceDefinition
na mensagem de erro.Na saída YAML, confirme se o
CustomResourceDefinition
foi convertido corretamente da APIvbeta1
para a APIv1
localizando as seguintes condições:spec.versions
: localize a condiçãospec.versions
examinando cada versão listada no campospec.versions
. Se algum dosspec.versions
não tiver o camposchema.openAIV3Schema
, oCustomResourceDefinition
não terá um esquema estrutural definido para essa versão.status.conditions
: localize a condiçãostatus.conditions
encontrando a condiçãotype:NonStructuralSchema
. Se ostatus
dostatus.conditions
fortrue
, isso confirma explicitamente que o esquema não é estrutural.
Faça upgrade da versão da API
CustomResourceDefinition
parav1
seguindo estas etapas:Edite o
CustomResourceDefinition
atual para torná-lo compatível com o padrãov1
. 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.Aplique o manifesto
v1
compatível ao cluster.
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 comandokubectl delete crd
se ele não estiver sendo usado no cluster.CustomResourceDefinition
kubectl delete crd CRD_NAME
Substitua
CRD_NAME
pelo nome doCustomResourceDefinition
que 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 APIv1beta1
, 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.
Tente fazer o backup novamente. Se a operação continuar falhando, entre em contato com o Cloud Customer Care para receber mais ajuda.