Skip to main content

Excluir um PVC

Com acesso ao Cluster, verifique se o PVC está sendo utilizado. No caso abaixo, podemos ver que o PVC associado a um PV (Status: Bound) e sendo utilizado pelo Pod pod-com-pvc (Used By: pod-com-pvc).

kubectl describe pvc meu-pvc

Name: meu-pvc
Namespace: default
StorageClass: mgc-csi-magalu-sc
Status: Bound
Volume: pvc-3e35c607-17e8-4ef7-9720-77bfcf36ad5c
Labels: <none>
Annotations: pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
volume.beta.kubernetes.io/storage-provisioner: block.csi.magalu.cloud
volume.kubernetes.io/selected-node: k8s-meu-cluster-nodepool0-7bde1c049
volume.kubernetes.io/storage-provisioner: block.csi.magalu.cloud
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 20Gi
Access Modes: RWO
VolumeMode: Filesystem
Used By: pod-com-pvc

Além disso, anote o ID do volume utilizado no serviço de Block Storage da Magalu Cloud, caso deseje remover o volume completamente:

kubectl get pv pvc-3e35c607-17e8-4ef7-9720-77bfcf36ad5c -o custom-columns=NAME:.metadata.name,BLOCK-STORAGE-ID:".spec.csi.volumeHandle"

NAME BLOCK-STORAGE-ID
pvc-3e35c607-17e8-4ef7-9720-77bfcf36ad5c 19da4417-cff5-49f3-9983-c3da061e42ae

Já que o PVC está sendo utilizado, vamos primeiramente deletar o Pod:

kubectl delete pod pod-com-pvc

pod "pod-com-pvc" deleted

Após remover o Pod, verificamos o campo Used By como <None>:

kubectl describe pvc meu-pvc

Name: meu-pvc
Namespace: default
StorageClass: mgc-csi-magalu-sc
Status: Bound
Volume: pvc-3e35c607-17e8-4ef7-9720-77bfcf36ad5c
Labels: <none>
Annotations: pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
volume.beta.kubernetes.io/storage-provisioner: block.csi.magalu.cloud
volume.kubernetes.io/selected-node: k8s-meu-cluster-nodepool0-7bde1c049
volume.kubernetes.io/storage-provisioner: block.csi.magalu.cloud
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 20Gi
Access Modes: RWO
VolumeMode: Filesystem
Used By: <none>

E podemos seguramente remover o PVC:

kubectl delete pvc meu-pvc

persistentvolumeclaim "meu-pvc" deleted
info

Caso o PVC possua Snapshots, é necessário que eles sejam removidos antes de excluir o PVC.

Excluir o Volume

warning

Lembre-se que, caso o StorageClass possua a Reclaim Policy como Retain (como na StorageClass padrão), os volumes permanecerão no serviço de Block Storage da Magalu Cloud.

Nesse caso, verificamos que o recurso PV criado pelo PVC ainda está presente com STATUS: Released:

kubectl get pv pvc-3e35c607-17e8-4ef7-9720-77bfcf36ad5c

NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
pvc-3e35c607-17e8-4ef7-9720-77bfcf36ad5c 20Gi RWO Retain Released default/meu-pvc mgc-csi-magalu-sc <unset> 6m23s

Podemos removê-lo com segurança:

kubectl delete pv pvc-3e35c607-17e8-4ef7-9720-77bfcf36ad5c

Para deletar o volume no serviço de Block Storage da Magalu Cloud e evitar cobranças adicionais, utilize o comando da CLI da MGC com o ID retornado no comando acima no campo BLOCK-STORAGE-ID:

mgc block-storage volumes delete 19da4417-cff5-49f3-9983-c3da061e42ae