news 2026/5/26 8:15:41

Containerd 运行时的 K8S 集群离线导入镜像的方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Containerd 运行时的 K8S 集群离线导入镜像的方案

目录

1. 准备与传输镜像

2. 导入镜像

3. 部署应用

4. 技巧与注意事项


在 Containerd 运行时的 K8S 集群中离线导入应用镜像,关键在于将镜像正确导入到 containerd 的k8s.io命名空间,并确保 K8S部署时能使用这些本地镜像。

1. 准备与传输镜像

首先,你需要在可以访问互联网的环境中,准备好要部署的应用镜像。

拉取并保存镜像:使用 Docker 拉取镜像,重新标记为符合 K8s 需求的标签(如需),然后导出为.tar文件。

docker pull <原镜像名称:标签> docker tag <原镜像名称:标签> <新镜像名称:标签> # 可选,使镜像标签符合部署要求 docker save -o <镜像文件名>.tar <新镜像名称:标签>
docker pull nginx:latest docker save -o nginx.tar nginx:latest
  • 提示docker save保存的是展开后的格式,文件可能较大。虽然docker save也支持输出为.tar.gz,但ctr image import命令不支持直接导入压缩格式,如果得到的是.tar.gz文件,需要先解压 。

  • 举例:如需部署nginx:latest,操作如下:

  • 传输镜像文件:将生成的.tar文件复制到离线环境中的 K8s 工作节点(如果需要部署到多个节点,则每个节点都需要复制)。scp <镜像文件名>.tar <用户名>@<节点IP>:<目

2. 导入镜像

这是最关键的一步,需要将镜像导入到 containerd 的正确命名空间中。

  • 导入镜像:登录到目标 K8s 节点,使用ctr命令导入镜像。务必使用-n k8s.io参数,这能确保镜像被导入到 Kubernetes 使用的命名空间 。

    ctr -n k8s.io image import <镜像文件名>.tar
    • 注意如果镜像文件是.tar.gz格式,需要先解压:

  • 验证导入:导入完成后,使用以下命令检查镜像是否存在。

    # 使用 ctr 查看 ctr -n k8s.io images list | grep <镜像名称> # 或者使用与 CRI 接口兼容的 crictl 查看 crictl images | grep <镜像名称>

3. 部署应用

镜像准备就绪后,就可以在 K8s 集群中部署你的应用了。

  • 创建部署配置文件:编写一个 K8s 的 Deployment YAML 文件。关键点在于需要设置imagePullPolicy: IfNotPresentimagePullPolicy: Never这会指示 Kubelet 不要尝试从远程仓库拉取镜像,而是直接使用本地已存在的镜像 。

    apiVersion: apps/v1 kind: Deployment metadata: name: your-app spec: replicas: 1 selector: matchLabels: app: your-app template: metadata: labels: app: your-app spec: containers: - name: your-app-container image: <你在节点上导入的完整镜像名称和标签> # 例如: nginx:latest imagePullPolicy: IfNotPresent # 重要! ports: - containerPort: 80
  • 应用配置:使用kubectl部署你的应用。

    kubectl apply -f your-deployment.yaml

4. 技巧与注意事项

  • 批量操作:如果需要导入多个镜像,可以写一个简单的循环脚本 。

    for image in /path/to/your/*.tar; do ctr -n k8s.io image import "$image" done
  • 镜像已经存在:如果导入时提示镜像已存在,可以使用ctr -n k8s.io images rm <镜像名>先删除旧镜像再导入,或者使用--force选项强制替换(如果ctr版本支持)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 15:18:02

19、Windows Deployment Services:全面指南与操作详解(上)

Windows Deployment Services:全面指南与操作详解(上) Windows Deployment Services (WDS) 是部署新系统的强大工具,本文将详细介绍其各项功能及操作步骤。 1. WDS相关任务概述 WDS安装和配置完成后,其实际使用较为直接。相关任务包括: - 创建捕获映像(Capture imag…

作者头像 李华
网站建设 2026/5/26 5:57:59

22、Windows Vista系统管理与维护全攻略

Windows Vista系统管理与维护全攻略 1. 任务与事件关联及事件收集 在Windows Vista系统中,可以通过命令行将任务与事件关联。要实现这一操作,需要以下值: - 事件生成的事件日志 - 事件的来源 - 事件ID 这些值可以通过事件查看器或 wevtutil.exe 命令(使用适当的开关…

作者头像 李华
网站建设 2026/5/26 3:24:10

24、Windows Vista系统管理与安全防护全解析

Windows Vista系统管理与安全防护全解析 自动化任务调度 在Windows Vista中,PowerShell和命令提示符项都能通过任务计划程序实现自动化。不过,使用命令文件创建自动化任务时,有几点需要特别注意: - 命令可用性 :如果任务调用特殊命令,如 uptime 命令,要确保任务运…

作者头像 李华
网站建设 2026/5/25 10:12:23

26、Windows系统用户数据保护策略全解析

Windows系统用户数据保护策略全解析 在当今数字化时代,数据安全和保护对于企业和组织来说至关重要。尤其是在使用Windows系统时,如何有效地保护用户数据成为了管理员必须面对的重要任务。本文将详细介绍Windows系统中用户数据保护的相关策略和方法。 1. 安全与数据保护的重…

作者头像 李华
网站建设 2026/5/25 15:46:42

29、系统保护与维护全攻略

系统保护与维护全攻略 1. 数据保护策略 在当今信息时代,数据保护至关重要。信息盗窃是恶意用户常见的活动,他们通过垃圾邮件技术或窃取便携式计算机来实施盗窃。因此,我们需要选择合适的数据保护策略,确保即使便携式计算机丢失或被盗,数据也不会被盗取。 1.1 获取恢复密…

作者头像 李华
网站建设 2026/5/24 13:08:47

微观交通流仿真软件:VISSIM_(2).交通网络建模

交通网络建模 1. 交通网络的基本概念 在微观交通流仿真软件中&#xff0c;交通网络是模拟车辆行驶的基础。交通网络由多个元素组成&#xff0c;包括路段、节点、交叉口、信号灯等。这些元素通过特定的连接方式形成一个完整的网络&#xff0c;用于描述车辆在实际交通中的行驶路径…

作者头像 李华