Esta página descreve os erros de autorização que pode encontrar quando usa o Backup for GKE, aspetos a ter em conta quando realiza a ação e como resolver o erro.
Erro 100010101: não foi possível fazer uma cópia de segurança de PersistentVolumeClaim. Falta a associação de IAM para o projeto do inquilino
O erro 100010101 ocorre quando uma tentativa de fazer uma cópia de segurança de um PersistentVolumeClaim falha devido a uma associação de gestão de identidades e acessos em falta para o seu projeto de inquilino, o que resulta numa mensagem de erro a indicar Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project.
A Cópia de segurança do GKE cria instantâneos do disco persistente do cluster do GKE. As capturas de ecrã residem no seu projeto Google Cloud , também conhecido como projeto do consumidor, e Google Cloud cria-as num projeto de inquilino que gere. O projeto de inquilino existe na organização google.com
separadamente da sua própria organização.
O agente de serviço no projeto do inquilino requer autorizações específicas para usar a chave de encriptação gerida pelo cliente (CMEK) que encripta o disco persistente referenciado pelo PersistentVolumeClaim do cluster. Esta autorização
encripta e desencripta os dados de instantâneos. Se o agente do serviço service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com não tiver a função roles/cloudkms.cryptoKeyEncrypterDecrypter na CMEK do disco, a operação de cópia de segurança falha.
Para resolver este erro, siga estas instruções:
Verifique se tem autorizações de IAM suficientes para modificar as políticas de IAM na chave do Serviço de gestão de chaves na nuvem na Google Cloud consola
roles/cloudkms.admin, comoroles/cloudkms.adminouroles/owner.Localize o agente de serviço do Compute Engine do projeto de inquilino através do valor
TENANT_PROJECT_NUMBERque se encontra na mensagemstatus reasonda operação de cópia de segurança com falha. Por exemplo,service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.Localize as seguintes informações da CMEK usadas para o seu disco persistente encriptado:
Nome da chave: o nome da sua chave de encriptação.
Conjunto de chaves: o nome do conjunto de chaves onde a sua chave reside.
Localização: a Google Cloud localização onde a chave se encontra. Por exemplo,
globalouus-central1.
Para conceder ao agente de serviço do Compute Engine do projeto de inquilino a função
roles/cloudkms.cryptoKeyEncrypterDecrypterna sua CMEK, execute o comandogcloud kms keys add-iam-policy-bindingatravés da CLI Google Cloud:gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterSubstitua o seguinte:
KEY_NAME: o nome da sua chave de encriptação.KEY_RING: o nome do conjunto de chaves.LOCATION: a Google Cloud localização da sua chave. Por exemplo,globalouus-central1.TENANT_PROJECT_NUMBER: o número do projeto de inquilino que obteve na mensagemstatus reasonda sua operação de cópia de segurança com falha.
Se o comando for bem-sucedido, o resultado tem o seguinte aspeto:
- members: - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypterTeste novamente a operação de cópia de segurança. Se a operação continuar sem êxito, contacte o apoio técnico ao cliente da nuvem para receber assistência adicional.
Erro 100010104: falha ao fazer uma cópia de segurança de PersistentVolumeClaim: violação da restrição da política da organização ao criar o instantâneo
O erro 100010104 ocorre quando uma tentativa de fazer uma cópia de segurança de um PersistentVolumeClaim falha devido a uma violação de restrição da política da organização durante a criação do instantâneo, o que resulta numa mensagem de erro a indicar Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot.
A Cópia de segurança do GKE cria instantâneos do disco persistente do cluster do GKE. Os instantâneos residem no seu Google Cloud projeto, também
conhecido como projeto do consumidor, e são criados num projeto de inquilino que
é gerido pela Google Cloud. O projeto de inquilino existe na organização google.com
separadamente da sua própria organização.
A política da sua organização determina onde pode criar recursos de armazenamento. O erro
Constraint constraints/compute.storageResourceUseRestrictions violated
significa que um recurso ou uma captura de ecrã está a violar a política por ter sido
criado num projeto de inquilino que não faz parte da sua estrutura
organizacional permitida. Uma vez que o projeto de inquilino está na organização da Google, está fora da política definida, o que leva à falha da cópia de segurança.
Para resolver este erro, siga estas instruções:
Localize a política da organização que implementa a restrição
constraints/compute.storageResourceUseRestrictions. Para mais informações sobre como ver as políticas da organização através da Google Cloud consola, consulte o artigo Ver políticas da organização.Modifique a política
constraints/compute.storageResourceUseRestrictionspara incluir a pasta do projeto do inquilinofolders/77620796932usada pelo Backup for GKE na respetiva lista de autorizações.Guarde as alterações à política depois de adicionar a pasta à lista de autorizações.
Teste novamente a operação de cópia de segurança após a atualização e a propagação da política da organização, o que normalmente demora alguns minutos. A cópia de segurança deve prosseguir sem violar as restrições de utilização dos recursos de armazenamento. Se a operação continuar a não ser bem-sucedida, contacte o apoio ao cliente do Google Cloud para receber assistência adicional.
Erro 100010106: falha ao fazer uma cópia de segurança de PersistentVolumeClaim: falta a associação do IAM para o agente do serviço de cópia de segurança do GKE
O erro 100010106
ocorre quando uma tentativa de fazer uma cópia de segurança de um PersistentVolumeClaim falha devido a uma
associação da gestão de identidades e acessos em falta para o seu agente do serviço Backup for GKE, o que resulta numa
mensagem de erro a indicar Failed to backup PVC - Missing IAM binding for Backup for GKE service agent.
A Cópia de segurança para o GKE requer autorizações para usar a chave de encriptação gerida pelo cliente (CMEK) do BackupPlan para encriptar e desencriptar volumes de discos persistentes. Quando o agente do serviço de cópia de segurança do GKE não tem a função roles/cloudkms.cryptoKeyEncrypterDecrypter na sua BackupPlan CMEK, as operações de cópia de segurança falham.
Para resolver este erro, siga estas instruções:
Identifique o agente do serviço de cópia de segurança para GKE gerido pela Google específico do seu projeto. Por exemplo,
service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com. Pode encontrar o número do projeto através dos seguintes métodos:Use o Google Cloud painel de controlo do projeto na Google Cloud consola.
Execute o comando
gcloud projects describeatravés da CLI do Google Cloud:gcloud projects describe PROJECT_ID –format="value(projectNumber)"Substitua
PROJECT_IDpelo nome exclusivo do seu projeto.
Identifique os seguintes detalhes da CMEK:
Nome da chave: o nome da sua chave de encriptação.
Conjunto de chaves: o nome do conjunto de chaves onde a sua chave reside.
Localização: a Google Cloud localização onde a sua CMEK está localizada.
BackupPlanPor exemplo,globalouus-central1.
Para conceder ao agente de serviço da Cópia de segurança do GKE a função
roles/cloudkms.cryptoKeyEncrypterDecrypterna sua CMEK, use a CLI Google Cloud para executar o comandogcloud kms keys add-iam-policy-binding:gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterSubstitua o seguinte:
KEY_NAME: o nome da sua chave de encriptação.KEY_RING: o nome do conjunto de chaves.LOCATION: a Google Cloud localização da sua chave. Por exemplo,globalouus-central1.PROJECT_NUMBER: o número do seu Google Cloud projeto.
Verifique se tem as autorizações da gestão de identidade e de acesso necessárias na chave do Serviço de gestão de chaves na nuvem. Por exemplo,
roles/cloudkms.adminouroles/owner.Verifique se tem as autorizações concedidas. No resultado do comando
gcloud kms keys add-iam-policy-bindinganterior, procure uma entrada semelhante à seguinte:-members: -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypterTeste novamente a operação de cópia de segurança depois de conceder as autorizações necessárias. Se a operação não for concluída com êxito, contacte o apoio ao cliente do Google Cloud para receber assistência adicional.
Erro 100010107: falha na cópia de segurança de PersistentVolumeClaim – Falta associação de IAM – conta de serviço do agente (KCP)
O erro 100010107ocorre quando tenta realizar uma operação de cópia de segurança para o GKE e o agente de serviço do cluster do Google Kubernetes Engine não tem acesso à sua chave de encriptação gerida pelo cliente (CMEK), o que resulta numa mensagem a indicar Failed to backup PVC - Missing IAM binding - agent service account (KCP).
O agente de serviço do cluster do Google Kubernetes Engine, normalmente no formato de
service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com,
é essencial para que o seu cluster do GKE interaja com os serviços Google Cloud. Quando o seu plano de cópia de segurança usa uma chave de encriptação gerida pelo cliente (CMEK).
Este agente do serviço precisa de autorizações para encriptar e desencriptar os seus dados de cópia de segurança
através da sua CMEK. Se o plano de cópia de segurança não tiver a função roles/cloudkms.cryptoKeyEncrypterDecrypter
na sua CMEK, as operações de cópia de segurança iniciadas a partir do cluster falham com um erro permission denied.
Para resolver este erro, use as seguintes instruções de resolução de problemas:
Verifique se tem as autorizações corretas para modificar as políticas de IAM na chave do Serviço de gestão de chaves na nuvem. Por exemplo,
cloudkms.adminouroles/owner.Identifique o agente de serviço do cluster do Google Kubernetes Engine. Este agente de serviço é criado e gerido automaticamente pela Google para os seus clusters do GKE. Google Cloud Por exemplo,
service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com. Precisa do número do projeto para criar a conta de serviço completa. Pode encontrar o número do projeto através de um dos seguintes métodos:Use o Google Cloud painel de controlo do projeto na Google Cloud consola.
Execute o comando
gcloud projects describeatravés da CLI do Google Cloud:gcloud projects describe PROJECT_ID –-format="value(projectNumber)"Substitua
PROJECT_IDpelo ID do seu projeto.
Localize as seguintes informações da CMEK:
Nome da chave: o nome da sua chave de encriptação.
Conjunto de chaves: o nome do conjunto de chaves onde a sua chave reside.
Localização: a Google Cloud localização onde a chave se encontra. Por exemplo,
globalouus-central1.
Conceda a função de
roles/cloudkms.cryptoKeyEncrypterDecrypterao nível do CMEK. O agente de serviço do Google Kubernetes Engine precisa de autorizações na sua chave de encriptação. Para conceder a funçãoroles/cloudkms.cryptoKeyEncrypterDecrypterna sua CMEK, use a CLI gcloud para executar o comandogcloud kms key add-iam-policy-binding:gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterSubstitua o seguinte:
KEY_NAME: o nome da sua chave de encriptação.KEY_RING: o nome do conjunto de chaves.LOCATION: a Google Cloud localização da sua chave. Por exemplo,globalouus-central1.PROJECT_NUMBER: o nome do projeto.
O resultado é semelhante ao seguinte:
- members: - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter ```Tente novamente a operação de cópia de segurança do GKE. Se a operação continuar a falhar, contacte o apoio técnico do Google Cloud para receber assistência adicional.
Erro 100020101: falha na cópia de segurança de PersistentVolumeClaim – PersistentVolumeClaim associado a um tipo de PersistentVolume não suportado
O erro 100020101 ocorre quando uma tentativa de fazer uma cópia de segurança de um PersistentVolumeClaim falha porque o PersistentVolumeClaim está associado a um tipo de PersistentVolume não suportado. O erro resulta na seguinte mensagem de erro:
PersistentVolumeClaims are bound to PersistentVolumes of unsupported types and cannot be backed up.
Este erro ocorre quando a sua operação de cópia de segurança do GKE encontra um PersistentVolumeClaim associado a um PersistentVolume que usa um tipo de volume não suportado para a cópia de segurança de dados pelo Backup for GKE. A cópia de segurança para o GKE
suporta principalmente a criação de cópias de segurança de dados de volumes de discos persistentes. Se um PersistentVolumeClaim estiver associado a um PersistentVolume que não seja um disco persistente, a operação de cópia de segurança falha para os dados do PersistentVolumeClaim.
Para resolver este erro, use as seguintes instruções de resolução de problemas:
Apresente uma lista de todos os
PersistentVolumeClaimsePersistentVolumesassociados a eles executando o comandokubectl get pvc. Reveja esta lista para identificar osPersistentVolumesque são suportados por tipos de volumes não suportados.kubectl get pvc --all-namespaces -o wideDetermine o tipo de volume do
PersistentVolumeque é suportado por um tipo de volume não suportado pela cópia de segurança para o GKE executando o comandokubectl describe pv:kubectl describe pv PERSISTENT_VOLUME_NAMESubstitua o seguinte:
PERSISTENT_VOLUME_NAME: o nome dePersistentVolumeque tem um tipo de volume não suportado indicado como colunaVOLUMEna saída do passo anterior.Na saída, use os campos
SourceeDriverpara obter detalhes do aprovisionador de volume:Para Persistent Disks suportados: o resultado é semelhante a
Source.Driver: pd.csi.storage.gke.ioouSource.Type:GCEPersistentDisk.Para tipos não suportados que estão a causar o erro: a saída seria um controlador de disco não persistente, por exemplo,
Source.Driver:filestore.csi.storage.gke.io.
Use um dos seguintes métodos para resolver o erro:
Migre para um volume de disco persistente: recomendamos este método para fazer cópias de segurança completas dos dados. Se precisar de fazer uma cópia de segurança dos dados de volume reais, tem de usar um disco persistente, o que envolve a migração dos dados do tipo de volume não suportado para um novo volume CSI de disco persistente. Para receber assistência com a migração de um volume do disco persistente, contacte o Cloud Customer Care.
Ative o modo permissivo na Cópia de segurança para GKE: recomendamos este método se não for necessária uma cópia de segurança de dados para volumes não suportados. Se a migração de dados não for viável ou necessária, por exemplo, se o volume tiver uma cópia de segurança de um serviço externo e planear voltar a anexá-lo durante a operação de restauro, pode configurar o plano de cópia de segurança do Backup for GKE para permitir que a cópia de segurança continue no modo permissivo. Para mais informações sobre como ativar o modo permissivo, consulte o artigo Ative o modo permissivo num plano de yedekleme.
Tente novamente a operação de cópia de segurança do GKE. Com base no método que escolheu para resolver o erro, a operação de cópia de segurança para GKE tem o seguinte comportamento:
Se migrou para um volume de disco persistente, a cópia de segurança deve ser bem-sucedida para o volume, incluindo os respetivos dados.
Se ativou o modo permissivo, a operação de cópia de segurança deve ser bem-sucedida, mas não é feita uma cópia de segurança dos dados dos volumes não suportados.
Se a operação continuar a falhar, contacte o apoio ao cliente do Google Cloud para receber mais assistência.
Erro 100020104: falha ao fazer uma cópia de segurança de PersistentVolumeClaim – PersistentVolumeClaim não associado a um PersistentVolume
O erro 100020104 ocorre quando uma tentativa de fazer uma cópia de segurança de um PersistentVolumeClaim falha porque o PersistentVolumeClaim não está associado a um PersistentVolume. O erro resulta na seguinte mensagem de erro: Failed to backup PVC - PVC Not Bound to a Persistent Volume.
Este erro ocorre quando a operação de cópia de segurança do Backup for GKE tenta fazer uma cópia de segurança de um PersistentVolumeClaim que não está associado com êxito a um PersistentVolume.
Um PersistentVolumeClaim tem de estar associado a um PersistentVolume antes de poder ser usado por uma carga de trabalho de consumo, como um pod, e, posteriormente, ter uma cópia de segurança feita pelo Backup for GKE. Se o PersistentVolumeClaim permanecer num estado Pending, significa que não está disponível um PersistentVolume adequado ou que não é possível aprovisioná-lo nem associá-lo, o que leva à falha da operação de cópia de segurança. Um motivo comum para um PersistentVolumeClaim permanecer não associado é quando o respetivo StorageClass usa um modo de associação WaitForFirstConsumer, mas nenhum pod ou outra carga de trabalho está ainda a tentar consumir o PersistentVolumeClaim.
Para resolver este erro, use as seguintes instruções de resolução de problemas:
Para verificar o estado de todos os
PersistentVolumeClaimsno cluster e identificar oPersistentVolumeClaimnão associado, execute o comandokubectl get pvc:kubectl get pvc --all-namespaces | grep `Pending`Depois de identificar o
PersistentVolumeClaimque não está associado a umPersistentVolume, obtenha informações sobre oPersistentVolumeClaimnão associado executando o comandokubectl describe pvc:kubectl describe pvc PVC_NAME -n NAMESPACE_NAMESubstitua o seguinte:
PVC_NAME: o nome doPersistentVolumeClaimpara o qual ocorreu uma falha de cópia de segurança.NAMESPACE_NAME: o nome do seu espaço de nomes onde reside oPersistentVolumeClaim.
Depois de a descrição ser apresentada, use os campos
StatuseEventspara determinar se oPersistentVolumeClaimestá associado a umPersistentVolume. Se ainda não conseguir determinar por que motivo oPersistentVolumeClaimnão está associado a umPersistentVolumeou não conseguir resolver o problema identificado, pode ativar o modo permissivo no seu plano de contingência. 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.