k3s默认使用的容器引擎为containerd,下文也以containerd访问registry为前提。
k3s的containerd与系统环境中的containerd不互通,其配置依赖 /var/lib/rancher/k3s/agent/etc/containerd/config.toml 。而这一文件不能主动的去修改,而是通过其他文件配置在k3s启动时生成的文件。
新建/修改 /etc/rancher/k3s/registries.yaml,格式如下:
mirrors:
"<ip>:<port>":
endpoint:
- "http://<ip>:<port>"
configs:
"<ip>:<port>":
auth:
username: xxxx
password: xxxxxxxxx
随后重启k3s,输出/var/lib/rancher/k3s/agent/etc/containerd/config.toml 验证结果,如果成功的话config.toml中应有
[plugins.cri.registry.mirrors."<ip>:<port>"]
endpoint = ["http://<ip>:<port>"]
[plugins.cri.registry.configs."<ip>:<port>".auth]
username = "xxxx"
password = "xxxxxxxxx"