Metronome 放置约束

了解 Metronome 放置约束

Metronome 支持 Marathon 算子的子集,并且支持 Marathon 的所有特殊字段名称。

字段名称

字段名称以 开头的约束引用代理属性。

字段名称与代理主机名相匹配时输入 @hostname 参见 LIKE 算子,查看使用示例。

使用 @region@zone 字段名称配置 . 参见 IS 算子,查看使用示例。

如果 @hostname@region@zone 未指定为字段名称,则字段名称将被解释为 Mesos 代理属性

算子

支持 DC/OS 1.12.1 及更高版本。

(必填):Mesos 标量或文本值,由 指定:

指定 IS 限制后,任务仅在具有指定值的节点上启动。

  1. "id": "sleep-cluster",
  2. "cmd": "sleep 60",
  3. "instances": 3,
  4. "constraints": [["rack", "IS", "rack-1"]]

比较标量时,将值与最接近的千分位数进行比较(使用半偶舍入法)。

假设代理的属性为“级别:0.8”,则匹配以下限制:

  1. {
  2. "description": "Remote Sleeper",
  3. "id": "sleeper-remote",
  4. "run": {
  5. ...,
  6. "placement": {
  7. "constraints": [
  8. { "attribute": "@region", "operator": "IS", "value": "us-east-1" }
  9. }
  10. }
  11. }

(必填):属性值的正则表达式。

LIKE 接受正则表达式作为参数,并且只允许在字段值与正则表达式匹配的代理上运行任务。请注意,必须匹配整个值(假设正则表达式周围有隐式 ^

LIKE 约束不会匹配缺少相关属性的代理发出的 offer。

如果相关属性是一个标量,则会利用半偶(half-even)舍入法舍入到最接近的千分位数;小数点后的零会去掉。

(必填):属性值的正则表达式。

  1. {
  2. "description": "Important Job",
  3. "id": "sleeper",
  4. "run": {
  5. ...,
  6. "placement": {
  7. "constraints": [
  8. { "attribute": "@hostname", "operator": "UNLIKE", "value": "temp-host-.*" }
  9. ]
  10. }

UNLIKE 约束将匹配缺少相关属性的代理发出的 offer。