我在 AWS 上使用 kops v1.8.1 和 Kubernetes v1.10.0 来构建我的基础设施。
我按照以下链接中的过程创建了一个外部纯 HTTP docker 注册表: https ://docs.docker.com/registry/deploying/#run-a-local-registry
然后,我使用 kops 创建了一个集群,并在集群规范清单中添加了以下几行:
docker:
insecureRegistry: <hostnameofregistry>
logDriver: ""
集群已创建,但在尝试 docker push 到不安全的注册表时,它失败了
我期望能够从不安全的注册表中推送或拉取图像,而无需在主节点或节点上添加任何配置
我还尝试使用钩子向主节点和节点授予对不安全注册表的访问权限(基于以下过程https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry)。
我在集群规范清单中添加了以下钩子:
hooks:
- execContainer:
command:
- sh
- -c
- echo 35.155.193.162 <hostnameofregistry> >> /rootfs/etc/hosts &&
echo { '"insecure-registries":["<hostnameofregistry>:5000"] } >> /rootfs/etc/docker/daemon.json &&
/usr/bin/systemctl daemon-reload &&
/usr/bin/systemctl restart docker.service
image: busybox
该挂钩确实会修改 /etc/hosts 并在主节点和节点上创建 /etc/docker/daemon.json 但我仍然需要手动执行守护程序重新加载并重新启动 docker 以便主节点和节点能够访问不安全的注册表。
一般来说,我对 Docker 和 Kubernetes 比较陌生,所以不确定我错过了什么或做错了什么。任何帮助或评论都会有所帮助。
谢谢