关于使用kubeoperator搭建k8s集群使用containerd作为容器运行时,从自己搭建的habor仓库拉取镜像的有关说明
1.kubepi界面添加habor仓库信息,并授权给k8s集群
这一步的操作是当在工作负载选择从harbor仓库拉取镜像时会自动创建有关的secrets信息,从而不用事先手动创建了(有别于kuboard界面操作)
2.只是做好上一步并不能从harbor镜像库拉取镜像,会报错:
x509: certificate signed by unknown authority
原因是harbor配置的自签名的https,需要设置有关证书方面的信息
3.关于containerd设置从harbor拉取镜像,有两种方式
3.1 参考docker方式,创建/etc/containerd/certs.d/registy.myharbor.com
目录,在该目录下放置harbor的自签名证书
使用crictl命令拉取镜像进行验证,无法使用,仍会报同样的错误
注意:使用nerdctl命令拉取镜像就可以拉取下来
3.2 直接忽略证书验证
直接编辑containerd配置文件,参考原有写法,增加如下配置:
如下是老版的写法:
[plugins.cri.registry]
[plugins.cri.registry.mirrors]
[plugins.cri.registry.mirrors."registy.myharbor.com"]
endpoint = ["https://registy.myharbor.com"]
[plugins.cri.registry.configs]
[plugins.cri.registry.configs."registy.myharbor.com".tls]
insecure_skip_verify = true
把cri修改成"io.containerd.grpc.v1.cri"
新版写法:
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".mirrors]
[plugins."io.containerd.grpc.v1.cri".mirrors."registy.myharbor.com"]
endpoint = ["https://registy.myharbor.com"]
[plugins."io.containerd.grpc.v1.cri".configs]
[plugins."io.containerd.grpc.v1.cri"."registy.myharbor.com".tls]
insecure_skip_verify = true
但是,这种方法用nerdctl命令无法拉取镜像