Tag: 马拉松

如何用马拉松API知道容器名称

我正在使用Apache Mesos + Marathon + Zookeeper来部署我的Rails应用程序。 我需要轨道应用程序和其他容器之间的共享数据。 我在这里find一些参考,用马拉松来做: 马拉松/文档/母语docker.html { "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 […]

马拉松Docker任务失败

我在两台机器上安装了Marathon和Mesos。 我可以成功地从马拉松的Web控制台安排命令,但是当我尝试安排一个涉及docker图像的工作时,我立即就失败了。 另外我没有得到stderr或stdout文件。 示例运行常规命令: Marathon job conf: { "id": "testecho", "cmd": "echo hello; sleep 10", "cpus": 1, "mem": 128, "disk": 0, "instances": 1 } 在我看来,任务已经成功。 我有正常的stderr和stdout文件。 但是现在如果我运行一个简单的docker镜像任务: Marathon job conf: { "id": "/ubuntu", "cmd": "date -u +%T", "cpus": 0.5, "mem": 512, "disk": 0, "instances": 1, "container": { "type": "DOCKER", "volumes": [], "docker": { "image": "libmesos/ubuntu", […]

与Mesos / Marathon链接的Docker容器

到目前为止,我使用Mesos,Marathon和Docker来pipe理一组服务器,以及我要放置的容器。 不过,我现在想进一步开始做一些事情,比如自动将haproxy容器链接到启动的每个主要docker服务,或者提供其他基于守护进程和集装箱化服务,这些服务仅与单个父容器链接并且可用。 通常情况下,我会先用一些名字启动帮助器服务,然后当我开始真正的服务时,我会把它连接到帮助器,一切都会好起来的。 这个模型如何适合Marathon和Mesos? 至less现在看来,集装箱化是假设一个集装箱。 我有一个想法,首先启动帮助器服务,无论它可以find的任何主机,然后添加一个约束到真正的服务,主机名=辅助服务的主机名,但这似乎会导致问题的资源提供和竞争条件那些资源。 我也曾想过为docker提供一个“embed”或“deep-link”function,或者是启动docker容器的executor脚本。 在我走下这些path之前,我想知道是否有其他人解决了这个问题,或者如果我只是在思考问题。 谢谢!

如何用BRIDGEnetworking在Marathon中设置Cassandra Docker集群?

我有一个生产DC / OS(v1.8.4)群集,我正在尝试在其中设置一个Cassandra群集。 我使用Marathon(v1.3.0)来部署Cassandra节点。 我使用Cassandra的官方Docker镜像,更具体的说是2.2.3版本。 第一种情况:使用HOST模式networking部署Cassandra – 一切正常 在这种情况下,我首先部署一个称为cassasndra-seed的节点,并将其附加到IP为10.32.0.6的物理主机。 从这个服务的Marathon的stdout日志中,我可以看到“Node /10.32.0.6状态跳转到正常”,并且listen_address和broadcast_address被设置为10.32.0.6。 如果我在主节点上使用“_cassandra-seed._tcp.marathon.mesos SRV”检查mesos-dnslogging,我可以看到为这个服务parsing的IP是10.32.0.6。 该节点function齐全,我设法创build一个testing数据库。 { "id": "/cassandra-seed", "cpus": 1.5, "mem": 8192, "disk": 0, "instances": 1, "container": { "type": "DOCKER", "docker": { "image": "cassandra:2.2.3", "network": "HOST", "ports": [7199,7000,7001,9160,9042], "requirePorts": true, "privileged": true } }, "constraints": [ ["hostname","UNIQUE"] ], "env": { "CASSANDRA_CLUSTER_NAME": "democluster" } } 现在我使用单独的部署添加一个cassandra节点,并提供10.32.0.6作为种子(在部署JSON的env部分中设置“CASSANDRA_SEEDS”:“10.32.0.6”)。 新节点获取另一个物理主机的IP(与之前的模式相同),并pipe理与种子节点闲谈。 […]

如何使用卷 – 从马拉松

我正在与mesos +马拉松+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 } 我真的很感激任何forms的帮助:-)

使用马拉松来部署docker容器

我正在使用马拉松来部署我的docker容器与马拉松规范中指定的内存限制,如下所示: { "id": "<name>", "cmd": null, "cpus": 2, "mem": 4096, "disk": 30720, "instances": 1, "container": { "docker": { "image": "<docker-image>", "network": "HOST", "privileged": true, "forcePullImage": true }, "requirePorts": true, "ports": [<port>], "type": "DOCKER" } } 但是运行了大约2-3小时后,遇到内存不足的问题,OOM杀手几乎没有任何任务,但导致我的服务器处于完全冻结状态。 我不能ssh或访问任何服务。 需要从该状态完全重启机器才能正常工作。 我检查了系统日志,他们似乎是: 我的问题是如何避免这一点? 可以做些什么来防止这种情况发生?

– Marathon docker应用程序中的add-host参数

我有Docker图像(有入口点),我想用Mesos和Marathon来运行。 这些映像需要在/ etc / hosts和/etc/resolv.conf中进行更改。 当我通常运行这个我会做这样的事情: docker run –add-host host:ip –dns-search url image 但在一个马拉松应用程序(我设置为一个json的身体被发送到马拉松),我不知道这些选项将被映射到。 例如-p在json主体中变成portMappings 。 有没有人知道–add-host和–dns-search以及潜在的其他选项会变成什么–dns-search ?

如何设置马拉松规范docker运行参数

我一直在使用docker运行图像以及一些选项,如: docker run –net host –oom-kill-disable -d -p <port>:<port> image 如何在马拉松上设置像–oom-kill-disable这样的值?

马拉松在摧毁工作后不会删除docker集装箱

当我运行docker集装箱作为马拉松工作时,它会在活动的mesos从站系统中创builddocker集装箱。 当暂停或销毁docker工作,我期望马拉松应该删除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} ] } } }

Marathon软件包对DC / OS有什么好处?

为noob问题道歉; 我是使用DC / OS(使用v1.8.7)的新手,并了解到DC / OS内置了Marathon(来源: https ://docs.mesosphere.com/1.8/administration/release-notes/)。 当我到DC / OS的'Universe'浏览器时,我发现我可以下载并安装Marathon(v1.3.3)包。 现在这个软件包对于我正在使用的DC / OS版本是多余的吗? 为什么我会在DC / OS中使用Marathon软件包 – 它给了我什么特性,我还没有从DC / OS中获得? 我基本上是通过build立我的第一个群集摸索摸索,并尝试学习,所以我希望有任何见解! 我也在这里发布了相同的问题: https : //unix.stackexchange.com/questions/325103/what-benefits-does-the-marathon-package-bring-to-dc-os – 但这个论坛似乎并不在任何地方像StackOverflow一样活跃; 如果我在这里得到答案,我会删除另一个问题,反之亦然。