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,可以先尝试用其他处理方式来解决,这也是为了避免数据丢失或损坏。

相关推荐
我是谁??2 小时前
ubuntu22.04 通过docker部署vLLM(Qwen3-0.6B)大模型+New API+OpenWebUI
docker·容器·vllm
Patrick_Wilson2 小时前
K8s 探针避坑:Next.js 不同部署模式下的健康检查实践
kubernetes·node.js·next.js
运维瓦工2 小时前
DevOps 生态介绍(十):Docker Compose 核心 YAML 配置详解与常用命令大全
spring cloud·docker·容器
云烟成雨TD3 小时前
Spring AI 1.x 系列【59】容器化开发支持:Docker Compose 与 Testcontainers
人工智能·spring·docker
Plastic garden3 小时前
K8s(10)NFS 的动态 PV 创建数据库给k8s的mysql和redis
docker·容器·kubernetes
Plastic garden3 小时前
k8s(11) Pod 控制器,服务发现与存储管理
kubernetes
与海boy3 小时前
docker compose minio
docker·容器·eureka
JimCarter4 小时前
使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上
docker·azure·树莓派·devops·orangepi·香橙派·raspberrypi
武子康4 小时前
调查研究-167 Docker Compose 详解:从单容器到多服务编排的工程化入口
运维·docker·云原生·容器·kubernetes·k8s·docker-compose