marathon可以为一个应用程序独占一系列端口吗

aemubtdh  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(372)

我希望一组应用程序使用特定范围的端口,其余应用程序使用另一个范围
在我设置的mesos代理上: --resources="ports(*):[8000-9000, 31000-32000]" 我要生100个× app1并在范围内的portbindings中使用带有主机端口的网桥网络 8000-9000 以及其他应用程序(app2,app3,…appn)使用范围 31000-32000 .
有可能吗?
现在大约2,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"
            }]
        }]
    }

它还将零分配给磁盘、内存等。不知道为什么会这样。在马拉松比赛中,我补充道:

"acceptedResourceRoles": [
    "app1"
]

但它没有部署应用程序。我已经把马拉松的记录放进了追踪中:
考虑具有角色{app1}且没有常驻保留标签的资源。不是所有基本资源都满足:CPU不满足(0.1>0.0),内存不满足(512.0>0.0)(mesosphere.mesos.resourcematcher$:marathon akka.actor.default-dispatcher-33)
然后我修改了:

"acceptedResourceRoles": [
   "app1",
   "*"
]

现在它说:
考虑角色为{app1,*}且没有常驻保留标签的资源。找不到运行规范的主机端口为8111的范围
文件中没有关于 resident reservation labels . 有 reservation labels 但它并没有说明如何创建或添加标签,或者只是一个小例子。对于角色来说,有些东西链接到acl,但非常模糊,似乎涉及到用户和权限,而不是资源保留的意义。

nwsw7zdq

nwsw7zdq1#

所以我找到了一个办法。我不知道这是否是正确的方法,但我没有其他可以比较的方法,所以就这样:
在我附加在/etc/default/mesos-master中的主控形状上

MESOS_ROLES="*,app1"

在我附加在/etc/default/mesos slave中的mesos slave上

MESOS_RESOURCES="ports(*):[30000-32000];cpus(*):4.0;mem(*):15023.0;disk(*):34522.0;ports(app1):[8000-9000]"
MESOS_ROLES="app1"

并从exec脚本中删除--resources参数
关于我在/etc/default/marathon中添加的马拉松大师赛

MARATHON_MESOS_ROLE="app1"

重新启动所有mesos主设备和从设备,所有资源角色为“app1”的应用程序都在spawing,它们的端口在我想要的范围内[8000-9000]。

相关问题