k8s学习——升级后的k8s使用私有harbor仓库

升级后的k8s使用了第三方的容器管理器,安装了nerdctl工具来替代docker进行镜像管理。但是使用docker build打包并上传至harbor仓库的镜像,在部署过程中始终拉不下来,报错证书错误。通过journalctl -xe |grep kubelet 或 journalctl -xe |grep containerd 查看可以看到报错结果。

复制代码
containerd[3109309]: time="2024-07-18T18:41:26.197261520+08:00" level=error msg="PullImage \"core.harbor.shell.com:443/library/nettools:v1\" failed" error="failed 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,部署过程中私有仓库的镜像拉取就正常了。

相关推荐
悠闲蜗牛�16 分钟前
2026年边缘云原生实战:Kubernetes向边缘计算的全面演进
云原生·kubernetes·边缘计算
Elastic 中国社区官方博客17 分钟前
推出 Elastic Serverless Plus 附加组件,支持 AWS PrivateLink 功能
大数据·elasticsearch·搜索引擎·云原生·serverless·全文检索·aws
切糕师学AI25 分钟前
Kubernetes ReplicaSet 详解
云原生·容器·kubernetes
2501_9436953338 分钟前
大专商务数据分析与应用专业,怎么学习电商数据的埋点知识?
学习·数据挖掘·数据分析
陈天伟教授39 分钟前
人工智能应用- 材料微观:08.SliceGAN 的学习过程
人工智能·深度学习·学习
刘孬孬沉迷学习1 小时前
路由算法学习( Dijkstra 算法 Bellman-Ford方程算法)
网络·学习·智能路由器·信息与通信·dijkstra算法·路由算法·bellman-ford算法
2501_918126911 小时前
stm32什么程序效率最高,体积小,运行快,适应广?
c语言·stm32·单片机·嵌入式硬件·学习
2501_918126911 小时前
stm32能做次声波发射器吗?
linux·stm32·嵌入式硬件·学习·个人开发
weixin_458872611 小时前
东华复试OJ每日3题打卡·复盘97~99
学习
你怎么知道我是队长1 小时前
前端学习---HTML---第一个HTML程序
学习