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
Caso o PVC possua Snapshots, é necessário que eles sejam removidos antes de excluir o PVC.
Excluir o Volume
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