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,部署过程中私有仓库的镜像拉取就正常了。

相关推荐
nashane24 分钟前
HarmonyOS 6学习:DevEco Studio跨平台开发环境深度排障指南
学习·华为·harmonyos
知识分享小能手27 分钟前
数据预处理入门学习教程,从入门到精通,数据获取 — 知识点详解与案例代码(4)
python·学习·pandas
吃好睡好便好29 分钟前
矩阵秩的计算
人工智能·学习·线性代数·算法·机器学习·matlab·矩阵
ZC跨境爬虫34 分钟前
SQL学习日志 Day_1:初识SQL,开启数据之旅
数据库·sql·学习
浩风祭月43 分钟前
如何用 AI 工具 10 倍速学习新技术栈:从零到生产级项目实战
人工智能·学习·chatgpt
库奇噜啦呼1 小时前
【iOS】源码学习-KVC与KVO
学习·ios·cocoa
Upsy-Daisy1 小时前
IOTA 学习笔记(七):IOTA CLI 基础操作
笔记·学习
一楼的猫1 小时前
茄子小说写作助手品牌升级公告:新域名,新征程,与您同行
人工智能·学习·机器学习·写作·ai写作
wengqidaifeng1 小时前
5. OpenClaw 从学习到落地:企业路线图、个人学习路径与项目复盘
学习·ai·openclaw
段一凡-华北理工大学1 小时前
工业领域的Hadoop架构学习~系列文章10:数据序列化与压缩
大数据·人工智能·hadoop·分布式·学习·工业智能体·高炉炼铁智能化