如何使用 mesos DCOS 和 marathon 创建持久化卷

Posted

技术标签:

【中文标题】如何使用 mesos DCOS 和 marathon 创建持久化卷【英文标题】:how to create persistence volume using mesos DCOS and marathon 【发布时间】:2016-05-08 16:09:41 【问题描述】:

使用以下命令时:

$ dcos marathon app add example.json

我收到输出Error: Object is not valid

example.json


"id": "es-cluster",
"env": 
    "MARATHON_URL": "http://127.0.0.1:8080",
    "APP_ID": "es-cluster",
    "ELASTICSEARCH_CLUSTER_NAME": "CLUSTERNAME"
,
"container": 
    "type": "DOCKER",
    "volumes": [
      
            "containerPath": "data",
            "mode": "RW",
            "persistent": 
                "size": 1000
            
      
    ],
    "docker": 
        "image": "some/dockerImage",
        "network": "BRIDGE",
        "portMappings": [
            "containerPort": 9200
        , 
            "containerPort": 9300
        ]
    
,
"cpus": 0.5,
"mem": 1024,
"instances": 2

如果我删除音量块(或保持为空),它可以正常工作。

还可以通过 Marathon 直接使用音量块运行它。

如何使用 DCOS 创建具有持久卷的应用?

【问题讨论】:

我认为我们需要更多信息。 Marathon 应用规范是有效的,我检查过了。您说它“直接与 Marathon 一起工作”,我将其解释为:通过 Marathon UI?如果是这样,您可以尝试以下操作:在New Application 对话框的右上角,您会看到一个JSON Mode 开关。输入您的详细信息,切换到 JSON 并将结果保存在 example.json 并告诉我们您看到了什么。 可以在这里找到:s000.tinyupload.com/index.php?file_id=51648903778285053855 再次运行马拉松,但 DCOS 仍然抛出:“错误:对象无效” 【参考方案1】:

让它工作。

尝试使用 Marathon api http://marathon-ip:8080/v2/apps 发布 example.json 并收到以下消息:

"message":"对象不是 有效","详细信息":["路径":"/value/upgradeStrategy","错误":["得到 1.0, 预期 0.5 或更少","得到 1.0,预期 0.0"],"path":"/value/isResident","errors":["must be false"]]

然后我使用 Marathon UI 创建了应用程序(带有音量)并复制了 json 以供参考。我注意到马拉松添加了这个块:

  "upgradeStrategy": 
    "minimumHealthCapacity": 0.5,
    "maximumOverCapacity": 0
  

将此块添加到我原来的 example.json(发布在问题中)后,它起作用了。

【讨论】:

以上是关于如何使用 mesos DCOS 和 marathon 创建持久化卷的主要内容,如果未能解决你的问题,请参考以下文章

DCOS=Mesos+ZooKeeper+Marathon+Docker

DCOS实践分享:如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)

DCOS实践分享:如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)

DCOS实践分享:基于Mesos 和 Docker 企业级移动应用实践分享

配置在 mesosphere DCOS 上运行的 prometheus mesos-exporter

Mesos安装