我们需要从基础Docker映像构建一些定制的docker映像,并附带一些其他软件包/自定义项。然后,需要将这些自定义docker映像部署到kubernetes中。我们正在探索各种工具以弄清楚如何在kubernetes集群中完成docker构建(无需直接访问docker守护程序)。 kaniko等开源工具提供了在容器内构建docker映像的能力(因此在kubernetes集群中也是如此)。
在kubernetes集群中构建docker镜像是一个好习惯吗,其他容器将在其中运行/执行? kaniko是否有任何明显的挑战?
是否应创建单独的专用VM来管理构建过程?
答案 0 :(得分:2)
1。在kubernetes集群中构建docker镜像是一个好习惯吗,其他容器将在其中运行/执行? kaniko是否有任何明显的挑战?
是的,可以在Kubernetes容器中构建图像,但这可能是一个挑战。
某些用户使用它为CI/CD with Jenkins构建工作流程。实际上,最好使用工具简化该过程。
Kubernetes也有准备容器开发套件的规则,here
另一种方法是使用Kaniko,此工具从容器或Kubernetes集群内的Dockerfile构建容器映像。
我发现这篇topic上的文章有趣有趣。
另一方面,成功尝试了在不运行Docker守护程序的情况下构建映像。您可能对Bazel项目以及story的使用方式感兴趣。
2。是否应该创建单独的专用VM来管理构建过程?
关于第二个问题:无需设置专用VM来运行Docker映像创建工作流。
最后,在Kubernetes集群中拥有一个private registry并将其用于构建目的可能很有趣。
答案 1 :(得分:1)
可以在kubernetes节点上构建映像。但是我不推荐它。原因是,应用程序构建过程是内存和计算密集型的,频繁的映像构建可能会导致该kubernetes节点计划的服务中断。
请改用专用的Jenkins服务器,根据您的要求和交付情况创建管道。
您可以开始使用here!
希望有帮助!