如何在Kubernetes 1.27集群中将containerd默认镜像仓库改为Nexus代理
修改Kubernetes 1.27集群中containerd的默认镜像仓库为Nexus HTTP代理仓库
操作步骤(所有集群节点均需执行)
编辑containerd核心配置文件
打开/etc/containerd/config.toml,定位到[plugins."io.containerd.grpc.v1.cri".registry]区块,添加或修改镜像仓库配置:[plugins."io.containerd.grpc.v1.cri".registry] [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] endpoint = ["http://<你的Nexus代理地址>:<端口>"] [plugins."io.containerd.grpc.v1.cri".registry.configs] [plugins."io.containerd.grpc.v1.cri".registry.configs."<你的Nexus代理地址>:<端口>".tls] insecure_skip_verify = true替换
<你的Nexus代理地址>:<端口>为实际的Nexus Docker Hub代理地址(比如nexus.example.com:8082)。重启containerd服务
让配置生效:systemctl restart containerd重启kubelet服务(可选但建议)
确保kubelet感知到containerd的配置变更:systemctl restart kubelet
验证配置生效
查看containerd的镜像仓库配置:
crictl info | grep -A 15 "mirrors"输出中应能看到docker.io的endpoint指向你的Nexus代理地址。
拉取测试镜像验证:
crictl pull nginx查看Nexus的代理仓库日志,确认镜像请求已被代理处理。
注意事项
- 若集群节点较多,建议用批量运维工具(如Ansible)同步配置,避免逐节点手动操作出错。
- 确保Nexus的Docker Hub代理仓库处于正常运行状态,且节点网络能正常访问Nexus地址。
内容的提问来源于stack exchange,提问作者Ali farahzadi
相关产品推荐
相关产品推荐

