我正在研究一个个人项目,以便最终学习Kubernetes。经过艰苦的努力,我设法使基本的nginx
Docker映像(来自Docker Hub)在pod上运行并作为NodePort服务公开。现在,我有兴趣将nginx
Docker映像换成自己的应用程序。
此时,大多数在线教程都说“将映像推送到Docker Hub”,然后您告诉Kubernetes从Docker Hub加载映像。但是,只要有可能,我都希望避免对第三方服务的依赖(如果Docker Hub在5年后倒闭,并且我有一家公司的整个基础架构都依赖于该公司?那是不太可能的情况,但这只是为什么我更喜欢这样做的一个示例保持事物独立,孤立和独立)
我做了一些阅读,发现为了不使用 加载自定义Docker镜像而必须在“ Kubernetes节点”上构建镜像。但是,如果我有一个包含2个或更多节点的集群怎么办?是否需要在群集的 每个 节点上构建映像?或者,如果一个人知道映像(也许是主映像),它可以将文件系统层传递给其他人吗?
我会自己尝试一下,然后看看会发生什么,但是即使知道如何尝试,我可能还需要几天的时间。我还没有弄清楚如何在我的Kubernetes集群中运行任意的shell命令-我只能创建pod,副本集,部署和服务。在深入学习如何在Kubernetes节点上建立我的图像之前,我想弄清楚这是否值得我花时间。
答案 0 :(得分:3)
如果您的目标是不像Docker Hub这样依赖注册表作为服务,那么您可以按照docker此处的说明安装自己的私有本地注册表:
https://docs.docker.com/registry/deploying/
然后,您可以配置Kubernetes从本地注册表中提取图像。这是我在Google的快速搜索中找到的示例:
https://tortuemat.gitlab.io/blog/2018/03/18/kubernetes-with-local-registry/
说了这么多,我应该指出,在这一点上,docker hub已成为标准配置,它不会很快消失。好像npm或apk消失了