引子,接手一个kubernetes环境,查看所有pod时,发现一个pod未正常运行,经过业务熟悉可以进行删除。但是,没有找到创建pod的资料。处理过程进行了整理,备忘和分享一下。

1、直接删除后,发现又自动创建了。

查看所有的运行的pod

# kubectl get pods -A

删除不需要的问题pod

# kubectl delete pod nginx-55f8fd7cfc-4wxzp

再次查看pod,发现又再次创建运行,后续采取强制删除也无效。

2、正确的处理方式

     在 Kubernetes 中,直接删除 Pod 后 Pod 自动重建,是因为Pod被更高层的控制器(如 Deployment、StatefulSet、DaemonSet、ReplicaSet或 Job/CronJob)管理。要彻底删除 Pod 并阻止重建,需找到并删除或修改对应的控制器。

2.1找到管理 Pod 的控制器

查看 Pod 的详细信息,找到其所属的控制器

kubectl describe pod <pod-name> -n <namespace>

输出内容,找到如下内容

Controlled By:  Job/my-release-ingress-nginx-admission-create

Job:当前Pod的控制器。

2.2删除Pod过程

先删job

# kubectl delete job my-release-ingress-nginx-admission-create

再删pod

# kubectl delete pod my-release-ingress-nginx-admission-create-hssvv

至此,处理完成,再次查看所有Pod,需要删除的已经正常删除。

       当前为job管理控制器的处理方式,其他类型可以进行参考处理。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐