私有镜像仓库+自签名证书
问题描述:
使用本地的docker registry作为镜像仓库,而且配置了https证书,但是在k8s一定会报x509错误,镜像拉取不下来。
失败的尝试方案:
将运行时换成docker:
观察到将虚拟机上的docker服务启动之后,配置docker的insecure-registries属性,之后在该虚拟机上执行docker login <registry>可以成功,而一旦关闭docker服务,同样的命令却会失败,因此考虑将底层运行时换成docker
另一个考虑时,相比k8s,本人对docker更熟悉,因此能够更好的观察k8s的执行情况
但最终结果是失败,因为更换底层运行时成本太高,导致k8s集群搭建失败。
阅读k8s的官网后,发现使用docker作为运行时需要先安装一个名为
cri-dockerd
适配器,因此可能导致遭遇新的问题,故而放弃
经过思考,既然直接使用docker没问题,而当前k8s底层使用的时containerd,于是便向chatgpt询问containerd是否存在类似的机制,但是根据chatgpt给出的方案,无效果,问题依然存在
尝试了使用SAN证书,但是依然失败,原因可能是因为证书配置错误,对于SSL了解过于匮乏,openssl命令产生的文件数量过多,进而导致配置出错,但与原始的错误不同,错误提示信息出现了变化:
最终解决方案:
直接放弃私有仓库,使用aliyun提供的仓库服务,问题得以避免。
最后更新于
这有帮助吗?