设置WordPress注册,湖南网站建设seo,淮北建筑大学,个人网站开发用到的技术升级后的k8s使用了第三方的容器管理器#xff0c;安装了nerdctl工具来替代docker进行镜像管理。但是使用docker build打包并上传至harbor仓库的镜像#xff0c;在部署过程中始终拉不下来#xff0c;报错证书错误。通过journalctl -xe |grep kubelet 或 journalctl -xe |grep…升级后的k8s使用了第三方的容器管理器安装了nerdctl工具来替代docker进行镜像管理。但是使用docker build打包并上传至harbor仓库的镜像在部署过程中始终拉不下来报错证书错误。通过journalctl -xe |grep kubelet 或 journalctl -xe |grep containerd 查看可以看到报错结果。
containerd[3109309]: time2024-07-18T18:41:26.19726152008:00 levelerror msgPullImage \core.harbor.shell.com:443/library/nettools:v1\ failed errorfailed to pull and unpack image \core.harbor.shell.com:443/library/nettools:v1\: failed to resolve reference \core.harbor.shell.com:443/library/nettools:v1\: failed to do request: Head \https://core.harbor.shell.com:443/v2/library/nettools/manifests/v1\: tls: failed to verify certificate: x509: certificate signed by unknown authority
在/etc/containerd/certs.d 目录下效仿docker设置将证书放在core.harbor.shell.com:443目录下。重新加载配置重启kubelet、containerd甚至docker后依旧是报错。很奇怪的是使用sudo nerdctl login core.harbor.shell.com:443 登录还能登录成功。后来看了一篇文章才知道nerdctl工具没有安装完全除了nerdctl工具外还要安装buildctl工具否则nerdctl build 不能使用同时还需要启动一个buildkitd服务。其工具的下载地址
wget https://github.com/moby/buildkit/releases/download/v0.15.0/buildkit-v0.15.0.linux-amd64.tar.gz
可参考Containerd 高级命令行工具 nerdctl安装文档_nerdctl 安装-CSDN博客
如果不安装buildctl工具通过命令 nerdctl version 也会警告没有安装buildctl工具。
等把所有节点全部安装了buildctl 并启动了buildkit服务后再重启kubelet、containterd部署过程中私有仓库的镜像拉取就正常了。