我想要一组应用程序使用特定范围的端口,其他应用程序使用其他范围
在mesos-agent上我设置了:--resources="ports(*):[8000-9000, 31000-32000]"
我想生成100×APP1,并在范围8000-9000
和其他应用程序(APP2,APP3,... APPN)的端口绑定中使用带有hostPorts的BRIDGE网络,以使用范围31000-32000
。< / p>
有可能吗?
现在APP2,3 ... APPN可以从范围8000-9000
获取端口,这对我来说是不可取的。
更新:我为资源端口范围8000-9000
创建了一个角色(静态预留)。签入mesos-master:5050/slaves
,似乎没问题
"reserved_resources": {
"app1": {
"disk": 0.0,
"mem": 0.0,
"gpus": 0.0,
"cpus": 0.0,
"ports": "[8000-9000]"
}
}
和
"reserved_resources_full": {
"app1": [{
"name": "ports",
"type": "RANGES",
"ranges": {
"range": [{
"begin": 8000,
"end": 9000
}]
},
"role": "app1",
"reservations": [{
"type": "STATIC",
"role": "app1"
}]
}]
}
它还将零分配给磁盘,mem等。不知道为什么它会像这样。在马拉松比赛中,我补充道:
"acceptedResourceRoles": [
"app1"
]
但它没有部署应用程序。我把马拉松式的记录放到了追踪中:
考虑具有角色{app1}且没有居民保留标签的资源。并非所有基本资源都满足:cpus NOT SATISFIED(0.1&gt; 0.0),mem not SATISFIED(512.0&gt; 0.0)(mesosphere.mesos.ResourceMatcher $:marathon-akka.actor.default-dispatcher-33)
然后我修改了:
"acceptedResourceRoles": [
"app1",
"*"
]
现在它说:
考虑具有角色{app1,*}且没有居民保留标签的资源。对于运行规范
,找不到包含主机端口8111的范围
文档中没有关于resident reservation labels
的内容。有reservation labels
但它没有说明如何创建或添加标签或仅仅是一个小例子。对于角色,有一些链接到ACL,但非常模糊,它似乎进入用户和权限,而不是什么资源保留。
答案 0 :(得分:0)
所以我找到了一种让它发挥作用的方法。我不知道这是否是正确的方法,但我没有其他任何东西可以比较,所以在这里:
在我附加在/ etc / default / mesos-master
中的主人value
在我附加在/ etc / default / mesos-slave
中的mesos slave上MESOS_ROLES="*,app1"
并从exec脚本中删除了--resources参数
我在/ etc / default / marathon
中附加的马拉松大师MESOS_RESOURCES="ports(*):[30000-32000];cpus(*):4.0;mem(*):15023.0;disk(*):34522.0;ports(app1):[8000-9000]"
MESOS_ROLES="app1"
重新启动所有mesos主服务器和从服务器,所有具有资源角色“app1”的应用程序都会在其所需范围[8000-9000]中生成端口。