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 do IAM suficientes para modificar as políticas do IAM na chave do Serviço de gestão de chaves na nuvem na Google Cloud consola
roles/cloudkms.admin
, comoroles/cloudkms.admin
ouroles/owner
.Localize o agente de serviço do Compute Engine do projeto de inquilino através do valor
TENANT_PROJECT_NUMBER
que se encontra na mensagemstatus reason
da 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,
global
ouus-central1
.
Para conceder ao agente de serviço do Compute Engine do projeto de inquilino a função
roles/cloudkms.cryptoKeyEncrypterDecrypter
na sua CMEK, execute o comandogcloud kms keys add-iam-policy-binding
atravé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.cryptoKeyEncrypterDecrypter
Substitua 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,global
ouus-central1
.TENANT_PROJECT_NUMBER
: o número do projeto de inquilino que obteve na mensagemstatus reason
da 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.cryptoKeyEncrypterDecrypter
Teste novamente a operação de cópia de segurança. Se a operação continuar sem êxito, contacte o apoio ao cliente da Google Cloud 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 de 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.storageResourceUseRestrictions
para incluir a pasta do projeto do inquilinofolders/77620796932
usada 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 mais assistência.
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 do Identity and Access Management 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 describe
através da CLI do Google Cloud:gcloud projects describe PROJECT_ID –format="value(projectNumber)"
Substitua
PROJECT_ID
pelo 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.
BackupPlan
Por exemplo,global
ouus-central1
.
Para conceder ao agente de serviço da Cópia de segurança do GKE a função
roles/cloudkms.cryptoKeyEncrypterDecrypter
na 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.cryptoKeyEncrypterDecrypter
Substitua 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,global
ouus-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.admin
ouroles/owner
.Verifique se tem as autorizações concedidas. No resultado do comando
gcloud kms keys add-iam-policy-binding
anterior, procure uma entrada semelhante à seguinte:-members: -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter
Teste 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 100010107
ocorre quando tenta executar 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 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 Cloud Key Management Service. Por exemplo,
cloudkms.admin
ouroles/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 describe
através da CLI do Google Cloud:gcloud projects describe PROJECT_ID –-format="value(projectNumber)"
Substitua
PROJECT_ID
pelo 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,
global
ouus-central1
.
Conceda a função de
roles/cloudkms.cryptoKeyEncrypterDecrypter
ao 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.cryptoKeyEncrypterDecrypter
na 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.cryptoKeyEncrypterDecrypter
Substitua 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,global
ouus-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 ao cliente 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
PersistentVolumeClaims
ePersistentVolumes
associados a eles executando o comandokubectl get pvc
. Reveja esta lista para identificar osPersistentVolumes
que são suportados por tipos de volumes não suportados.kubectl get pvc --all-namespaces -o wide
Determine o tipo de volume do
PersistentVolume
que é 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_NAME
Substitua o seguinte:
PERSISTENT_VOLUME_NAME
: o nome dePersistentVolume
que tem um tipo de volume não suportado indicado como colunaVOLUME
na saída do passo anterior.Na saída, use os campos
Source
eDriver
para obter detalhes do aprovisionador de volume:Para Persistent Disks suportados: o resultado é semelhante a
Source.Driver: pd.csi.storage.gke.io
ouSource.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
PersistentVolumeClaims
no cluster e identificar oPersistentVolumeClaim
não associado, execute o comandokubectl get pvc
:kubectl get pvc --all-namespaces | grep `Pending`
Depois de identificar o
PersistentVolumeClaim
que não está associado a umPersistentVolume
, obtenha informações sobre oPersistentVolumeClaim
não associado executando o comandokubectl describe pvc
:kubectl describe pvc PVC_NAME -n NAMESPACE_NAME
Substitua o seguinte:
PVC_NAME
: o nome doPersistentVolumeClaim
para 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
Status
eEvents
para determinar se oPersistentVolumeClaim
está associado a umPersistentVolume
. Se ainda não conseguir determinar por que motivo oPersistentVolumeClaim
não está associado a umPersistentVolume
ou 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.