Tag: 马拉松

Mesos Slave无法创build容器

我想在Marathon上运行Docker容器, 所以我用–containerizers=docker,mesos启动了mesos-slave /usr/local/Cellar/mesos/0.22.1/sbin/mesos-slave –master=zk://localhost:2181/mesos –log_dir=/Users/wangyao/WorkAndLog/mesos/log –work_dir=/Users/wangyao/WorkAndLog/mesos/work –containerizers=docker,mesos I1216 11:17:16.407368 2038878976 logging.cpp:172] INFO level logging started! I1216 11:17:16.407878 2038878976 main.cpp:156] Build: 2015-05-12 19:28:23 by brew I1216 11:17:16.407896 2038878976 main.cpp:158] Version: 0.22.1 Failed to create a containerizer: Could not create DockerContainerizer: Failed to execute 'docker version': exited with status 1 它告诉我“ Failed to execute 'docker version' ”, […]

告诉Mesos上缩放的应用程序的区别

我正在Mesos中运行Docker中的服务器应用程序,一些应用程序被缩放到多个实例。 当我在应用程序中收集数据时,我希望应用程序能够存储某种types的标识符,以便稍后在读取数据时知道从哪个应用程序收集数据。 例如,我将一个应用程序缩放到mesos上的三个实例,并从数据中读取数据来自app_1,app_2或app_3。 我想过使用主机IP,但这些缩放的应用程序有时在同一个节点内产生。 我不能使用像pid这样的东西,因为应用程序重新启动时会改变。 因此,我尝试阅读是否有环境variables可以帮助我区分它们,但是除了HOSTNAME之外,它们在整个平台上都是相同的,所以我想知道是否有人有其他想法。 非常感谢你。

Mesos不能从私有Dockerregistry部署容器

我有一个私人的Dockerregistry,可通过https://docker.somedomain.com访问(通过标准端口443而不是5000)。 我的基础架构包括一个Mesosphere的设置,其中启用了docker集装箱。 我正在尝试通过Marathon将特定的容器部署到Mesos从站; 然而,这总是失败,Mesos几乎立即失败,没有数据在沙箱的stderr和标准输出。 我试图从标准的Dockerregistry中部署图像,它似乎工作正常。 我很难弄清楚什么是错的。 我的私人Dockerregistry不需要密码validation(closuresdebugging这个),如果我壳到Meso的奴隶实例,sudo su为根,我可以运行一个'docker拉docker.somedomain.com/services/myapp'每次都成功 这里是我的Marathon发布任务数据: { "id": "myapp", "cpus": 0.5, "mem": 64.0, "instances": 1, "container": { "type": "DOCKER", "docker": { "image": "docker.somedomain.com/services/myapp:2", "network": "BRIDGE", "portMappings": [ { "containerPort": 7000, "hostPort": 0, "servicePort": 0, "protocol": "tcp" } ] }, "volumes": [ { "containerPath": "application.yml", "hostPath": "/var/myapp/application.yml", "mode": "RO" } ] }, "healthChecks": […]

在BRIDGE模式下运行Chronos docker镜像

我一直在组build一个POC mesos / marathon系统,用来启动和控制docker图像。 我有一个在VirtualBox上运行的Vagrant虚拟机,在该虚拟机上运行docker,marathon,zookeeper,mesos-master和mesos-slave进程,一切按预期运行。 我决定添加Chronos,最初我开始在stream浪VM上作为服务运行,但之后select使用mesosphere / chronos映像切换到Docker容器中运行它。 我发现,当我为容器指定HOSTnetworking模式时,我可以获得容器映像启动和成功运行,但是当我更改为BRIDGE模式时,则遇到问题。 在BRIDGE模式下,chronos框架成功注册了mesos(我可以在mesos UI的框架页面上看到这个条目),但是看起来框架本身并不知道注册是成功的。 mesos主日志如果充满消息,如: strong textI1009 09:47:35.876454 3131 master.cpp:2094] Received SUBSCRIBE call for framework 'chronos-2.4.0' at scheduler-16d21dac-b6d6-49f9-90a3-bf1ba76b4b0d@172.17.0.59:37318 I1009 09:47:35.876832 3131 master.cpp:2164] Subscribing framework chronos-2.4.0 with checkpointing enabled and capabilities [ ] I1009 09:47:35.876924 3131 master.cpp:2174] Framework 20151009-094632-16842879-5050-3113-0001 (chronos-2.4.0) at scheduler-16d21dac-b6d6-49f9-90a3-bf1ba76b4b0d@172.17.0.59:37318 already subscribed, resending acknowledgement 这意味着某种configuration/通信问题,但我还没有能够确切地解决问题的根源。 我不确定是否有任何方法来确认从mesos的确认是否回到计时器或检查组件之间的通信渠道的状态。 我做了很多search,我可以find遇到同样问题的人的post,但我还没有find详细的解释,需要做什么来纠正它。 […]

DC / OS日程安排容器更新

是否有可能使用DC / OS或Marathon来重复检查新的容器映像更新何时可用,并更新集群中的活动容器? 我想避免让Docker Hub意识到集群和实现Web挂钩…与群集只是检查通过作业的图像更新。

Spring启动数组在Docker / Marathon上的环境variables

我的应用程序的数组环境variables的formstableName[0]=tableName … property.one.two.tableName[x]=tableNameX 在本地运行时,当我将属性放在application.properties ,command-line args或环境variables中时,一切正常。 但是,一旦我尝试部署到马拉松,数组variables不再工作。 我试图在马拉松json数组中的env属性中传递它们。 我试过了: "env": { "property.one.two.tableName[0]":"tableName", …. } 和 "env": { "property.one.two.tableName": ["tableName", … ] … } 和 "env" { "tableName": [ {"property.one.two.tableName[0]" : "tableName"} {….} ] } 但没有任何工作。 有没有人得到这个工作?

在现有的cgroup中启动容器

我正在寻找一个自定义的Mesos执行程序,允许为我的Rails应用程序请求1CPU(1024个共享),然后“插入”前面的nginx。 在这个过程中,我实际上想使用相同的共享1024 cpu共享启动我的rails和nginx容器。 我知道cgroups是分层的,我应该可以做类似的事情 Base(1024 shares) / \ nginx(no limit) rails(no limit) 要么 rails(1024 shares) | nginx(no limit) 所以我仍然只用了1个CPU,但我的容器将共享资源并被链接。 通过cgroups和lxc docs,我找不到任何明显的东西传递给docker的-lxc-conf = []选项,它允许我告诉nginx,因为它开始在为之前启动而创build的预先存在的cgroup下启动导轨容器。 我需要考虑的另一件事是,虽然我想要rails和nginx共享1024个cpu共享,但是我不想知道其他的或者可以访问彼此的数据,除非我有意地从rails中共享一个/ public卷或者其他的东西。 任何意见在这里将不胜感激!

dockerregistry上的马拉松不安全registry

我在具有一个主节点和两个节点的AWS群集中安装了mesosphere,将它们称为master,node1和node2。 主人是可见的,节点是私人的。 我得到一个默认运行的马拉松实例和Docker支持。 Docker版本是1.6(已validation)。 所以我使用Marathon文档中描述的marathon安装了一个dockerregistry映像,以及S3支持的一些变体,如下所示: { "id": "/docker/registry", "instances": 1, "cpus": 0.5, "mem": 1024.0, "disk": 128, "container": { "docker": { "type": "DOCKER", "image": "registry:2", "network": "BRIDGE", "portMappings": [ { "containerPort": 5000, "hostPort": 0, "protocol": "tcp", "servicePort": 5000 } ] }, "volumes": [] }, "env": { "APPLICATION_WEB_PROXY_BASE": "/service/docker_registry", "SETTINGS_FLAVOR": "s3", "REGISTRY_VERSION": "0.1", "REGISTRY_LOG_LEVEL": "debug", "REGISTRY_STORAGE": "s3", […]

如何用马拉松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", […]