Metronome 放置约束
了解 Metronome 放置约束
Metronome 支持 Marathon 算子的子集,并且支持 Marathon 的所有特殊字段名称。
字段名称
字段名称以 开头的约束引用代理属性。
字段名称与代理主机名相匹配时输入 @hostname
。参见 LIKE
算子,查看使用示例。
使用 @region
和 @zone
字段名称配置 故障域感知和容量扩展。参见 IS
算子,查看使用示例。
如果 @hostname
、@region
或 @zone
未指定为字段名称,则字段名称将被解释为 Mesos 。
算子
支持 DC/OS 1.12.1 及更高版本。
值(必填):Mesos 标量或文本值,由 指定:
指定 IS
限制后,任务仅在具有指定值的节点上启动。
"id": "sleep-cluster",
"cmd": "sleep 60",
"instances": 3,
"constraints": [["rack", "IS", "rack-1"]]
比较标量时,将值与最接近的千分位数进行比较(使用半偶舍入法)。
假设代理的属性为“级别:0.8”,则匹配以下限制:
{
"description": "Remote Sleeper",
"id": "sleeper-remote",
"run": {
...,
"placement": {
"constraints": [
{ "attribute": "@region", "operator": "IS", "value": "us-east-1" }
}
}
}
值(必填):属性值的正则表达式。
LIKE
接受正则表达式作为参数,并且只允许在字段值与正则表达式匹配的代理上运行任务。请注意,必须匹配整个值(假设正则表达式周围有隐式 ^
和 )。
LIKE
约束不会匹配缺少相关属性的代理发出的 offer。
如果相关属性是一个标量,则会利用半偶(half-even)舍入法舍入到最接近的千分位数;小数点后的零会去掉。
值(必填):属性值的正则表达式。
{
"description": "Important Job",
"id": "sleeper",
"run": {
...,
"placement": {
"constraints": [
{ "attribute": "@hostname", "operator": "UNLIKE", "value": "temp-host-.*" }
]
}
UNLIKE
约束将匹配缺少相关属性的代理发出的 offer。