1、拉取镜像需要https,配置自建证书后还有报错解决

在这里插入图片描述

#在node节点上的/etc/containerd/目录下创建certs.d目录
#] mkdir -p /etc/containerd/certs.d

#并在certs.d目录下创建harbor自建证书使用的域名目录
#] cd /etc/containerd/certs.d/
#] mkdir harbor.ming.com

#复制harbor上证书文件ca.crt到/etc/containerd/certs.d/harbor.ming.com目录下
#创建hosts.toml文件,写入以下内容
#]cat hosts.toml
server = "https://harbor.ming.com"
[host."https://harbor.ming.com"]
  capabilities = ["pull", "resolve"]
  ca = "/etc/containerd/certs.d/harbor.ming.com/ca.crt"		#ca证书文件存放位置
[host."https://harbor.ming.com".header]
  Authorization = ["Basic EuYWRtaW46Y29tU3pnbGMTIz"]		#认证信息
															#Authorization获取生成 Basic 认证字符串[echo -n "username:password" | base64]其中username:password,分别是harbor的用户名和密码。

#修改containerd的配置文件config.toml
#] vim /etc/containerd/config.toml
	[plugins."io.containerd.grpc.v1.cri".registry]
		config_path = "/etc/containerd/certs.d"

#重启containerd服务
#systemctl restart containerd.service

#测试
#] ctr image pull harbor.ming.com/library/nginx:latest

在这里插入图片描述

如果此时执行拉镜像还是有报错,提示证书验证失败

在这里插入图片描述

①检查域名解析是否有问题

②手动测试ca证书是否可以拉到镜像

#] ctr image pull --user username:password --tlscacert /etc/containerd/certs.d/harbor.ming.com/ca.crt harbor.ming.com/library/nginx:latest

在这里插入图片描述

③如果上面都没有问题,还有报错就检查下系统信任的证书目录是否有对应的证书文件(/etc/ssl/certs/)

④基本都是系统信任的证书目录没有对应的证书文件才出现的报错,下面解决一下:

#将 Harbor 的 CA 证书复制到系统信任的证书目录
#] cp /etc/containerd/certs.d/harbor.ming.com/ca.crt /etc/ssl/certs/harbor-ca.crt

#更新系统证书信任列表
#] update-ca-certificates

验证客户端是否信任 Harbor 的证书:
#] openssl verify -CAfile /etc/ssl/certs/harbor-ca.crt /etc/containerd/certs.d/harbor.ming.com/ca.crt

然后再尝试拉镜像就没有问题了

在这里插入图片描述

完成。

更多推荐