K8s containerd 镜像配置教程
适用于使用 containerd 的系统,如 Kubernetes(k3s / cri-o)或自建 containerd 环境,支持通过配置专属镜像域名专属域名提升镜像拉取速度、可控性与可用性。本教程同时支持 containerd v1.x 和 v2.x 版本,请根据您的版本选择对应的配置方式。
1适用版本
本手册适用于以下 containerd 版本,请先确认您的版本:
| containerd 版本 | 配置方式 | 说明 |
|---|---|---|
| < 1.4 | 不支持 | 语法不同 |
| 1.4 ~ 1.7.x | config.toml | 完全支持(见下方 v1.x 配置) |
| ≥ 1.7.x (v1.x) | config.toml | 推荐使用(见下方 v1.x 配置) |
| ≥ 2.0 (v2.x) | hosts.toml | 配置方式不同(见下方 v2.x 配置) |
请使用以下命令查看版本:
containerd --version
2配置文件路径(v1.x)
containerd 的默认配置文件为:
/etc/containerd/config.toml
如未生成此文件,可使用以下命令初始化默认配置:
containerd config default > /etc/containerd/config.toml
3镜像源配置示例(v1.x)
请在 config.toml 中添加以下配置(位于 plugins."io.containerd.grpc.v1.cri".registry.mirrors 节点):
💡重要提示:请将配置中的 xxx 替换为您的专属域名前缀。例如,如果您的专属域名为 123abc.xuanyuan.run,则应将 xxx 替换为 123abc。
说明:多个 endpoint 可按优先级排列,containerd 会依次尝试,直到成功。
最佳实践:docker.io 的配置中,我们添加了 https://registry-1.docker.io 作为 fallback endpoint。这样即使专属域名配置有误或不可用,containerd 仍可回退到官方源,确保服务不会中断。
注意:以上配置已包含常用镜像仓库,如果您的项目使用其他镜像仓库,请参考上述格式自行添加配置。
扩展配置示例:
4TLS 注意事项(v1.x)
如果因偶发情况触发证书验证失败。可使用以下配置忽略 TLS 校验:
[plugins."io.containerd.grpc.v1.cri".registry.configs."xxx.xuanyuan.run".tls] insecure_skip_verify = true
可针对不同域名分别设置。
5应用配置(v1.x)
配置修改完成后,需重启 containerd:
sudo systemctl restart containerd
建议重启后使用 journalctl -u containerd -f 观察是否有报错信息。
6验证配置是否生效(v1.x)
方法一:拉取镜像并观察网络行为
sudo crictl pull docker.io/library/nginx:alpine
或使用 nerdctl:
sudo nerdctl pull nginx:alpine
若配置生效,镜像将从你设置的专属域名拉取,而非默认 registry-1.docker.io。
7常见问题
- config.toml 配置无效或路径错误
- config.toml 配置中没有配置对应的仓库
- 专属域名没有流量
- 确认文件路径和语法,或重建配置文件
- journalctl -u containerd -f 观察报错信息,看看具体是哪个仓库链接不上,配置到 config.toml 中
- 前往充值页面充值流量包
- hosts.toml 文件路径错误或不存在
- hosts.toml 配置语法错误
- 未为对应的镜像仓库创建 hosts.toml 文件
- 使用了错误的配置方式(v2.x 不能使用 v1.x 的 config.toml 配置)
- 确认 hosts.toml 文件路径正确
- 检查 hosts.toml 文件语法是否正确
- 为每个需要访问的镜像仓库创建对应的目录和 hosts.toml 文件
- 确认使用的是 v2.x 配置方式,参考上方的 v2.x 配置指南
- 使用了 v1.x 的 config.toml 配置方式(v2.x 不支持)
- hosts.toml 文件路径或格式错误
- 确认 containerd 版本,v2.x 必须使用 hosts.toml 配置
- 参考上方的 v2.x 配置指南重新配置
镜像拉取常见问题
使用与功能问题
错误码与失败问题
manifest unknown 错误:镜像不存在或标签错误
manifest unknown 错误
TLS/SSL 证书验证失败:Docker pull 时 HTTPS 证书错误
TLS 证书验证失败
DNS 解析超时:无法解析镜像仓库地址或连接超时
DNS 解析超时
410 Gone 错误:Docker 版本过低导致协议不兼容
410 错误:版本过低
402 Payment Required 错误:流量耗尽错误提示
402 错误:流量耗尽
401 UNAUTHORIZED 错误:身份认证失败或登录信息错误
身份认证失败错误
429 Too Many Requests 错误:请求频率超出专业版限制
429 限流错误
Docker login 凭证保存错误:Cannot autolaunch D-Bus(不影响登录)
凭证保存错误
账号 / 计费 / 权限
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务