Esta página descreve os erros relacionados com o sistema que pode ter quando usa o Backup for GKE, aspetos a ter em conta quando faz uma cópia de segurança dos recursos e os passos para resolver o problema.
Erro 100020102: modo permissivo rigoroso: falha na cópia de segurança do CRD: versão da API v1beta1
não suportada
O erro 100020102
ocorre quando uma tentativa de fazer uma cópia de segurança 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
. Este erro resulta na seguinte mensagem de erro:
Strict permissive mode - Failed to backup CRD - Unsupported v1beta1 API Version
.
Este erro ocorre porque a versão da API apiextensions.k8s.io/v1
foi removida na versão 1.22 do Google Kubernetes Engine. Para mais informações sobre a remoção da API para a versão 1.22 do GKE, consulte o artigo Remoções de APIs para o GKE v1.22.
Comportamento da operação de cópia de segurança no modo não permissivo
No modo não permissivo ou num plano de cópia de segurança rigoroso, a operação de cópia de segurança falha se encontrar um recurso do qual não é possível fazer uma cópia de segurança, como um CustomResourceDefinition
que foi criado com a API v1beta1
. Este erro ocorre porque o recurso não tem o esquema estrutural exigido pela API v1
. A presença deste CustomResourceDefinition
é considerada um erro crítico porque pode não ser restaurado corretamente para um cluster mais recente.
Para resolver este 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
ao procurar em cada versão apresentada no campospec.versions
. Se algum dosspec.versions
não tiver o camposchema.openAIV3Schema
, oCustomResourceDefinition
não tem um esquema estrutural definido para essa versão.status.conditions
: localize a condiçãostatus.conditions
encontrando a condiçãotype:NonStructuralSchema
. Se o valor destatus.conditions
forstatus
, confirma explicitamente que o esquema não é estrutural.true
Atualize a versão da API
CustomResourceDefinition
parav1
através dos seguintes passos:Edite o
CustomResourceDefinition
existente para o tornar compatível com a normav1
adicionando um esquema estrutural que defina todos os campos e o respetivo tipo no recurso personalizado. Para mais informações sobre como adicionar um esquema estrutural, consulte o artigo Especificar um esquema estrutural.Aplique o manifesto
v1
compatível ao seu cluster.
Se a atualização for bem-sucedida, tente novamente a operação de cópia de segurança. Caso contrário, use um dos seguintes métodos para resolver o problema:
Elimine o
CustomResourceDefinition
executando o comandokubectl delete crd
se oCustomResourceDefinition
não estiver a ser usado no cluster.kubectl delete crd CRD_NAME
Substitua
CRD_NAME
pelo nome doCustomResourceDefinition
que quer eliminar.Ative o modo permissivo no plano de cópia de segurança, o que permite que o Backup for GKE ignore o recurso, incluindo
CustomResourceDefinitions
na versão da APIv1beta1
, e continue com o resto da operação de cópia de segurança. Para mais informações sobre como ativar o modo permissivo, consulte o artigo Ative o modo permissivo num plano de cópia de segurança.
Tente novamente a operação de cópia de segurança. Se a operação continuar a falhar, contacte o apoio ao cliente do Google Cloud para receber assistência adicional.