`
m635674608
  • 浏览: 5005014 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

marathon参考(6): 约束Constraints

 
阅读更多

约束控制程序运行,允许优化容错或指定应用运行位置。约束由3个部分组成:field名称、操作符和一个可选参数。这个field可能是slave主机名或任何mesos salve的属性。

 

属性Fields

 

Hostname Fields

 

hostname属性匹配slave hostname,参看UNIQUE操作符的实例。 

hostname字段支持marathon所有的操作。

 

Attribute field

 

如果这个字段名称不是以上提到的,它将被视为mesos slave属性。mesos slave属性是一个标记slave节点的方法,参考mesos-slave –help获取更多属性信息。

 

如果在slave节点上指定的属性没有定义,大多数operator将拒绝在slave节点上运行程序。实际上,只有UNLIKE operator将接受这个请求,其他的都拒绝。

 

attribute字段支持marathon所有的operator。

 

注意marathon只支持attribute文本值,不能处理任何数字值。例如foo:bar会被任何,但是marathon不能匹配cpu:4这个样的值。

 

操作符Operators

 

UNIQUE

 

UNIQUE告诉marathon强制所有应用程序的任务的唯一性。例如下面的约束,在每个host只能运行一个应用任务。

 

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{

    "id": "sleep-unique",

    "cmd": "sleep 60",

    "instances": 3,

    "constraints": [["hostname", "UNIQUE"]]

  }'

 

CLUSTER

 

CLUSTER允许你在slave节点上运行所有的应用任务。如果你有特殊的硬件需要,或者你为了低延迟想运行它们在同一个rack,如下面的实例:

 

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{

    "id": "sleep-cluster",

    "cmd": "sleep 60",

    "instances": 3,

    "constraints": [["rack_id", "CLUSTER", "rack-1"]]

  }'

 

你也可以使用这个属性让应用程序运行在一个指定的节点,使用hostname属性:

 

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{

    "id": "sleep-cluster",

    "cmd": "sleep 60",

    "instances": 3,

    "constraints": [["hostname", "CLUSTER", "a.specific.node.com"]]

  }'

 

GROUP_BY

 

GROUP_BY可用于将任务均匀地分散到机架或数据中心,提高可用性:

 

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{

    "id": "sleep-group-by",

    "cmd": "sleep 60",

    "instances": 3,

    "constraints": [["rack_id", "GROUP_BY"]]

  }'

 

marathon通过分析从mesos获取的信息,只能知道关于属性的不同rack_id值。如果任务没有分布在所有可能的值,那么任务需要在约束中指定值的数量。如果你没有指定数量,你会发现任务被分在一个值,尽管你使用的是GROUP_BY约束。例如,你要跨3个机架,要是使用下面的配置:

 

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{

    "id": "sleep-group-by",

    "cmd": "sleep 60",

    "instances": 3,

    "constraints": [["rack_id", "GROUP_BY", "3"]]

  }'

 

 

LIKE接受一个正则表达式作为参数,允许在slave节点运行你的任务,这个些节点是正则表达式匹配的节点。下面的例子是应用在机架rack-1到rack-3上运行,并均匀分布。

 

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{

    "id": "sleep-group-by",

    "cmd": "sleep 60",

    "instances": 3,

    "constraints": [["rack_id", "LIKE", "rack-[1-3]"]]

  }'

 

注意,这个参数是必须的。

 

UNLIKE

 

和LIKE相似,任务只能运行在和正则表达式不匹配的slave节点上。下面的例子是应用不在机架rack-7到rack-9上运行。

 

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{

    "id": "sleep-group-by",

    "cmd": "sleep 60",

    "instances": 3,

    "constraints": [["rack_id", "UNLIKE", "rack-[7-9]"]]

  }'

 

原文https://mesosphere.github.io/marathon/docs/constraints.html

http://blog.csdn.net/zhuchuangang/article/details/51147967

分享到:
评论

相关推荐

    marathon-demo:Marathon 演示资源

    **马拉松(Marathon)**是Mesosphere公司开发的一款开源分布式工作负载自动化系统,它在数据中心操作系统(DC/OS)上运行,用于管理和调度容器化应用。Marathon提供了一个持久化、容错的服务模型,可以在分布式集群...

    marathon_template:通过马拉松动态HaProxy

    gem install marathon-template修改/etc/haproxy/haproxy.cfg-马拉松模板将清除现有的haproxy.cfg文件/ etc / crontab-马拉松模板将每分钟追加一个cron作业以执行马拉松模板,可以在/etc/haproxy.yaml中设置播放...

    Marathon-Examples:可以使用Marathon轻松运行的示例Swift脚本的集合

    请注意,此仓库中的脚本主要用于参考和启发 :slightly_smiling_face: 有关Marathon及其安装方法的更多信息,。范例清单在文件夹中所有文件的名称后添加一个后缀。 从当前文件夹中的所有图像生成Xcode资产目录。将...

    marathon-python:Mesos Marathon的REST API的Python客户端库

    这是一个Python库,用于通过Marathon的与服务器进行。 兼容性 对于Marathon 1.9.x和1.10.x,至少使用0.13.0 对于Marathon 1.6.x,至少使用0.10.0 对于马拉松1.4.1,至少使用0.8.13 对于马拉松1.1.1,至少使用...

    marathon-ruby:Marathon 的 Ruby 客户端

    marathon-ruby是 Marathon API 的 Ruby 客户端。 到目前为止,它还没有完成,但包括启动/更新/删除应用程序的基本功能。 安装 将此行添加到应用程序的 Gemfile 中: gem 'marathon-ruby' 然后执行: $ bundle ...

    marathon-resource:用于将应用程序部署到Marathon的Concourse资源

    您在Marathon中的应用的名称。 uri :必填。 您希望部署到的Marathon实例的URI。 basic_auth :可选。 如果您正在使用HTTP基本身份验证来保护您的Marathon实例,则使用此属性。 注意到user_name和password api_...

    marathon-lb:Marathon-lb是DCOS的服务发现和负载平衡工具

    马拉松磅 Marathon-lb是通过使用应用程序状态来管理HAProxy的工具。 HAProxy是一种快速,高效,经过考验的高可用性负载均衡器,具有许多高级功能,可为许多备受瞩目的网站提供支持。特征无状态设计:不直接依赖任何...

    marathon-ui:马拉松的Web用户界面(https

    马拉松UI项目状态以下消息已发布在网上论坛网站上: 亲爱的马拉松社区, 我们想为您提供有关Marathon UI当前状态的最新信息,并邀请您讨论未来的发展。 您可能已经注意到,由于我们已经花费了大部分时间来开发用于DC...

    marathon-cli:在 Marathon 中管理应用程序和组的 golang cli

    马拉松-cli 在 Marathon 中管理应用程序和组的 golang cli ##用法 COMMANDS: infoGets information about the marathon cluster leaderGets the current leader rmleaderForces current leader to abdicate ...

    marathon-dns:轻松自定义本地 DNS - 转 localhost

    完成后,打开您的项目文件 ( ~/.marathon ),并添加您想要的任何项目。 例如,以下项目文件: { "myawesomeapp": 3000 } 将设置http://myawesomeapp.dev指向http://localhost:3000 基本上就是这样。

    marathon-varnish:从 Mesos Marathon API 输出创建 Varnish 配置

    马拉松清漆这是从 Mesos Marathon API 创建 Varnish 配置的示例。 http://localhost:8080/v2/tasks输出将输出如下内容: { "tasks": [ { "appId": "/foo", "id": "foo.4cef049d-643e-11e4-bdcd-9cb65491f714", "host...

    marathon_3:免费的智力马拉松HTML-学院

    6. **表格标签**:`<table>`、`<tr>`(行)、`<th>`(表头单元格)和`<td>`(数据单元格)用于创建数据表格。 7. **表单元素**:`<form>`、`<input>`、`<button>`、`<select>`和`<textarea>`用于创建交互式表单,...

    Marathon+User+Guide.pdf

    ### Marathon及Marathon ITE 使用指南知识点详述 #### 关于Marathon及Marathon ITE - **Marathon**:这是专为Java/Swing应用程序设计的一款顶级开源自动化测试工具。自2006年起,由Jalian Systems公司进行维护、...

    mesos-marathon-demo:Mesosmarathon + 码头工人

    一旦你的 vagrant 机器在安装了 mesos 和 marathon 的情况下运行,你可以继续以下部分。 构建图像 为了能够使用 docker 执行示例,目录docker-image包含构建和创建 docker 实例所需的步骤。 运行图像 为了在马拉松...

    Marathon-js:技术测试(Splio)

    6. **单元测试和集成测试**:使用Jest、Mocha等测试框架,编写测试用例以确保代码质量。 7. **状态提升和组件化**:将UI分解为可复用的组件,降低复杂性,并通过props和state管理组件间的交互。 8. **性能优化**:...

    marathon_record.rar_marathon record_site:www.pudn.com

    总的来说,"marathon_record.rar"中的"marathon_record"文件是一个实用工具,它结合了编程技术(如用户输入处理、数学运算和错误处理)、马拉松运动的专业知识以及潜在的开源精神,为跑者提供了便捷的速度和配速计算...

    marathon-trainer:建议练习以训练马拉松

    马拉松教练 该程序是Java Swing程序,旨在为您的马拉松训练提供视觉帮助。 给定训练计划和马拉松日期,该程序将为您提供何时训练什么的日历视图。 具体来说,一旦您输入了培训计划并启动了应用程序,它就会告诉您...

    letsencrypt-marathon-lb:让我们为支持DCOS严格安全模式的Marathon-lb进行加密集成

    此应用程序允许您自动生成和更新Marathon-lb的“让我们加密”证书。 它必须作为马拉松应用程序运行。 应用程序在启动时会生成或更新证书,并每隔24小时检查一次是否需要更新证书。 如果您需要新域或其他域的证书,则...

    docker-mesos-marathon-screencast:Mesos 上的 Docker 集群中使用的脚本和 Marathon 截屏视频

    docker-mesos-marathon-screencast 的截屏视频中使用的脚本。入门如果您想为自己复制演示。 脚本包含在此 repo 中。 你会需要: 安装 使用您的主launch.sh的 IP 地址更新launch.sh 用你的主人的 IP 地址更新.mesos....

    DCOS之marathon技术文档

    Marathon之应用篇涵盖了创建基础应用、运行远程资源、容器运行、健康检查、约束语法、应用群组、命令行设置、应用部署、事件总线和应用实例等方面。其中,Marathon的健康检查机制可以用来监控运行中的应用,确保其...

Global site tag (gtag.js) - Google Analytics