HOSTS方式对接
直接在config.toml中配置相关的证书参数对于Containerd默认使用的ctr是不生效的因为ctr不使用CRI;
因此它不读取配置中【plugins."io.containerd.grpc.v1.cri】配置的认证内容
我们可以使用Containerd支持的hosts方式去进行配置,可以实现ctr和nerdctl去对接Harbor
创建hosts.toml文件或者证书文件存储的目录,注意这个创建的目录名称必须是Harbor的域名(如果不是则报x509);然后将证书文件或者hosts.toml文件放入该目录下才会生效
mkdir -p /etc/containerd/certs.d/harbor.codemiracle.com/
修改config.toml配置
找到[plugins."io.containerd.grpc.v1.cri".registry]下的config_path,然后指定证书存储目录
vim /etc/containerd/config.toml
重启contained服务
systemctl restart containerd
HOSTS认证方式
方式1:忽略证书
忽略证书,就是我们只需要在/etc/containerd/certs.d/harbor.codemiracle.com/目录下面创建hosts.toml文件即可,不需要Harbor认证的自签名证书
vim /etc/containerd/certs.d/harbor.codemiracle.com/hosts.toml
[host."https://harbor.codemiracle.com"]
capabilities = ["pull", "resolve","push"]
skip_verify = true
#不需要重启服务,我们直接通过ctr跟nerdctl命令进行验证
方式2:带有证书
现在我们需要把自签名Harbor域名的CA证书上传到/etc/containerd/certs.d/harbor.codemiracle.com/目录下
在该目录下创建hosts.toml文件并指定CA证书
vim /etc/containerd/certs.d/harbor.codemiracle.com/hosts.toml
[host."https://harbor.codemiracle.com"]
capabilities = ["pull", "resolve","push"]
ca = ["ca.crt"]