Docker Compose 和 Kubernetes 有什么区别?

新手上路,请多包涵

在深入研究 Docker、Google Cloud 和 Kubernetes 时,还没有清楚地了解这三者,在我看来,这些产品是重叠的,但它们并不兼容。

例如,需要 docker-compose.yml 文件,以便将应用程序部署到 Kubernetes。

有人可以提供关于 Docker、Docker Compose、Docker Cloud 和 Kubernetes 重叠的地方以及其中一个依赖于另一个的高级粗略描述吗?

原文由 George Katsanos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

容器

  • 容器是此处列出的其他技术的核心

码头工人

  • Docker 是一种流行的技术实现,它允许将应用程序捆绑到容器中。
  • docker 是管理镜像、容器、卷和网络的命令行工具

码头工人撰写

  • Docker Compose 是 docker cli 的声明式版本
  • 它可以启动一个或多个容器
  • 它可以创建一个或多个网络并将容器附加到它们
  • 它可以创建一个或多个卷并配置容器来挂载它们
  • 所有这些都是为了在 单个 主机上使用

Docker 经典群

  • Docker swarm 已被 Docker Inc. 放弃,并且没有得到积极的维护或支持。
  • Docker Swarm 用于在 多个 主机上运行和连接容器。
  • Docker Swarm 是一个容器集群管理和编排工具。
  • 它管理在多个主机上运行的容器,并执行诸如缩放、在一个崩溃时启动一个新容器、网络容器……
  • 名为 stack 文件的 Docker Swarm 文件与 Docker Compose 文件非常相似
  • Kubernetes 和 Compose 之间的唯一比较是在最微不足道和最不重要的层面上:它们都运行容器,但这并不能帮助人们理解这两种工具是什么以及它们在哪里有用。它们都对不同的事物有用

Kubernetes

  • Kubernetes(K8S)是最初由谷歌创建的 分布式容器编排工具
  • 2014年开源,次年移交给云原生计算基金会(CNCF)
  • CNCF 是一个行业机构,拥有 来自大多数大型云、软件和硬件公司的数百名成员
  • 在撰写本文时(2021 年末),有近千 个 K8S 相关项目 分为大约 20 个类别,总资金超过 210 亿美元
  • Kubernetes(2021 年)是世界上最受欢迎的分布式系统编排器, 采用率为 88%
  • 由于近乎无处不在,K8S 已成为 2021 年最流行的当代创新系统开发平台
  • Kubernetes 是 Docker swarm 的竞争对手(或多或少),但它比 docker swarm 做的事情更多,即一个流行的选择。

原文由 yamenk 发布,翻译遵循 CC BY-SA 4.0 许可协议

除了 @yamenk 的 回答,我想在这里添加一些细节,这可能有助于人们了解 Kubernetes。

简短的回答:

  • docker-compose :是一个 工具,它采用 YAML 文件描述您的 多容器 应用程序并帮助您 _创建_、 _启动/停止_、 删除 所有这些容器,而无需键入多个 docker ... 命令每个容器。
  • Kubernetes :是一个用于管理容器化 工作负载 和服务的 平台,它促进了声明式配置和自动化。 什么? 🤔 继续阅读…

码头工人撰写

(来自文档):Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以从您的配置中创建并启动所有服务。 Compose 具有用于管理应用程序整个生命周期的命令:

  • 启动、停止和重建服务
  • 查看运行服务的状态
  • 流式传输正在运行的服务的日志输出
  • 在服务上运行一次性命令

Kubernetes

(来自 Kubernetes 简介):Kubernetes 是一个容器编排器,类似于 Docker Swarm、Mesos Marathon、Amazon ECS、Hashicorp Nomad 。容器编排器是将主机组合在一起形成集群的工具,并帮助我们确保应用程序:

  • 是容错的,
  • 可以扩展,并按需执行
  • 优化使用资源
  • 可以自动发现其他应用程序,并相互通信
  • 可以从外部世界访问
  • 无需停机即可更新/回滚。

许多人认为 Kubernetes 很难学习。这是因为它解决了一系列问题,人们在不了解所有先决条件的情况下试图理解。这使它变得复杂。通过阅读以下概念/术语,开始将拼图的各个部分放在一起。此过程将帮助您了解 Kubernetes 试图解决的问题类型:

  • 12 要素应用程序,
  • 自动装箱,
  • 自愈机制,
  • 水平缩放,
  • 服务发现和负载均衡,
  • 自动推出和回滚,
  • 蓝绿部署/金丝雀部署
  • 秘密和配置管理,
  • 存储编排

由于围绕容器及其管理有很多不同的东西,所以请密切关注云原生环境:

互动版在这里: landscape.cncf.io/

在此处输入图像描述

更新

2020 年 5 月:Docker Compose 规范现在是一个开放标准

除了现有的 Compose 平台外,我们还与 AWS、Microsoft 和开源社区中的其他人合作,扩展了 Compose 规范以支持 Kubernetes 和 Amazon ECS 等云原生平台。更多信息: 博客 /compose-spec.io

原文由 tgogos 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题