VMware vSphere Kubernetes Service
storage cluster, are governed by PDBs which enforce a minimum number of healthy pods.Identification Steps:
Run: kubectl describe pod <pod-name> -n <namespace> on pods stuck during node drain.
2. Look for messages indicating:
cannot evict pod as it would violate the pod's disruption budget
3. Review ownerReferences in the pod spec; Portworx pods typically have:
ownerReferences: apiVersion: core.libopenstorage.org/v1 kind: StorageCluster
4. Check the PDB:
List PDBs in the namespace: kubectl get pdb -n portworx
5. Look for entries like:
NAME MIN AVAILABLE CURRENT AVAILABLE AGEpx-storage 7 7 20d
6. If current available equals min available, eviction is blocked.
7. Check Pod Scheduling:
Use: kubectl get pods -n portworx -o wide to list on which nodes Portworx pods are running.
8. Nodes marked for deletion or in maintenance mode but still hosting Portworx pods will be stuck until the pods can be safely evicted.
Remediation Steps:
Below steps could be performed in order for the Nodes to be drained successfully.
Once Portworx confirms node removal and pods can be safely evicted, retry drain/remediation operations, which should now complete successfully.
This workflow ensures administrators can identify Portworx pod eviction failures and confirm their linkage to StorageCluster ownership and PDBs. Ensuring close collaboration with the storage team and validating pod and PDB status before node drain or maintenance minimizes disruption and preserves data availability in stateful Kubernetes environments.