问题:
jenkins服务器使用docker login <harbor仓库> 提示contection failed
原因:
我这里部署harbor镜像仓库使用的是http,不是https,所以需要配置Insecure Registries,以便Docker能够与这些Registry建立连接。
配置Insecure Registries
首先,找到docker的配置文件,通常是/etc/docker/daemon.json,如果文件不存在,你可以创建它。在这个文件中,你需要添加一个键值对,指定需要允许的Registry的IP地址或域名,例如:
{
"insecure-registries": ["192.168.1.2:5000"]
}
配置完成后,保存文件并 systemctl restart docker 重新启动Docker服务,即可生效。
注意:是所有kubernetes节点都要配置
注意:如果重启docker失败,可能是你的docker配置文件格式有问题,在配置文件中如果有其他的配置行,在下一行添加配置时,要在上一行的末尾添加一个分号 " ,"。
{
"insecure-registries": ["xxxxx"],
"insecure-registries": ["xxxxx"]
}
-------------------------补充--------------------------------
如果经过上面的配置,还是没有成功拉取镜像,可能Kubernetes 集群采用的是 Containerd 作为的 Runtime,修改Containerd 配置文件的 mirrors 下添加自己的镜像仓库地址即可:
在 /etc/containerd/config.toml 下
保存,systemctl restart containerd 重启containerd ,让pod重新拉取镜像,即可成功拉取。