Esta página descreve os erros relacionados com o armazenamento que pode ter quando usa a cópia de segurança para o GKE, aspetos a ter em conta quando realiza a ação e os passos sobre como resolver o problema.
Erro 100010105: não foi possível fazer uma cópia de segurança de PersistentVolumeClaim. O disco referenciado por PersistentVolume não existe
O erro 100010105
ocorre quando uma tentativa de fazer uma cópia de segurança de um PersistentVolumeClaim
falha porque faz referência a um disco que não existe, o que resulta numa mensagem de erro a indicar Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist
.
No Google Kubernetes Engine, PersistentVolumeClaims
solicite armazenamento a partir de
PersistentVolumes
. Por sua vez, um PersistentVolume
representa uma parte do armazenamento, muitas vezes um Persistent Disk subjacente do Compute Engine. Pode ocorrer um erro quando um PersistentVolumeClaim
está associado a um PersistentVolume
e a configuração do PersistentVolume
especifica um Persistent Disk do Compute Engine. No entanto, não é possível encontrar o disco real com o nome e a localização especificados na configuração PersistentVolume
no seu projeto Google Cloud . Assim, a Cópia de segurança do GKE não pode avançar com a criação de cópias de segurança de um disco inexistente e ocorre uma falha.
Para resolver este erro, siga estas instruções:
Identifique o
PersistentVolumeClaim
e oPersistentVolume
problemáticos. Os nomes doPersistentVolumeClaim
problemático e do respetivoPersistentVolume
associado estão listados no campostate reason
da operação de cópia de segurança para o GKE com falha. Recomendamos que documente oPersistentVolumeClaim
nome, o respetivo espaço de nomes e o nome doPersistentVolume
.Inspecione o
PersistentVolume
. Para descrever oPersistentVolume
, use o nome doPersistentVolume
que identificou no campo de motivo do estado no seguinte comando:kubectl describe pv PERSISTENTVOLUME_NAME
Substitua
PERSISTENTVOLUME_NAME
pelo nome do seu PersistentVolume.No resultado, examine a secção
source
, especificamente emcsi
. Esta secção descreve oVolumeHandle
que oPersistentVolume
está a tentar referenciar. Por exemplo:Source: Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine) PDName: my-non-existent-disk FSType: ext4 Partition: 0 ReadOnly: false In this example, the PD name is my-non-existent-disk. Source: Type: CSI (a Container Storage Interface (CSI) volume) Driver: pd.csi.storage.gke.io VolumeHandle: projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME ...
Neste exemplo, o
VolumeHandle
contém o caminho completo para o disco, incluindo o nome e a localização. Por exemplo,projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name
.Use o
VolumeHandle
obtido a partir da descriçãoPersistentVolume
para identificar o nome e a zona do disco.Verifique se o disco existe no seu Google Cloud projeto através de um dos seguintes métodos:
Disco zonal
Se estiver a usar um disco zonal, use a Google Cloud CLI para executar o comando
gcloud compute disks describe
:gcloud compute disks describe DISK_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID
Substitua o seguinte:
DISK_NAME
: o nome do disco que obteve a partir da descriçãoPersistentVolume
.ZONE_NAME
: a zona do disco que obteve a partir da descriçãoPersistentVolume
.PROJECT_ID
: o ID do seu Google Cloud projeto.
Disco regional
Se estiver a usar um disco regional, use a Google Cloud CLI para executar o comando
gcloud compute disks describe
:gcloud compute disks describe DISK_NAME \ --region=REGION_NAME \ --project=PROJECT_ID
Substitua o seguinte:
DISK_NAME
: o nome do disco que obteve a partir da descriçãoPersistentVolume
.REGION_NAME
: a região do disco que obteve a partir da descriçãoPersistentVolume
.PROJECT_ID
: o ID do seu Google Cloud projeto.
Se receber uma mensagem de erro
Resource not found
ouThe resource DISK_NAME was not found
, o disco não existe. Use um dos seguintes métodos para resolver o problema, consoante o cenário que melhor se adapta às suas necessidades:Se o disco foi eliminado ou teve o nome alterado acidentalmente e quiser manter os dados ou o
PersistentVolumeClaim
, ou se oPersistentVolume
foi configurado com um nome de disco incorreto, use um dos seguintes métodos para resolver o problema:Restaurar o disco: se tiver uma cópia de segurança do disco, restaure-o com o mesmo nome e localização que o
PersistentVolume
referencia.Crie um novo disco: se a reposição do disco não for uma opção, crie um novo disco com o mesmo nome e localização que se encontram na configuração
PersistentVolume
.
Se o
PersistentVolumeClaim
ou oPersistentVolume
, os respetivos dados ou a aplicação já não forem necessários, recomendamos que remova a entidade desnecessária:- Elimine o
PersistentVolumeClaim
: elimine oPersistentVolumeClaim
com a ferramenta de linha de comandoskubectl
para executar o comandokubectl delete pvc
:
kubectl delete pvc PVC_NAME -n NAMESPACE
Substitua o seguinte:
PVC_NAME
: o nome doPersistentVolumeClaim
que quer eliminar.NAMESPACE
: o espaço de nomes doPersistentVolumeClaim
que quer eliminar.
- Elimine o
O
PersistentVolume
continua presente depois de eliminar oPersistentVolumeClaim
: se oPersistentVolumeReclaimPolicy
doPersistentVolume
estiver definido comoDelete
, oPersistentVolume
é eliminado automaticamente quando oPersistentVolumeClaim
é eliminado. Se opersistentVolumeReclaimPolicy
estiver definido comoRetain
, tem de eliminar manualmente oPersistentVolume
depois de oPersistentVolumeClaim
ser eliminado. Para eliminar oPersistentVolume
, use a ferramenta de linha de comandoskubectl
para executar o comandokubectl delete pv
:kubectl delete pv PV_NAME
Substitua
PV_NAME
pelo nome doPersistentVolume
que quer eliminar.
Se a operação continuar a falhar, contacte o apoio ao cliente do Google Cloud para receber mais assistência.