k8s启空容器用于排查问题

如果 Pod 一会儿就销毁了,可能是由于 Pod 配置、节点状态或容器运行时问题导致的。

此时想进容器排查,但是pod一会儿就销毁了,不利于排查。

为了排查问题,可以启动一个空容器来临时保留 Pod,进而进入 Pod 内部进行调试。以下是具体的操作步骤:

  1. 启动一个空容器
    可以通过以下 YAML 文件定义一个简单的空容器,将其挂载到目标 Pod 中,以便进行调试:
yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: debug-pod
spec:
  containers:
    - name: debug-container
      image: busybox
      command: ["/bin/sh", "-c", "sleep 3600"]
      volumeMounts:
        - name: debug-volume
          mountPath: /debug
  volumes:
    - name: debug-volume
      emptyDir: {}

busybox 镜像用于启动一个简单的容器,sleep 3600 使容器保持运行状态

emptyDir 卷用于挂载一个临时目录,方便在调试过程中存储临时文件。

附:你也可以将自己容器的命令前添加sleep 3600来排查,不用单独启busybox

另外sleep 命令可以替换为 tail -f /dev/null,以保持容器处于运行状态。实际上,tail -f /dev/null 是一种常见的替代方法,用于让容器持续运行而不执行任何实际任务。

  • 资源占用更低:sleep 会占用一个进程,而 tail -f /dev/null 几乎不会占用任何资源。
  • 更灵活:tail -f /dev/null可以随时通过信号中断,而 sleep 在睡眠期间无法被中断。
相关推荐
yuezhilangniao31 分钟前
**国内阿里云环境**ubuntu22安装k8s1.32
阿里云·kubernetes·云计算
遇见火星8 小时前
Docker Compose 完全入门:一键启动所有容器
运维·docker·容器·docker compose
蘋天纬地13 小时前
k8s的控制平面是什么,有什么作用
容器·kubernetes
无级程序员15 小时前
clklog地域分析中的地名中英文对照问题解决
kubernetes
加加and减减18 小时前
Docker真实安装mysql8教程并优化配置
运维·mysql·docker·容器
qiuziqiqi20 小时前
ocker-compose.yml 和Dockerfile 区别
运维·docker·容器
杰克逊的日记20 小时前
如何在不影响业务的情况下对K8S集群升级
云原生·容器·kubernetes
逻极20 小时前
Kubernetes 从入门到精通:云原生容器编排
kubernetes·k8s·服务发现·容器编排
nvd1121 小时前
Terraform 避坑:模块下线时,如何不破坏已有的 Instance Template?
云原生·terraform
极客先躯1 天前
高级java每日一道面试题-2026年02月03日-实战篇[Docker]-如何备份和恢复 Docker Volume?
运维·docker·容器·自动化·备份·持久化·恢复