k8s 删除pod

本文详细介绍了在Kubernetes环境中如何正确地管理Pod与Deployment。通过实例演示了仅删除Pod时,由于Deployment的存在,Pod会自动被重新创建。强调了在彻底移除应用时,应先删除Deployment,以避免Pod的自动恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先删除pod

再删除对应的deployment

否则只是删除pod是不管用的,还会看到pod,因为deployment.yaml文件中定义了副本数量


实例如下:

删除pod

[root@test2 ~]# kubectl get pod -n jenkins
NAME                        READY     STATUS    RESTARTS   AGE
jenkins2-8698b5449c-grbdm   1/1       Running   0          8s
[root@test2 ~]# kubectl delete pod jenkins2-8698b5449c-grbdm -n jenkins
pod "jenkins2-8698b5449c-grbdm" deleted

查看pod仍然存储

[root@test2 ~]# kubectl get pod -n jenkins
NAME                        READY     STATUS    RESTARTS   AGE
jenkins2-8698b5449c-dbqqb   1/1       Running   0          8s
[root@test2 ~]# 

删除deployment

[root@test2 ~]# kubectl get deployment -n jenkins
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
jenkins2   1         1         1            1           17h
[root@test2 ~]# kubectl delete deployment jenkins2 -n jenkins

再次查看pod消失

deployment.extensions "jenkins2" deleted
[root@test2 ~]# kubectl get deployment -n jenkins
No resources found.
[root@test2 ~]# 
[root@test2 ~]# kubectl get pod -n jenkins
No resources found.

 

原文 https://www.cnblogs.com/effortsing/p/10496547.html

### 如何在 Kubernetes (K8S) 中删除 Pod 在 Kubernetes 集群中,Pod 是最小的部署单元。当需要删除一个 Pod 时,可以通过以下方法实现: #### 1. **正常删除 Pod** 使用 `kubectl delete pod` 命令可以正常删除指定的 Pod: ```bash kubectl delete pod <pod_name> -n <namespace> ``` 此命令会优雅地终止 Pod,并等待其完全停止后再从集群中移除[^1]。 #### 2. **强制删除 Pod** 如果 Pod 处于异常状态(如 `Unknown` 或 `Terminating`),可以使用强制删除命令: ```bash kubectl delete pod <pod_name> --grace-period=0 --force -n <namespace> ``` 此命令通过设置 `--grace-period=0` 和 `--force` 参数来立即终止 Pod。需要注意的是,强制删除可能会导致数据丢失或脑裂问题,特别是对于由 StatefulSet 管理的 Pod,因此不建议在不确定 Pod 状态的情况下使用该方法[^2]。 #### 3. **删除特定命名空间中的所有 Pod** 如果需要删除某个命名空间下的所有 Pod,可以结合 `kubectl get pods` 和 `kubectl delete pod` 使用: ```bash kubectl get pods -n <namespace> -o name | xargs kubectl delete -n <namespace> ``` 此命令首先列出命名空间下的所有 Pod 名称,然后逐一删除它们[^3]。 #### 4. **通过删除 Node 间接删除 Pod** 如果 Pod 所在的 Node 出现问题(如宕机或失联),可以通过删除该 Node 来间接删除其上的所有 Pod: ```bash kubectl delete node <node_name> ``` 执行此操作后,Kubernetes 的节点生命控制器会将该 Node 标记为 `Unknown` 状态,并自动驱逐该 Node 上的所有 Pod。在物理机部署的集群中,管理员需要手动执行此操作[^1]。 #### 5. **查询 Pod 名称** 在删除 Pod 之前,可能需要先查询目标 Pod 的名称。可以通过以下命令查找: ```bash kubectl get pods -A | grep <podname> ``` 此命令会在所有命名空间中搜索包含特定关键字的 Pod 名称[^3]。 ### 注意事项 - 在删除 Pod 时,请确保不会影响到依赖该 Pod 的服务或工作负载。 - 如果 Pod 属于 ReplicaSet、Deployment 或 StatefulSet 等控制器管理,则删除 Pod 后,控制器会自动创建一个新的 Pod 替代它[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值