k8s镜像推送到阿里云,使用ctr推送镜像到阿里云

ctr推送或拉取镜像有几个好处:不需要用仓库名重新命名镜像、不需要使用docker登录(直接指定凭证),免去安装docker。

(crictl不支持镜像推送,但使用起来非常接近docker,拉取镜像或其他操作适合使用)

-n :指定命名空间,不指定默认ctr查看不到k8s镜像,ctr原生和k8s是隔离开来的,要不就使用circtl查看,但是circtl不能推送镜像

java 复制代码
# 查看本地是否存在要推送的镜像
ctr -n k8s.io images ls | grep nginx
java 复制代码
#k8s容器推送镜像到阿里云/或者自己的私有库
ctr -n k8s.io images push   --platform linux/amd64   crpi-xxxx-xxx.aliyuncs.com/namespace/nginx:latest   docker.io/library/nginx:latest   --user xxx:password

详细的参数含义:crictl不能推镜像,目前只能使用docker和ctr推送镜像

python 复制代码
ctr   #containerd 原生工具,containerd是k8s从docker分离出来的容器核心技术,更快

-n k8s.io   #指定镜像k8s隔离的命名空间

--platform  #指定架构版本,不设置架构版本,私有仓库是不支持直接推送索引的

xxxx.com.rep/namespace/nginx:latest    #目标地址aliyun仓库地址/命名空间(推送aliyun镜像必须)/镜像名称 (可以自己命名)

docker.io/library/nginx:latest     #源镜像名称

--user   username:password   #阿里云凭证

附带:ctr 🆚 crictl 核心区别概览

维度 ctr crictl
全称 containerd CLI CRI CLI
设计目标 containerd 的通用命令行工具 Kubernetes CRI 接口的调试工具
遵循标准 containerd 原生 API Kubernetes CRI (Container Runtime Interface)
主要用途 管理 containerd 本身(镜像、容器、快照等) 调试 Kubernetes 节点上的 Pod、容器、镜像
命名空间 默认 default,需手动指定 -n k8s.io 自动使用 k8s.io 命名空间
是否支持 Pod ❌ 不直接支持(实验性 ctr pods ✅ 完全支持
适用环境 任何使用 containerd 的环境 主要用于 Kubernetes 节点
兼容性 仅 containerd 任何 CRI 运行时(containerd, CRI-O)

使用场景建议

场景 推荐工具 原因
调试 Kubernetes Pod 启动失败 crictl 能看 Pod 状态、事件、日志、沙箱容器
查看 kubelet 拉取了哪些镜像 crictl images 直接对应 Kubernetes 视角
手动推送镜像到私有仓库 ctr crictl 不支持 push
导出/导入镜像(类似 save/load) ctr crictl 不支持
直接管理 containerd(无 Kubernetes) ctr 更通用,功能更全
查看容器运行时统计信息 crictl stats 提供 CPU、内存、网络实时数据

总结

ctr crictl
定位 containerd 的"瑞士军刀" Kubernetes 节点的"诊断仪"
类比 就像 docker 之于 Docker 就像 kubectl 之于 API Server
何时用 管理镜像、推送、底层调试 排查 Pod 问题、看日志、查事件
关键参数 -n k8s.io 无需,自动连接 k8s.io
相关推荐
蜜蜜不吃糖3 小时前
解决Vcenter告警datastore存储容量不足问题
linux·运维·服务器
zzz.103 小时前
top命令的详解
linux·服务器·网络
东城绝神3 小时前
《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署redis 7.4.5容器版分片集群》
linux·运维·redis·架构·分片集群
馨谙3 小时前
网络故障排查三板斧:路由追踪、端口检查,快速定位网络问题
linux·网络
herinspace3 小时前
如何设置电脑分辨率和显示缩放
服务器·数据库·智能手机·电脑
报错小能手3 小时前
linux学习笔记(49)Redis详解(1)
linux·笔记·学习
QT 小鲜肉3 小时前
【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
linux·windows·笔记·学习·adb
迷路爸爸1803 小时前
解决GitHub SSH密钥冲突:一台电脑多账户配置
运维·ssh·github
panplan.top4 小时前
Tornado + Motor 微服务架构(Docker + 测试 + Kubernetes)
linux·python·docker·微服务·k8s·tornado
newxtc4 小时前
【浙江政务服务网-注册_登录安全分析报告】
运维·selenium·安全·政务