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 elemento
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.
Erro 100040102: espaço de nomes não encontrado
O erro 100040102
ocorre quando uma tentativa de realizar uma operação de cópia de segurança falha porque não é possível encontrar um espaço de nomes especificado no âmbito da cópia de segurança no cluster. O agente do Backup for GKE não conseguiu localizar um ou mais espaços de nomes que foram explicitamente indicados no campo selectedNamespaces
da configuração BackupPlan
. A cópia de segurança do GKE requer que todos os espaços de nomes especificados estejam presentes no cluster no momento em que a operação de cópia de segurança é iniciada. Se não for possível encontrar o espaço de nomes, é apresentada a seguinte mensagem de erro:
Namespace [NAMESPACE_NAME] is not found.
Para resolver este problema, siga estas instruções:
Verifique se o espaço de nomes foi introduzido corretamente consultando a lista
selectedNamespaces
na configuraçãoBackupPlan
.Confirme que o espaço de nomes comunicado na mensagem de erro existe executando o comando
kubectl get namespace
:kubectl get namespace NAMESPACE_NAME
Substitua
NAMESPACE_NAME
pelo nome do espaço de nomes comunicado na mensagem de erro.Se o espaço de nomes não existir, é apresentada uma mensagem a indicar que o espaço de nomes não foi encontrado, por exemplo,
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not found
.Corrija o
BackupPlan
. Se o espaço de nomes tiver um erro ortográfico, atualize o elementoBackupPlan
com o nome correto do espaço de nomes. Se o espaço de nomes já não existir e não precisar de uma cópia de segurança, remova-o da listaselectedNamespaces
na configuraçãoBackupPlan
.Volte a tentar a operação de cópia de segurança depois de fazer as correções necessárias ao
BackupPlan
e inicie uma nova cópia de segurança.
Se a operação continuar a falhar, contacte o apoio ao cliente do Google Cloud para receber mais assistência.