当前位置: 首页 > 面试题库 >

具有Docker容器的DC / OS上的Marathon vs Kubernetes vs Docker Swarm

段干宾白
2023-03-14
问题内容

我正在寻找在DC / OS上运行Docker容器时是否搭配Marathon和Chronos,Docker Swarm或Kubernetes的利弊。

例如,什么时候使用Marathon / Chronos比使用Kubernetes更好,反之亦然?

目前,我主要是在进行实验,但希望我们在夏季之后开始在生产中使用这些服务之一。这可能会取消Docker Swarm的资格,因为我不确定届时它是否可以投入生产。

我喜欢Docker Swarm的地方在于,它实际上只是“ Docker命令”,您不必学习全新的知识。我们已经在使用docker- compose,并且可以与Docker Swarm配合使用(至少在理论上是这样),所以这将是一个很大的优势。我对Docker
Swarm的主要关注是,它能否涵盖在生产环境中运行系统所需的所有用例。


问题答案:

我将尝试分解Mesos上每个容器编排框架的独特方面。

在以下情况下使用Docker Swarm:

  • 您想使用熟悉的Docker API在Mesos上启动Docker容器。
  • Swarm最终可能还会提供与Kubernetes(甚至是K8s-Mesos)对话的API。
  • 参见:http : //www.techrepublic.com/article/docker-and-mesos-like-peanut-butter-and-jelly/

在以下情况下使用Kubernetes-Mesos:

  • 您要启动K8s Pods,这是一起共同调度和共同放置,共享资源的容器组。
  • 您想与位于父容器旁边的一个或多个补充容器(例如,日志归档器,指标监视器)一起启动服务。
  • 您想使用基于K8s标签的服务发现,负载平衡和复制控制。
  • 看到http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

在以下情况下使用Marathon:

  • 您要启动Docker或非Docker长期运行的应用程序/服务。
  • 您想使用Mesos属性进行基于约束的调度。
  • 您要使用应用程序组和依赖项来启动,扩展或升级相关服务。
  • 您要使用运行状况检查来自动重新启动运行状况不佳的服务或回滚运行状况不佳的部署/升级。
  • 您想要集成HAProxy或Consul以进行服务发现。
  • 您要通过Web UI或REST API启动和监视应用程序。
  • 您想使用一开始就考虑Mesos构建的框架。

在以下情况下使用Chronos:

  • 您要启动预期要退出的Docker或非Docker任务。
  • 您想要安排任务在特定的时间/计划(la cron)运行。
  • 您要计划依赖任务的DAG工作流程。
  • 您想通过Web UI或REST API启动和监视作业。
  • 您想使用一开始就考虑Mesos构建的框架。


 类似资料:
  • 我正在寻找在DC/OS上运行Docker容器时是否使用Marathon和Chronos、Docker Swarm或Kubernetes的利弊。 比如,什么时候用马拉松/Chronos比用Kubernetes好,反之亦然? 现在我主要是在进行实验,但希望我们在夏季后开始在生产中使用这些服务之一。这可能会取消Docker Swarm的资格,因为我不确定到那时它是否可以生产。 我喜欢Docker Swa

  • DC/OS 是 Mesosphere 开源的数据中心操作系统。可轻松的部署和运行有状态和无状态的容器、大数据以及传统应用。该系统基于 Apache Mesos 构建,其经验来自 Mesosphere, Yelp, Twitter, Airbnb, 以及很多创新的公司。 管理界面截图:

  • 我想构建一个具有根权限的jenkins docker容器,这样我就可以获得安装gradle的功能。 我使用这个命令在8080端口上运行jenkins,但我还想添加gradle作为环境变量: 或者我需要创建什么dockerfile,写什么,这样jenkins也可以在8080开始运行

  • 我正在尝试将一个文本到语音的应用程序dockerize,以便与其他开发人员共享代码,但是我现在遇到的问题是docker容器在我的主机上找不到声卡。 当我尝试在docker容器中播放wav文件时 我猜主要问题是docker容器无法接触到主机上的声卡。 目前为止我有 我在docker容器中安装了alsa-utils和大多数alsa依赖项。 在运行容器时,通过指定 我不确定docker是否能做到这一点(

  • 在这个 移动为先,云为先 的时代,一切的技术,架构都以 Cloud Native 为衡量标准。在这样的环境下,如何快速构建可靠的大规模应用集群,成为大家关注的一个焦点。

  • 问题内容: Docker的默认DNS(例如8.8.8.8)在我工作的地方被阻止,因此我想更改默认值。我已经能够使用 但是我想使用systemd插件代替它,因为官方Docker文档推荐这种方式。我已经制作了一个文件,并使用了以下内容: 但是我只是不知道变量名应该是什么。我该如何设置?更重要的是,是否有一个页面记录了可在Docker的systemd插件中使用的所有配置变量? (顺便说一句,这是Ubun