1. 课程概述:Deployment 镜像拉取失败的节点资源排查

1.1 问题场景与影响

在 Kubernetes 生产环境中,镜像拉取失败(ImagePullBackOff / ErrImagePull) 是最常见的 Pod 启动故障之一。这类问题不仅导致服务无法正常上线,还会引发级联故障——例如 HPA 扩容时新 Pod 卡在拉取阶段、滚动更新被阻塞、集群资源被无效 Pod 占用等。

根据实际运维统计,镜像拉取失败的原因可归纳为以下六大类:

故障类别 典型表现 影响范围
镜像仓库不可达 连接超时、DNS 解析失败 整个集群或特定节点
认证/授权错误 Unauthorized、denied 使用私有仓库的 Deployment
镜像不存在或标签错误 manifest unknown、not found 特定镜像版本
节点磁盘空间不足 no space left on device 单个节点
节点资源耗尽 节点磁盘压力、inode 耗尽 单个节点
镜像拉取限流/并发限制 rate limit exceeded 节点或仓库级别
⚠️ 关键认知: 超过 40% 的镜像拉取失败问题根源在节点资源层面(磁盘空间、inode、容器运行时状态),而非镜像仓库或认证配置。本课程聚焦于节点资源维度的系统性排查方法。

1.2 课程目标与学习路径

本课程旨在帮助运维人员建立一套从现象到根因的节点资源排查方法论,覆盖以下核心能力:

  • 快速定位:通过 kubectl describe pod、kubectl get events 和节点指标,在 30 秒内判断是否为节点资源问题。
  • 深度诊断:使用 df -h、df -i、du -sh、crictl 等工具精确分析磁盘、inode、容器运行时状态。
  • 根因隔离:区分磁盘空间不足、inode 耗尽、容器镜像层残留、日志文件膨胀等不同资源瓶颈。
  • 恢复与预防:制定节点资源清理策略、配置 Pod 驱逐阈值、设置镜像垃圾回收参数。
📌 适用对象: Kubernetes 运维工程师、SRE、平台工程师。需要具备基本的 kubectl 操作经验和 Linux 系统管理基础。

1.3 排查流程总览

下图展示了从 Deployment 镜像拉取失败到节点资源根因定位的完整排查链路:

Deployment 镜像拉取失败 → 节点资源排查流程 Pod ImagePullBackOff ① kubectl describe pod → 查看 Events ② 错误信息是否包含磁盘/资源相关? 是 否 节点资源排查 磁盘 / inode / 运行时 其他原因排查 认证 / 仓库 / 镜像 df / du / crictl 诊断 本课程重点覆盖:节点资源排查分支的完整方法论 包括磁盘空间、inode、容器镜像层、日志清理等场景

1.4 课程章节结构

本课程共 30 章,按排查深度分为四个阶段:

阶段 章节范围 核心内容
基础诊断 第 1-8 章 事件分析、kubectl 命令、节点基础指标采集
磁盘空间排查 第 9-15 章 df/du 分析、镜像层占用、日志文件清理策略
inode 与运行时 第 16-22 章 inode 耗尽、容器运行时状态、crictl 深度诊断
预防与自动化 第 23-30 章 驱逐阈值配置、镜像GC、监控告警、自动化清理
💡 学习建议: 建议按顺序学习,但如果你当前正遇到线上故障,可以直接跳到第 9 章(磁盘空间排查)或第 16 章(inode 排查),快速获取可操作的排查命令。