【问题标题】:Build and Deploy Multiple Docker images to kubernetes构建多个 Docker 镜像并将其部署到 Kubernetes
【发布时间】:2020-03-20 13:12:45
【问题描述】:

我有一个应用程序,例如以下结构,其中多个服务有自己的 Dockerfile。我想通过 Jenkins 使用 Helm 将我的应用程序部署到 kubernetes,但我无法确定处理此问题的最佳方法是什么?

如果是,我应该尝试使用多阶段构建,我该如何处理? 我应该为它们中的每一个创建两个掌舵图,还是使用一个掌舵图来处理这个问题?

└── app-images-dashboard
    ├── Readme.md
    ├── cors-proxy
    │   ├── Dockerfile
    │   ├── lib
    │   │   ├── cors-anywhere.js
    │   │   ├── help.txt
    │   │   ├── rate-limit.js
    │   │   └── regexp-top-level-domain.js
    │   ├── package.json
    │   └── server.js
    └── app-images-dashboard
        ├── Dockerfile
        ├── components
        │   └── image_item.js
        ├── images
        │   └── beta.png
        ├── index.html
        ├── main.js
        └── stylesheets
            └── style.css

【问题讨论】:

  • @lindhe,感谢您的友好回复。也许我的错没有清楚地解释我的困惑。坦率地说,我有机会通过 helm 和 kubernetes 部署多个应用程序,但每个项目只有一个 docker 文件而不是多阶段。这就是为什么如果项目有两个 dockerfile,什么是最佳实践让我感到困惑?
  • 执行多阶段 Dockerfile 是最佳实践,但仅适用于相当复杂的设置。如果有一个单一的构建阶段工作正常,那就去吧。 :) Helm 是一个帮助您在 Kubernetes 中部署(运行)容器的工具,您可以将所有内容放在一个容器中,也可以将所有内容放在执行不同任务的多个容器中。
  • @lindhe,是的,但我不想在一个 pod 中有多个容器。我想为每个 dockerfile 创建两个单独的 pod。有没有办法在 helm 中处理这个问题?因为我找不到任何在 deployment.yaml 中指定多个容器的示例,其中两个容器低于规范。
  • 啊,我想我现在明白你的问题了。一个部署描述了一组相同的 pod(即一个或多个 pod),但是如果你想要多个 pod,你应该有多个 deployment.yaml。喜欢cors-proxy-deployment.yaml 和dashboard.yaml。
  • 子图也能涵盖这个吗?

标签: docker kubernetes kubernetes-helm


【解决方案1】:

舵图代表整个应用程序。您有 1 个包含 2 个切片的应用程序。所以你只需要 1 张舵图。

【讨论】:

  • 那么如何为每个容器创建两个单独的 pod?在这种情况下,一个吊舱有两个我不喜欢的容器
  • semural 回答了你。我想处理这个问题的唯一方法是使用一个掌舵图在模板中为每个服务创建两个不同的 deployment.yaml
猜你喜欢
  • 1970-01-01
  • 2019-01-12
  • 2020-09-09
  • 2019-11-26
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多