我正在尝试将marathonlb部署到我在集群中的公共代理上创建的mesos角色。我的自定义角色在集群中是可见的,但是当marathonlb部署到我的角色时,它将永远等待。
我对mesos还不够熟练,不知道部署在等什么。我查看了主/代理日志,但没有任何相关内容。在这方面的任何指示都是很感激的。
主机未配置为将任何特定角色(通过 --roles
),所以我应该能够将任意角色引入集群。的确,大师们可以看到 "slave_public_tools"
角色:
[centos@ip-10-0-1-25 ~]$ curl -s master.mesos:5050/roles | jq
{
"roles": [
{
"frameworks": [
"2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0002",
"2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0001"
],
"name": "*",
"resources": {
"cpus": 0,
"disk": 0,
"gpus": 0,
"mem": 0
},
"weight": 1
},
{
"frameworks": [
"2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0000"
],
"name": "slave_public",
"resources": {
"cpus": 0,
"disk": 0,
"gpus": 0,
"mem": 0
},
"weight": 1
},
{
"frameworks": [
"2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0004",
"2a2b67f7-1440-4594-9cb9-bb86d3cbc110-0003"
],
"name": "slave_public_tools",
"resources": {
"cpus": 0,
"disk": 0,
"gpus": 0,
"mem": 0
},
"weight": 1
}
]
}
如果有关系的话,我创造了 "slave_public_tools"
按设置的角色 MESOS_DEFAULT_ROLE=slave_public_tools
在 /var/lib/dcos/mesos-slave-common
在代理第一次启动之前。mesos代理似乎识别默认的角色设置,并且该角色具有以下资源:
[centos@ip-10-0-1-25 ~]$ url -s 10.0.1.14:5051/state | jq '{ default_role : .flags.default_role }, .reserved_resources_full'
{
"default_role": "slave_public_tools"
}
{
"slave_public_tools": [
{
"name": "ports",
"type": "RANGES",
"ranges": {
"range": [
{
"begin": 1,
"end": 21
},
{
"begin": 23,
"end": 5050
},
{
"begin": 5052,
"end": 32000
}
]
},
"role": "slave_public_tools"
},
{
"name": "disk",
"type": "SCALAR",
"scalar": {
"value": 51042
},
"role": "slave_public_tools",
"disk": {
"source": {
"type": "MOUNT",
"mount": {
"root": "/dcos/volume0"
}
}
}
},
{
"name": "disk",
"type": "SCALAR",
"scalar": {
"value": 51042
},
"role": "slave_public_tools"
},
{
"name": "cpus",
"type": "SCALAR",
"scalar": {
"value": 2
},
"role": "slave_public_tools"
},
{
"name": "mem",
"type": "SCALAR",
"scalar": {
"value": 6037
},
"role": "slave_public_tools"
}
]
}
部署marathon lb时,我使用以下options.json:
{
"marathon-lb":{
"name":"marathon-lb-tools",
"haproxy-group":"public-tools",
"bind-http-https":true,
"role":"slave_public_tools"
}
}
顺便说一下,我这样做是因为我想在集群中部署两个新的部署。这两个位置都需要外部访问,但其中一个将代理高吞吐量应用程序,并需要相应地扩展,另一个将用于各种低带宽应用程序。
也许有更好的方法来实现这些目标,但是创建一个单独的mesos角色,这个角色对于配置了特定haproxy组的马拉松lb来说是显而易见的。
1条答案
按热度按时间4c8rllxm1#
谢谢大家的建议。我了解到我的marathonlb没有部署,因为默认情况下,dc/os运行的marathon集群只接受来自'*'和'slave\u public'角色的请求。
我需要开始另一个马拉松的例子
mesos_role
设置为“slave\u public\u tools”使其工作。