当前位置: 首页 > news >正文

【运维实战】解决 K8s 节点无法拉取 pause:3.6 镜像导致 API Server 启动失败的问题

目录

【运维实战】解决 K8s 节点无法拉取 pause:3.6 镜像导致 API Server 启动失败的问题

🔍 问题分析

✅ 解决方案:替代拉取方式导入 pause 镜像

Step 1. 从私有仓库拉取 pause 镜像

Step 2. 重新打 tag 为 Kubernetes 默认命名

Step 3. 导出镜像为 tar 包

Step 4. 拷贝镜像到目标节点

Step 5. 在目标节点导入镜像到 containerd 的 k8s.io 命名空间

Step 6. 验证镜像是否导入成功

📌 注意事项

📎 总结

【运维实战】解决 K8s 节点无法拉取 pause:3.6 镜像导致 API Server 启动失败的问题

在使用 Kubernetes 部署集群过程中,控制面组件 kube-apiserver 启动失败,多个节点处于 NotReady 状态。查看 kubelet 日志发现如下错误:

failed to get sandbox image "registry.k8s.io/pause:3.6": failed to pull image ...
dial tcp 173.194.202.82:443: i/o timeout

这说明节点无法从默认的 registry.k8s.io 拉取 pause:3.6 镜像,直接导致 Pod Sandbox 创建失败,从而影响整个控制平面组件运行。


🔍 问题分析

Kubernetes 默认使用 pause:3.6 镜像作为 Pod 的基础运行环境容器(Pod Sandbox),当节点访问公网受限或 GFW 屏蔽时,将无法拉取该镜像,导致所有 Pod 无法启动。

尽管可以通过修改 kubeletsandboxImage 参数绕过此问题,但某些环境中限制修改 kubelet 配置或容器运行时行为。因此本文采用 镜像替换 + 标准命名空间导入 的方式解决此问题。


✅ 解决方案:替代拉取方式导入 pause 镜像

我们通过手动拉取私有仓库中的 pause 镜像,并转换为标准命名,导入 containerd 默认命名空间,解决拉取失败问题。

Step 1. 从私有仓库拉取 pause 镜像

docker pull 10.130.135.145:30500/pause:3.6

Step 2. 重新打 tag 为 Kubernetes 默认命名

docker tag 10.130.135.145:30500/pause:3.6 registry.k8s.io/pause:3.6

Step 3. 导出镜像为 tar 包

docker save -o pause-3.6.tar registry.k8s.io/pause:3.6

Step 4. 拷贝镜像到目标节点

scp pause-3.6.tar root@<node-ip>:/tmp/

Step 5. 在目标节点导入镜像到 containerd 的 k8s.io 命名空间

sudo ctr -n k8s.io images import /tmp/pause-3.6.tar

Step 6. 验证镜像是否导入成功

sudo ctr -n k8s.io images ls | grep "pause:3.6"

输出如下表示成功:

registry.k8s.io/pause:3.6   ...   linux/amd64

📌 注意事项

  • 若使用 containerd,请确保命令中使用了 -n k8s.io 命名空间;

  • 若使用的是 crictl 工具,也可使用 crictl pull registry.k8s.io/pause:3.6 进行验证;

  • pause 镜像是所有 Pod 的基础容器,缺失将影响整个集群功能;

  • 建议在所有节点均完成此操作。


📎 总结

通过将 pause:3.6 镜像从私有仓库拉取并导入到 Kubernetes 标准命名,成功绕过公网拉取失败问题。这种方法无需修改 kubelet 配置,适用于限制场景,是生产环境中一个高效可靠的实战技巧。

http://www.dtcms.com/a/272244.html

相关文章:

  • 【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(三)
  • 华为昇腾NPU与NVIDIA CUDA生态兼容层开发实录:手写算子自动转换工具链(AST级代码迁移方案)
  • 缓存穿透与击穿多方案对比与实践指南
  • 设计模式的六大设计原则
  • AI问答之手机相机专业拍照模式的主要几个参数解释
  • 【笔记】使用 html 创建网址快捷方式
  • 达梦数据库DMDRS搭建单向dm8-dm8数据同步
  • 【工具教程】批量提取OCR图片中固定文字保存WPS表格,批量OCR识别图像中的文字保存到Excel表格的操作步骤和注意事项
  • 虚拟环境已安装该包,且已激活,但报错
  • 智能体的记忆系统:短期记忆、长期记忆与知识图谱
  • Spring for Apache Pulsar->Reactive Support->Quick Tour
  • 【LeetCode100】--- 1.两数之和【复习回滚】
  • 氢能源杂谈
  • 深入拆解Spring核心思想之一:IoC
  • 天津医大用网络药理学+分子对接发表中科院二区IF5
  • 【Python】基于Python提取图片验证码
  • SYM32第二十天 ESP8266-01S和电脑实现串口通信(3)
  • 羊肚菌自动采收车设计cad【7张】+三维图+设计说明书
  • 电脑息屏工具,一键黑屏超方便
  • 双esp8266-01之间UDP透传传输,自定义协议
  • LlamaFactory Demo
  • 使用langchain连接llama.cpp部署的本地deepseek大模型开发简单的LLM应用
  • CTFHub————Web{信息泄露[备份文件下载(vim缓存、.DS_Store)]}
  • turbopack打包机制
  • SQL的初步学习(一)(以MySQL为例)
  • 重置 Rust 工具链​
  • 缺乏项目进度对比历史数据,如何建立进度基线
  • 深度学习_全连接神经网络
  • UE5多人MOBA+GAS 17、制作小兵的动画蓝图、攻击GA以及死亡和复活的AI感知开关
  • Ajax之核心语法详解