在 kubernetes 集群中构建 docker 个映像

Building docker images in kuberentes cluster

我们需要从基础 docker 图像和一些额外的 packages/customization 构建自定义 docker 图像。然后需要将这些自定义 docker 图像部署到 kubernetes 中。我们正在探索各种工具来弄清楚如何在 kubernetes 集群中完成 docker 构建(无需直接访问 docker 守护进程)。像 kaniko 这样的开源工具提供了在容器中构建 docker 图像的能力(因此在 kubernetes 集群中)。

  1. 在其他容器 run/executed 所在的 kubernetes 集群中构建 docker 镜像是否是一个好习惯? kaniko 有什么明显的挑战吗?

  2. 是否应该创建单独的专用 VM 来管理构建过程?

1.在其他容器 run/executed 所在的 kubernetes 集群中构建 docker 图像是否是一个好习惯? kaniko 有什么明显的挑战吗?

是的,可以在 Kubernetes 个容器内构建镜像,但这可能有点挑战。

一些用户使用它为 CI/CD with Jenkins 构建工作流程。其实还是用工具来简化流程比较好

Kubernetes也有准备容器开发工具包的规则,它们被描述here

另一种方法是使用 Kaniko,此工具从容器或 Kubernetes 集群内的 Docker 文件构建容器映像。

我发现这篇文章很有趣 topic

另一方面,在没有 Docker 守护程序 运行ning 的情况下成功构建映像。您可能对 Bazel project and story 如何使用它感兴趣。

2。是否应该创建单独的专用 VM 来管理构建过程?

关于您的第二个问题:没有必要为 运行 Docker 图像创建工作流程设置专用 VM。

最后,在 Kubernetes 集群中有一个 private registry 并将其用于构建目的可能会很有趣。

可以在 kubernetes 节点上构建映像。但我不会推荐它。原因是,应用程序构建过程是内存和计算密集型的,频繁的图像构建可能会导致该 kubernetes 节点调度的服务中断。

改为使用专用的 Jenkins 服务器,根据您的要求和交付创建管道。

你可以开始了here

希望对您有所帮助!