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
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 elemento
CustomResourceDefinitionfoi convertido corretamente da APIvbeta1para a APIv1localizando as seguintes condições:spec.versions: localize a condiçãospec.versionsao procurar em cada versão apresentada no campospec.versions. Se algum dosspec.versionsnão tiver o camposchema.openAIV3Schema, oCustomResourceDefinitionnão tem um esquema estrutural definido para essa versão.status.conditions: localize a condiçãostatus.conditionsencontrando a condiçãotype:NonStructuralSchema. Se o valor destatus.conditionsforstatus, confirma explicitamente que o esquema não é estrutural.true
Atualize a versão da API
CustomResourceDefinitionparav1através dos seguintes passos:Edite o
CustomResourceDefinitionexistente para o tornar compatível com a normav1adicionando 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
v1compatí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
CustomResourceDefinitionexecutando o comandokubectl delete crdse oCustomResourceDefinitionnão estiver a ser usado no cluster.kubectl delete crd CRD_NAMESubstitua
CRD_NAMEpelo nome doCustomResourceDefinitionque 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
CustomResourceDefinitionsna 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
selectedNamespacesna 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_NAMESubstitua
NAMESPACE_NAMEpelo 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 elementoBackupPlancom 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 listaselectedNamespacesna configuraçãoBackupPlan.Volte a tentar a operação de cópia de segurança depois de fazer as correções necessárias ao
BackupPlane 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.