k8s使用harbor私库
·
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
然后再尝试拉镜像就没有问题了

完成。
更多推荐
所有评论(0)