标签: marathon

Marathon vs Kubernetes vs Docker Swarm在DC/OS上使用Docker容器

我正在寻找在DC/OS上运行Docker容器时是否使用Marathon和Chronos,Docker Swarm或Kubernetes的一些优缺点.

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

现在我主要是进行实验,但希望我们在夏天之后开始在生产中使用这些服务之一.这可能会使Docker Swarm失去资格,因为我不确定它是否会在那时生产.

我喜欢Docker Swarm的原因是它本质上只是"Docker命令",你不需要学习全新的东西.我们已经在使用docker-compose,它将与Docker Swarm一起开箱即用(至少在理论上),这将是一个很大的优势.我对Docker Swarm的主要关注是它是否涵盖了在生产中运行系统所需的所有用例.

marathon docker kubernetes docker-swarm dcos

99
推荐指数
2
解决办法
4万
查看次数

马拉松vs极光和他们的目的

Marathon和Aurora都是基于Mesos构建的,据称可以运行长期运行的服务.我的问题是:

  1. 他们有什么不同?我一直在努力寻找关于他们关键差异的任何好的解释
  2. 这些框架运行在Linux上运行的任何东西吗?对于Marathon,他们声明它可以运行"在shell中可执行"的任何东西,但这有点模糊:)

谢谢!

marathon mesos mesosphere aurora

49
推荐指数
3
解决办法
2万
查看次数

使用Mesos/Marathon链接Docker容器

到目前为止,我已经取得了巨大的成功,使用Mesos,Marathon和Docker来管理一系列服务器以及我正在放置的容器.但是,我现在想更进一步,开始做一些事情,比如自动将haproxy容器链接到每个启动的主要docker服务,或者提供其他基于守护进程和容器化的服务,这些服务是链接的,只能用于单个父容器.

通常情况下,我首先使用某个名称启动帮助程序服务,然后当我启动真正的服务时,我会将其链接到帮助程序,一切都会好的.这个模型如何适应Marathon和Mesos?至少现在看来,集装箱化是一个单一的集装箱.

我有一个想法,首先启动帮助程序服务,在它可以找到的任何主机上,然后向hostname =帮助程序服务的主机名的实际服务添加约束,但这似乎会导致资源提供和竞争条件的问题那些资源.

我还想过为docker或启动docker容器的执行程序脚本提供"嵌入"或"深层链接"功能.

在我走下任何这些路径之前,我想知道是否有其他人已经解决了这个问题,或者我是否只是在思考问题.

谢谢!

marathon docker mesos

20
推荐指数
1
解决办法
7105
查看次数

传输端点未连接 - Mesos Slave/Master

我正在尝试将Mesos奴隶连接到它的主人.当从属设备尝试连接到主设备时,我收到以下消息:

I0806 16:39:59.090845   935 hierarchical.hpp:528] Added slave 20150806-163941-1027506442-5050-921-S3 (debian) with cpus(*):1; mem(*):1938; disk(*):3777; ports(*):[31000-32000] (allocated: )
E0806 16:39:59.091384   940 socket.hpp:107] Shutdown failed on fd=25: Transport endpoint is not connected [107]
I0806 16:39:59.091508   940 master.cpp:3395] Registered slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian) with cpus(*):1; mem(*):1938; disk(*):3777; ports(*):[31000-32000]
I0806 16:39:59.091747   940 master.cpp:1006] Slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian) disconnected
I0806 16:39:59.091868   940 master.cpp:2203] Disconnecting slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian)
I0806 16:39:59.092031   940 master.cpp:2222] Deactivating slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian)
I0806 16:39:59.092248   939 hierarchical.hpp:621] Slave …
Run Code Online (Sandbox Code Playgroud)

linux debian virtualbox marathon mesos

19
推荐指数
1
解决办法
1万
查看次数

mesos-dns,使用端口的最佳实践

我是Service Discovery和集群系统的新手.我开始尝试使用Mesos和Marathon来部署Docker容器,Marathon REST API和UI似乎做得很好.

我的问题是部署服务的实际发现.出于测试目的,我通过Marathon部署了一个缩放到3个实例的Kafka集群,因为我使用了MongoDB测试集群.Mesos-DNS客户端给我一个类似的记录kafka.marathon.mesos,mongo.marathon.mesos它暗示了从主机到容器的动态映射端口.问题是,我的客户端明确需要有关目标端口的信息.是否有一种通用方法可以自动和动态地从服务中获取这些端口信息?暴露多个端口的应用程序怎么样?

到目前为止我的想法: - 做一个REST调用以获取有关已部署应用程序的状态并以某种方式提取相关数据 - 执行DNS SRV查找并以某种方式提取相关数据 - 拥有某种"主",静态绑定到端口,拥有动态的"客户".

我搜索了很多这些信息,但最后大部分教程以手动查找结束,这不是我的目标.

dns service-discovery marathon mesos mesosphere

12
推荐指数
1
解决办法
1202
查看次数

如何在马拉松比赛中使用音量

我正在使用mesos + marathon + docker很长一段时间但我在某个时候陷入了困境.目前我尝试处理持久性容器,我尝试使用"volume-from"参数,但我无法使其工作,因为我不知道如何弄清楚要放入的数据框的名称它作为json的关键.我用这里的例子试了一下

    {
    "id": "privileged-job",
    "container": {
        "docker": {
            "image": "mesosphere/inky"
            "privileged": true,
            "parameters": [
                { "key": "hostname", "value": "a.corp.org" },
                { "key": "volumes-from", "value": "another-container" },
                { "key": "lxc-conf", "value": "..." }
            ]
        },
        "type": "DOCKER",
        "volumes": []
    },
    "args": ["hello"],
    "cpus": 0.2,
    "mem": 32.0,
    "instances": 1
}
Run Code Online (Sandbox Code Playgroud)

我真的很感激任何一种帮助:-)

marathon docker mesos mesosphere

10
推荐指数
1
解决办法
4212
查看次数

如何使用Apache Mesos/Marathon运行一次性任务?

我正在尝试用Marathon运行一次性任务.我能够让任务容器运行,但在任务命令完成后,马拉松运行另一个任务,依此类推.如何防止Marathon运行多个任务/命令?

或者,如果使用Marathon无法做到这一点,我该如何实现所需的行为?

marathon mesos

10
推荐指数
3
解决办法
5702
查看次数

marathon在销毁作业后不删除docker容器

当我将一个docker容器作为马拉松作业运行时,它会在active mesos slave系统中创建一个docker容器.当暂停或销毁docker作业时,我希望marathon应该删除docker容器,因为它不再需要.但容器不会被删除.每次马拉松重启docker容器作业时,我都必须手动删除它们.

有没有办法自动删除这些不需要的容器?

编辑: 添加json文件以启动马拉松作业

{
  "id": "pga-docker",
  "cmd":"sh pga-setup.sh",
  "cpus": 0.5,
  "mem": 1024.0,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "pga:test",
      "parameters": [
        { "key": "env", "value": "SERVER_HOST=value" },
        { "key": "env", "value": "SERVER_PORT=value" }
      ],
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "hostPort": 0}
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

marathon docker mesos

9
推荐指数
1
解决办法
1605
查看次数

迁移Marathon应用程序以进行mesos-slave正常关闭

我有一个小的Mesos集群,我正在使用Marathon来管理一组长期运行的服务,每个服务具有可变数量的实例.

我希望能够根据业务需求启动新节点或终止其中一些节点.但是,当终止节点时,我意识到存在一个潜在的问题:当我关闭Mesos从站时,会发生某些服务的实例数暂时低于定义的数量minimumHealthCapacity.例如,如果要停止的机器正在运行仅具有一个实例的服务,则可能导致一些停机.

请考虑以下简化方案:节点1正在运行服务A,节点2正在运行服务B而节点3正在运行服务C. minimumHealthCapacity对于所有服务都是1.我想终止节点1并且只留下2和3运行.我不希望服务A停机.预期行为的一个例子是将服务A扩展到2然后安全地终止节点1.

我该怎么做才能确保没有服务低于minimumHealthCapacity

理想情况下,我会有一个滚动更新启发过程 - 替换是在单独的机器中启动,然后终止要关闭的机器中的服务.我希望至少有一个自动化的过程来做到这一点,所以缩小是一个简单的脚本.我没有要求花费这么多时间,即只有在我确定Marathon迁移完成并成功之后我才能关闭Mesos奴隶.

marathon mesos

8
推荐指数
1
解决办法
1172
查看次数

领事不注销僵尸服务

我正在用马拉松部署一个简单的hello world nginx容器,并且一切正常,除了我有6个不会从领事那里注销的容器。docker ps显示没有容器在运行。

我尝试使用/v1/catalog/deregister端点注销服务,但它们仍会返回。然后,我杀死了注册容器,并尝试再次注销。他们回来了。

我正在与

docker run -d --name agent-registrator -v /var/run/docker.sock:/tmp/docker.sock --net=host gliderlabs/registrator consul://127.0.0.1:8500 -deregister-on-success -cleanup
Run Code Online (Sandbox Code Playgroud)

有1个领事代理正在运行。

重新启动计算机(这是在本地vm上进行的单节点安装)不会使服务消失。

如何使这些容器消失?

registration marathon docker consul

8
推荐指数
2
解决办法
4787
查看次数