【问题标题】:Docker stack to KubernetesDocker 堆栈到 Kubernetes
【发布时间】:2018-01-21 10:40:34
【问题描述】:

我对 Docker 相当熟悉,但对 Kubernetes 的经验为零。

我有一个Docker stack(多容器)软件,可以部署在 Docker swarm 集群中。我想知道 Kubernetes 是否有类似的东西?我不需要副本、自动缩放等等……我只需要一组容器,以及在单个文本文件中定义的依赖项和网络。

我搜索并找到了一个名为 kompose 的工具,它可以将 Docker 堆栈文件转换为 Kubernetes 语法……但是,看起来输出是 *.yaml 文件的列表,而不是单个文件。

所以,我得出的结论是 kubernetes 没有这个确切的功能。我错过了什么吗?

【问题讨论】:

  • 您希望在一个文件中生成所有定义。对吗?
  • @AymanNedjmeddine,是的......这会很好......但我对替代品持开放态度

标签: docker kubernetes yaml docker-compose docker-stack


【解决方案1】:

您可以将生成的文件内容复制到一个文件中,并用---分隔。

例如,如果您有 3 个 Kubernetes 文件:service.ymldeployment.ymlconfigmap.yml,您的文件应该类似于:

# content of service.yml
....
---
# content of deployment.yml
....
---
# content of configmap.yml
....

您将使用相同的 kubectl 命令来使用此规范文件进行 CRUD。

【讨论】:

  • “service.yml”的内容是否会包含其dockerfile的内容?
  • @guilhermecgs 否。dockerfile 用于创建 Docker 映像,在这些 yaml 文件之一(我猜是deployment.yml)中引用了该映像。这与 Docker compose 相同。
【解决方案2】:

单个“Docker Stack”yml 定义相当于 Kubernetes 部署和服务的集合。 Docker Stack 定义中的每项服务也可以通过 docker 在部署时自动创建的默认覆盖网络相互使用。要在 Kubernetes 中模拟这一点,您需要在同一个文件中定义多个部署/服务,以便可以将它们作为单个“堆栈”创建和删除。

【讨论】:

    猜你喜欢
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多