docker - 在 kuberentes 集群中构建 docker 镜像
问题描述
我们需要从带有一些附加包/定制的基础 docker 镜像构建自定义 docker 镜像。然后需要将这些自定义 docker 镜像部署到 kubernetes 中。我们正在探索各种工具来弄清楚如何在 kubernetes 集群中完成 docker build(无需直接访问 docker daemon)。像 kaniko 这样的开源工具提供了在容器中构建 docker 镜像的能力(因此在 kubernetes 集群中)。
在其他容器将运行/执行的 Kubernetes 集群中构建 docker 镜像是一个好习惯吗?kaniko 有什么明显的挑战吗?
是否应该创建单独的专用 VM 来管理构建过程?
解决方案
1. 在其他容器将运行/执行的 Kubernetes 集群中构建 docker 镜像是一个好习惯吗?kaniko 有什么明显的挑战吗?
是的,可以在Kubernetes容器中构建镜像,但这可能有点挑战。
一些用户使用它来使用 Jenkins构建 CI/CD 工作流。事实上,最好使用工具来简化流程。
Kubernetes也有准备容器开发包的规则,这里有描述
另一种方法是使用Kaniko,该工具从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像。
我发现这篇关于这个主题的文章很有趣。
另一方面,在不运行 Docker 守护进程的情况下构建镜像的尝试是成功的。您可能对Bazel项目和如何使用它的故事感兴趣。
2. 是否应该创建单独的专用 VM 来管理构建过程?
关于您的第二个问题:不需要设置专用 VM 来运行 Docker 映像创建工作流程。
最后,在 Kubernetes 集群中拥有一个私有注册表并将其用于构建目的可能会很有趣。