k8s pod 处于Terminating的原因分析和解决处理——筑梦之路

之前整理了一下各种资源长时间无法回收,解决处理的命令行

k8s 各种资源Terminationg状态处理 ------ 筑梦之路_k8s自定义资源修改状态-CSDN博客

这里具体整理下pod长时间处于Terminating状态的相关知识,主要是对前面的补充和完善,作为笔记记录。

背景说明

当我们要删除一个Pod时,Kubernetes会发送删除命令,并开始删除操作。但是,Pod并不会立即被销毁。它先被放置在Terminating状态下,以便它可以完成正在进行的操作。但有时Pod会长时间停留在Terminating状态下,这可能会影响应用程序的正常运行。

常见原因

  1. Pod中有未处理完的请求或资源占用,如长时间运行的进程。
  2. Kubelet或Kubernetes控制平面出现故障,导致无法终止Pod。
  3. Pod中存在未正确关闭的文件描述符或套接字。

解决处理

1. 请求或资源占用

检查确认Pod中是否有未处理完的请求或资源占用,并终止它们。

在Pod中可能存在很多进程或服务,我们可以通过查看Pod的日志、进程列表和资源占用情况,来确定哪些进程或服务没有处理完请求或占用资源。

bash 复制代码
# 查看pod日志

kubectl logs <pod_name>

# 查看pod内进程信息

kubectl exec <pod_name> ps -ef

2. 未正确关闭的文件描述符或套接字

在Pod中可能存在文件描述符或套接字没有正确关闭的情况,这可能会导致Pod不能正常停止或销毁。我们可以通过查看Pod的日志,确认哪些进程或服务存在文件描述符或套接字没有关闭的情况。

这里操作同上,也是查看pod的日志和进程信息,就不再赘述。

3. 强制删除pod

这里就用到了之前那篇里面的命令,需要注意的是强制删除Pod可能会导致数据丢失或数据损坏。因此在进行操作之前,请确保您已经备份了相关数据。

bash 复制代码
kubectl delete pods <pod_name> --grace-period=0 --force

不到万不得已的情况,不建议直接强制删除pod,可以先尝试用其他处理方式来解决,这也是为了避免数据丢失或损坏。

相关推荐
Pocker_Spades_A34 分钟前
Penpot自托管设计协作:Docker部署、MCP接入与Codex生成UI实操记录
ui·docker·容器
Lvan的前端笔记10 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
谢亮_vipxieliang12 小时前
Kubernetes 的“操作系统化”:从容器编排到 AI 基础设施控制平面
人工智能·平面·kubernetes
sbjdhjd15 小时前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
热爱Liunx的丘丘人15 小时前
1、什么是K8s
云原生·容器·kubernetes
帷幕落秋17 小时前
Docker的两种安装
运维·docker·容器
工业一体机老司机17 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
fengkai454517 小时前
十二、Redis -2
运维·数据库·redis·容器
DolitD19 小时前
3D应用多实例并发中的GPU隔离技术路径分析
容器·gru·接口隔离原则
姜鱼问生21 小时前
docker exec 排查容器问题:从日志到进程
运维·网络·数据库·docker·容器