containerd 对接harbor仓库,证书问题解决

一、解决问题:

二、解决步骤

 1、解决cri工具对于证书的信任问题

[root@oula-k8s-02 anchors]# ls /etc/containerd/certs.d/harbor.com\:543/
ca.crt  harbor.com.cert  harbor.com.key  

ca.crt CA机构证书
harbor.com.cert   harbor.com 域名证书

harbor.com.key   harbor.com 密钥

harbor官网对于证书有非常详细的生成教程,不多说。

2.解决本机对于自签名证书的信任问题

\[root@oula-k8s-02 anchors]# ls -l
总用量 8
-rw-r--r-- 1 root root 2041  7月 17 16:58 ca.crt
-rw-r--r-- 1 root root 2098  7月 17 16:58 harbor.com.crt

把ca.crt 、  harbor.com.crt 放在 /etc/pki/ca-trust/source/anchors 目录下,(不同OS不同),需要使得主机信任这个自签名证书,其他公有云的仓库不需要是因为他们的ca证书签发是主机本身就信任的CA机构签发的证书所以不涉及

3.更新CA机构以及CA签发的证书

 update-ca-trust

4.仓库信任顺序

1、你通过nerdctl或docker等客户端工具进行传递的user以及passwd,优先于你配置的cri的auth字段。

例如:nerdctl login \ docker login 等等

保存在~/..docker/config.json.这个文件中置. --优先

2、如果没有传递参数,如 nerdctl login +<server>,则读取你的配置的cri的配置。

配置文件在:

/etc/containerd/config.toml中.

例如:
[plugins."io.containerd.grpc.v1.cri".registry]
      config_path = "/etc/containerd/certs.d"
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
          [plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.com".auth]
            username = "xxxxxx"
            password = "xxxxxx"


3、一般不需要配置,你使用 cli工具 login 仓库,进行更新你的~/.docker/ config.json 文件就行。

猜你喜欢

转载自blog.csdn.net/weixin_46510209/article/details/131770423