当前位置: 首页 > news >正文

如何令containerd连接私有harbor

尝试用kubeadmin安装k8s 1.27.6,并使用containerd来运行容器,结果containerd连harbor这个问题搞了我一天,终于搞通了
首先,我的环境
centos 8

harbor使用自签证书安装

containerd版本1.6.26

接着参考网上很多方法,搞了一天,结果都失败
例如:

参考Containerd+Harbor私有仓(https) - AGou's Blog 改 config.toml  配置文件,最终尝试失败         

参考 https://medium.com/@schottz/how-to-skip-tls-verify-fot-internal-registry-on-containerd-e039887bcb83也是失败

心灰意冷,准备换回docker,后来找到这篇文章https://www.cnblogs.com/hukey/p/17293126.html发现情况跟我一样,我的harbor也是只有IP,虽然使用的是https,但端口号改了3443,参考做法,居然成功了,总结步骤如下

1、建立一个名字与harbor IP地址一样的目录,一定要包括端口号,例如:
mkdir -p /etc/containerd/certs.d/10.1.40.101:3443

2、在这个目录下 建立一个 hosts.toml文件,录入如下内容:
server = "https://10.1.40.101:3443"
[host."https://10.1.40.101:3443"]
  capabilities = ["pull", "resolve","push"]
  skip_verify = true 

3、编辑containerd的配置文件vim /etc/containerd/config.toml,增加如下内容

    [plugins."io.containerd.grpc.v1.cri".registry]
      config_path = "/etc/containerd/certs.d" #指向/etc/containerd/certs.d这个目录
 

4、重启containerd,systemctl restart containerd

验证结果,尝试拉取镜像:

没有配置之前,报错如下:
[root@master-3-133 containerd]# crictl pull  10.1.40.101:3443/common/redis/redis-stack:6.2.6-v9
I0122 08:30:15.462578 2413225 util_unix.go:103] "Using this endpoint is deprecated, please consider using full URL format" endpoint="/run/containerd/containerd.sock" URL="unix:///run/containerd/containerd.sock"
E0122 08:30:15.497197 2413225 remote_image.go:171] "PullImage from image service failed" err="rpc error: code = Unknown desc = failed to pull and unpack image \"10.10.40.101:3443/common/redis/redis-stack:6.2.6-v9\": failed to resolve reference \"10.10.40.101:3443/common/redis/redis-stack:6.2.6-v9\": failed to do request: Head \"https://10.10.40.101:3443/v2/common/redis/redis-stack/manifests/6.2.6-v9\": tls: failed to verify certificate: x509: cannot validate certificate for 10.1.40.101 because it doesn't contain any IP SANs" image="10.10.40.101:3443/common/redis/redis-stack:6.2.6-v9"
FATA[0000] pulling image: rpc error: code = Unknown desc = failed to pull and unpack image "10.1.40.101:3443/common/redis/redis-stack:6.2.6-v9": failed to resolve reference "10.1.40.101:3443/common/redis/redis-stack:6.2.6-v9": failed to do request: Head "https://10.1.40.101:3443/v2/common/redis/redis-stack/manifests/6.2.6-v9": tls: failed to verify certificate: x509: cannot validate certificate for 10.1.40.101 because it doesn't contain any IP SANs 

配置后,

[root@master-3-133 containerd]# crictl pull  10.1.40.101:3443/common/redis/redis-stack:6.2.6-v9
I0122 08:44:31.147642 2419281 util_unix.go:103] "Using this endpoint is deprecated, please consider using full URL format" endpoint="/run/containerd/containerd.sock" URL="unix:///run/containerd/containerd.sock"
Image is up to date for sha256:b1a05aca249e8ae184495b7dc225bee8fcb76a44d980a3ad127e1aaf0bb0c996

搞了一天,终于搞通了,无论做科研,搞研究,只要不放弃,肯努力一定会有收获的
 

相关文章:

  • SQL基础知识(四)
  • Golang内置类型和函数及接口、Init函数和main函数
  • 无状态应用管理Deployment
  • 面试经典题---3.无重复字符的最长子串
  • php二次开发股票系统代码:腾讯股票数据接口地址、批量获取股票信息、转换为腾讯接口指定的股票格式
  • 幻兽帕鲁服务器数据备份
  • x-cmd pkg | httpx - 为 Python 设计的下一代 HTTP 客户端库
  • 04 SB实战 -微头条之头条模块(登录验证拦截器+发布文章+修改文章)
  • 分享7种SQL的进阶用法
  • 【OCC学习23】使用Draw探索OCC API 【完结】
  • 【Py/Java/C++三种语言OD2023C卷真题】20天拿下华为OD笔试之【DP】2023C-分班【欧弟算法】全网注释最详细分类最全的华为OD真题题解
  • 基于k折交叉验证的支持向量机SVM的多分类预测,SVM的详细原理,SVM工具箱详解及注意事项
  • 【Image captioning】论文阅读七—Efficient Image Captioning for Edge Devices_AAAI2023
  • Prometheus插件安装kafka_exporter
  • [极客大挑战 2019]LoveSQL1
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • Android系统模拟器绘制实现概述
  • Angularjs之国际化
  • Apache Spark Streaming 使用实例
  • Fabric架构演变之路
  • windows-nginx-https-本地配置
  • XML已死 ?
  • 半理解系列--Promise的进化史
  • 初探 Vue 生命周期和钩子函数
  • 动态魔术使用DBMS_SQL
  • 关于List、List?、ListObject的区别
  • 类orAPI - 收藏集 - 掘金
  • 为视图添加丝滑的水波纹
  • elasticsearch-head插件安装
  • ​虚拟化系列介绍(十)
  • #pragam once 和 #ifndef 预编译头
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (BFS)hdoj2377-Bus Pass
  • (rabbitmq的高级特性)消息可靠性
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (笔试题)分解质因式
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (六)vue-router+UI组件库
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (译) 函数式 JS #1:简介
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)大型网站的系统架构
  • (转)为C# Windows服务添加安装程序
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .gitignore文件—git忽略文件
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .sys文件乱码_python vscode输出乱码
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [AIGC codze] Kafka 的 rebalance 机制