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 100010108: falha ao fazer backup do PersistentVolumeClaim. A CMEK do plano de backup está ausente para o disco criptografado
O erro 100010108 ocorre ao criar backups de volume com escopo regional, e a CMEK do plano de backup é obrigatória porque o cluster do GKE faz referência a um disco criptografado.
Entender o erro
Ao criar backups de volume com escopo regional, a CMEK do plano de backup é obrigatória se o cluster do GKE fizer referência a qualquer disco criptografado. Esse é um requisito estrito para backups de volume com escopo regional. Se o disco de origem estiver criptografado, o snapshot desse disco só será possível se uma CMEK do plano de backup for fornecida. Se o plano de backup não tiver essa configuração de CMEK, a criação do snapshot falhará e você verá uma mensagem de erro semelhante a esta:
failed to create snapshot as disk "pvc-1" is encrypted with CMEK "projects/proj1/locations/us-east1/keyRings/keyring1/cryptoKeys/key1/cryptoKeyVersions/1", but no Backup Plan CMEK is provided. Please add CMEK to the Backup Plan.
Etapas da solução de problemas
- Identifique a configuração de CMEK ausente: a mensagem de erro confirma que o PVC que está sendo feito backup está criptografado, mas a configuração do plano de backup não tem uma chave de criptografia.
- Adicione uma CMEK ao plano de backup: atualize a configuração do plano de backup para incluir uma chave de criptografia gerenciada pelo cliente (CMEK). Essa chave será usada para criptografar os dados de backup, incluindo os backups de volume com escopo regional.
- Garanta as permissões adequadas: verifique se o agente de serviço do Backup para GKE (
service-PROJECT_NUMBER@gcp-sa-gkebackup.s3ns-system.iam.gserviceaccount.com) tem o papelroles/cloudkms.cryptoKeyEncrypterDecrypteratribuído à CMEK recém-adicionada. - Teste novamente a operação de backup: depois que o plano de backup for atualizado com a CMEK e as permissões forem concedidas, tente novamente a operação de backup.
Erro 100020102: modo permissivo estrito. Falha ao fazer backup da CRD. Versão da API v1beta1 não compatível
O erro 100020102 ocorre quando uma tentativa de fazer backup de uma CustomResourceDefinition
que foi originalmente aplicada 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. Esse erro 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 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
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 feito backup, como uma CustomResourceDefinition criada com a API v1beta1. Esse erro ocorre porque o recurso não tem o esquema estrutural exigido pela API v1. A presença dessa CustomResourceDefinition é considerada um erro crítico porque ela pode não ser restaurada corretamente em um cluster mais recente.
Para resolver esse erro, siga estas instruções:
Identifique a
CustomResourceDefinitionproblemática executando o comandokubectl get crd:kubectl get crd CRD_NAMESubstitua
CRD_NAMEpelo nome daCustomResourceDefinitionna mensagem de erro.Na saída YAML, confirme se a
CustomResourceDefinitionfoi convertida corretamente da APIvbeta1para a APIv1localizando as seguintes condições:spec.versions: localize a condiçãospec.versionsexaminando cada versão listada no campospec.versions. Se alguma dasspec.versionsnão tiver o camposchema.openAIV3Schema, aCustomResourceDefinitionnão terá um esquema estrutural definido para essa versão.status.conditions: localize a condiçãostatus.conditionsencontrando a condiçãotype:NonStructuralSchema. Se ostatus.conditions'sstatusfortrue, ele confirma explicitamente que o esquema não é estrutural.
Faça upgrade da
CustomResourceDefinitionpara a versão da APIv1seguindo estas etapas:Edite a
CustomResourceDefinitionatual para torná-la compatível com o padrãov1adicionando um esquema estrutural que define cada campo e o tipo dele 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 novamente a operação de backup. Caso contrário, use um dos seguintes métodos para resolver o problema:
Exclua a
CustomResourceDefinitionexecutando o comandokubectl delete crdse aCustomResourceDefinitionnão estiver sendo usada no cluster.kubectl delete crd CRD_NAMESubstitua
CRD_NAMEpelo nome daCustomResourceDefinitionque você quer excluir.Ative o modo permissivo no plano de backup, 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 novamente a operação de backup. 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 de 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. A falha ao encontrar o namespace resulta na seguinte mensagem de erro:
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çãoBackupPlan.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 o namespace não foi encontrado, por exemplo,
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not found.Corrija o
BackupPlan. Se o namespace estiver digitado incorretamente, atualize oBackupPlancom o nome correto do namespace. Se o namespace realmente não existir mais e não precisar ser feito backup, remova-o da listaselectedNamespacesna configuraçãoBackupPlan.Tente novamente a operação de backup 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.