【云星数据---mesos实战系列】:marathon实战Constraints篇-001

183 篇文章 0 订阅
23 篇文章 0 订阅

1.概念

  • Marathon可以通过Constraints来控制其app在何处运行
  • 我们可以通过Marathon的REST API或者Marathon gem(marathon client)来设置app的constraints配置。
  • Constraints由三个部分组成:

    字段名(field name),操作(operator), 可选参数(optional parameter)
    其中字段名(field name)可以为mesos的一个slave的hostname或者Mesos slave的attribute。

2.实战

接下来我们结合实战,来介绍下Marathon Constrains的用法

这里写图片描述

字段名

Hostname字段

hostname 匹配slave的hostnames。
hostname支持所有的operator

Attribute字段

attribute 匹配Mesos slave的attributes字段。我们可以通过在mesos节点上运行mesos­slave
­­help来学习如何设置mesos slave的attributes。

操作

UNIQUE operator

UNIQUE tells Marathon to enforce uniqueness of the attribute across all of an app’s tasks.

$ curl -v -X POST http://192.168.100.30:8080/v2/apps \
  -H Content-Type:application/json -d '{
    "id":"dataman",
    "container": {
    "type": "DOCKER",
      "docker": {
        "image":"192.168.100.13:5000/fchen/mynginx",
        "network": "BRIDGE",
        "portMappings": [
          { "containerPort": 80, "hostPort": 0, "protocol": "tcp"}
        ]
      }
    },
    "constraints": [["hostname", "UNIQUE"]],
    "cmd": "/usr/sbin/nginx -c /etc/nginx/nginx.conf",
    "cpus": 0.1,
    "mem": 128.0,
    "instances": 5
  }'
  • field name = hostname, operator = UNIQUE, 在每个slave上只起一个instance。
  • 由于我们申请了5个nginx instance,而我们Mesos集群节点只有4个slave,所以我们在Marathon的管理界面上看到app dataman为Deploying状态。

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值