我已按集合将从属资源分配给特定角色(“应用程序角色”) --default_role="app-role"
参数到 ExecStart
对于从属服务( /etc/systemd/system/dcos-mesos-slave.service
). 接下来我重新启动了从属代理:
sudo systemctl daemon-reload
sudo systemctl stop dcos-mesos-slave.service
sudo rm -f /var/lib/mesos/slave/meta/slaves/latest
sudo systemctl start dcos-mesos-slave.service
验证人: curl master.mesos/mesos/slaves
.
之后,我希望具有AcceptedResources属性的marathon应用程序将只接收这些特定的资源提供,但它不会发生(应用程序仍处于等待状态)。
为什么马拉松没有收到?应该如何做到这一点,使它的工作?
{
"id": "/basic-4",
"cmd": "python3 -m http.server 8080",
"cpus": 0.5,
"mem": 32,
"disk": 0,
"instances": 1,
"acceptedResourceRoles": [
"app-role"
],
"container": {
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "python:3",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 8080,
"hostPort": 0,
"servicePort": 10000,
"protocol": "tcp",
"name": "my-vip",
"labels": {
"VIP_0": "/my-service:5555"
}
}
],
"privileged": false,
"parameters": [],
"forcePullImage": false
}
},
"portDefinitions": [
{
"port": 10000,
"protocol": "tcp",
"name": "default",
"labels": {}
}
]
}
1条答案
按热度按时间e7arh2l61#
这只适用于马拉松比赛的开始
--mesos_role
设置。就问题而言,这应该是:--mesos_role 'app-role'
.如果你设置 --mesosèu角色其他,marathon将向mesos注册此角色-它将收到为此角色保留的资源以及未保留资源的报价。
如果你设置 默认\u接受\u资源\u角色*,marathon将此默认值应用于所有未显式定义的AppDefinition 接受的资源。由于您的appdefinition定义了该选项,因此将不应用默认值(两者无论如何都是相等的)。
如果你设置 "acceptedresourceroles“:[”“] 在appdefinition(或appdefinition)中 继承 违约 ""), 马拉松将只考虑启动此应用程序的无保留资源。
更多:https://mesosphere.github.io/marathon/docs/recipes.html