k8s无法删除pod解决方法 - Mon, Feb 18, 2019
k8s无法删除pod解决方法
k8s无法删除pod解决方法
问题原因
Pod无法删除通常是因为:
- 存在ReplicationController(RC)或ReplicaSet(RS)管理该Pod
- Pod处于Terminating状态卡住
- finalizer未正确清理
解决方法
方法1:删除控制器(推荐)
# 1. 查看RC或RS
kubectl get rc
kubectl get rs
# 2. 删除RC或RS(会级联删除Pod)
kubectl delete rc <name>
kubectl delete rs <name>
方法2:强制删除Pod
# 强制删除Pod(不推荐,可能导致数据丢失)
kubectl delete pod <name> --grace-period=0 --force -n <namespace>
方法3:删除Terminating状态的Pod
# 强制删除Terminating状态的Pod
kubectl delete pod <name> --grace-period=0 --force -n <namespace>
# 如果还是无法删除,可以编辑Pod删除finalizers
kubectl edit pod <name> -n <namespace>
# 删除metadata.finalizers字段
注意事项
- 优先删除控制器而不是直接删除Pod,否则控制器会重新创建Pod
- 强制删除可能导致数据丢失,谨慎使用
- 对于StatefulSet管理的Pod,需要先检查存储卷状态