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
CustomResourceDefinitionproblemático executando o comandokubectl get crd:kubectl get crd CRD_NAMESubstitua
CRD_NAMEpelo nome doCustomResourceDefinitionna mensagem de erro.Na saída YAML, confirme se o
CustomResourceDefinitionfoi convertido corretamente da APIvbeta1para a APIv1localizando as seguintes condições:spec.versions: localize a condiçãospec.versionsexaminando cada versão listada no campospec.versions. Se algum dosspec.versionsnão tiver o camposchema.openAIV3Schema, oCustomResourceDefinitionnão terá um esquema estrutural definido para essa versão.status.conditions: localize a condiçãostatus.conditionsencontrando a condiçãotype:NonStructuralSchema. Se ostatusdostatus.conditionsfortrue, isso confirma explicitamente que o esquema não é estrutural.
Faça upgrade da versão da API
CustomResourceDefinitionparav1seguindo estas etapas:Edite o
CustomResourceDefinitionatual 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
v1compatí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
CustomResourceDefinitionexecutando o comandokubectl delete crdse ele não estiver sendo usado no cluster.CustomResourceDefinitionkubectl delete crd CRD_NAMESubstitua
CRD_NAMEpelo nome doCustomResourceDefinitionque você quer excluir.Ative o modo permissivo no plano de backup, o que permite que o Backup para GKE pule o recurso, incluindo
CustomResourceDefinitionsna 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.
Erro 100040102: namespace não encontrado
O erro 100040102 ocorre quando uma tentativa de realizar uma operação de backup falha
porque um namespace especificado no escopo do backup não pode ser encontrado no
cluster. O agente do Backup para GKE não conseguiu localizar um ou mais namespaces
que foram listados explicitamente no campo selectedNamespaces da configuração
BackupPlan. O Backup para GKE exige que todos os namespaces especificados estejam presentes
no cluster no momento em que a operação de backup é iniciada. Se o namespace não for encontrado, a seguinte mensagem de erro vai aparecer:
Namespace [NAMESPACE_NAME] is not found.
Para resolver esse problema, siga estas instruções:
Verifique se o namespace foi inserido corretamente conferindo a lista
selectedNamespacesna configuração doBackupPlan.Confirme se o namespace informado na mensagem de erro existe executando o comando
kubectl get namespace:kubectl get namespace NAMESPACE_NAMESubstitua
NAMESPACE_NAMEpelo nome do namespace informado na mensagem de erro.Se o namespace não existir, uma mensagem vai aparecer informando que ele não foi encontrado, por exemplo,
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not found.Corrija o
BackupPlan. Se o namespace estiver com erro de ortografia, atualize oBackupPlancom o nome correto. Se o namespace realmente não existir mais e não precisar de backup, remova-o da listaselectedNamespacesna configuraçãoBackupPlan.Tente fazer o backup novamente depois de fazer as correções necessárias no
BackupPlane inicie um novo backup.
Se a operação continuar falhando, entre em contato com o Cloud Customer Care para receber mais ajuda.