【问题标题】:Building docker images in kuberentes cluster在 Kubernetes 集群中构建 docker 镜像
【发布时间】:2018-12-03 22:26:05
【问题描述】:

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

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

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

【问题讨论】:

标签: docker kubernetes docker-image


【解决方案1】:

1.在其他容器将运行/执行的 Kubernetes 集群中构建 docker 镜像是一个好习惯吗? kaniko 有什么明显的挑战吗?

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

一些用户使用它为CI/CD with Jenkins 构建工作流。事实上,最好使用工具来简化流程。

Kubernetes也有编写容器开发包的规则,描述为here

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

topic 上阅读这篇文章很有趣。

另一方面,在没有运行 Docker 守护程序的情况下构建镜像的尝试是成功的。您可能对Bazel 项目和story 如何使用它感兴趣。

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

关于你的第二个问题:不需要设置专门的虚拟机来运行 Docker 镜像创建工作流。

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

【讨论】:

    【解决方案2】:

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

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

    你可以开始here

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 2019-06-23
      • 2022-10-18
      • 2021-10-28
      • 2018-09-28
      • 1970-01-01
      • 2020-10-06
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多