San*_* P. 20 kubernetes containerd
尝试将不安全的注册表添加到containerd配置中,如下所示:
[plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "/opt/cni/bin"
conf_dir = "/etc/cni/net.d"
max_conf_num = 1
conf_template = ""
[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 = ["https://registry-1.docker.io"]
[plugin."io.containerd.grpc.v1.cri".registry.mirrors."test.http-registry.io"]
endpoint = ["http://v048011.dom600.lab:5000"]
Run Code Online (Sandbox Code Playgroud)
即使将其添加到 后config.toml,当从不安全的注册表中提取映像时,它也会失败:
sudo ctr image pull v048011.dom600.lab:5000:5000/myjenkins:latest
ctr: failed to resolve reference "v048011.dom600.lab:5000/myjenkins:latest": failed to do request: Head https://v048011.dom600.lab:5000:5000/v2/myjenkins/manifests/latest: http: server gave HTTP response to HTTPS client
Run Code Online (Sandbox Code Playgroud)
docker我们可以将其添加insecure registry到文件中daemon.json,然后 docker 将从其中提取图像,我怎样才能在 中实现相同的目的containerd?替换 docker 作为 k8s 集群中的运行时。
ws_*_*ws_ 29
ctr 不读取/etc/containerd/config.toml 配置文件,这个配置被cri使用,这意味着kubectl或者crictl会使用它。
错误日志http: server gave HTTP response to HTTPS client显示注册表正在使用 http,但ctr正在尝试使用 https 进行连接。因此,如果你想从 http 中提取图像,你应该添加如下--plain-http参数:ctr
$ ctr image pull --plain-http <image>
Run Code Online (Sandbox Code Playgroud)
注册表配置文档在这里。
您应该能够使用 拉取镜像crictl,记得重新启动containerd。
$ sudo crictl -r /run/containerd/containerd.sock pull <image>
# or config runntime once for all
$ sudo crictl config runtime-endpoint /run/containerd/containerd.sock
$ sudo crictl pull <image>
Run Code Online (Sandbox Code Playgroud)
配置示例:
# /etc/containerd/config.toml
# change <IP>:5000 to your registry url
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."<IP>:5000"]
endpoint = ["http://<IP>:5000"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."<IP>:5000".tls]
insecure_skip_verify = true
Run Code Online (Sandbox Code Playgroud)
修改配置后重启服务。
$ ctr image pull --plain-http <image>
Run Code Online (Sandbox Code Playgroud)
添加以下配置:
[plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "/opt/cni/bin"
conf_dir = "/etc/cni/net.d"
max_conf_num = 1
conf_template = ""
[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 = ["https://registry-1.docker.io"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."test.http-registry.io"]
endpoint = ["http://v048011.dom600.lab:5000"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."test.http-registry.io".tls]
insecure_skip_verify = true
Run Code Online (Sandbox Code Playgroud)
应跳过测试注册表的 TLS 验证。另请参阅有关注册表 TLS 通信配置的文档。
编辑:请注意插件中的“s”,您的配置中有一个拼写错误。
注意:请务必重新启动 Containerd:
$ sudo systemctl restart containerd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39911 次 |
| 最近记录: |