• 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的日志、进程列表和资源占用情况,来确定哪些进程或服务没有处理完请求或占用资源。

    1. # 查看pod日志
    2. kubectl logs
    3. # 查看pod内进程信息
    4. kubectl exec ps -ef

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

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

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

    3. 强制删除pod

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

    kubectl delete pods  --grace-period=0 --force

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

  • 相关阅读:
    JVM学习笔记(五)内存模型
    Juint-单元测试
    基于PHP+MYSQL药店会员管理系统的设计与实现
    力扣207、课程表 【图】
    二叉树的性质
    .NET 高效灵活的API速率限制解决方案
    Ascend C 自定义算子 Kernel Launch调用入门
    3712. 根能抵达的点
    为什么python量化书籍都不讲金融只讲编程?
    设计模式--适配器模式
  • 原文地址:https://blog.csdn.net/qq_34777982/article/details/134416091