내 클러스터의 공용 에이전트에서 만든 Mesos 역할에 marathon-lb를 배포하려고합니다. 내 사용자 지정 역할은 클러스터에서 볼 수 있지만 marathon-lb가 내 역할에 배포되면 영원히 기다리게됩니다.영원히 대기중인 사용자 지정 Mesos 역할에 배포 된 작업
배포가 무엇을 기다리는 지 알아내는 데는 Mesos와 같이 편리하지 않습니다. 마스터/에이전트 로그를 살펴 보았지만 관련성이있는 것으로 점프 아웃하지 않았습니다. 이 관점에서 어떤 포인터가 감사하겠습니다.
마스터는 특정 역할 (--roles
통해)을 허용 목록에 포함하도록 구성되지 않았으므로 클러스터에 임의의 역할을 도입 할 수 있어야합니다. 나는 에이전트가 처음 시작되기 전에 공공 에이전트에 /var/lib/dcos/mesos-slave-common
에 MESOS_DEFAULT_ROLE=slave_public_tools
을 설정하여 "slave_public_tools"
역할을 만들어, 그것은 중요한
[[email protected] ~]$ 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"
역할을 볼 수 있습니다. 메소 에이전트는 기본 역할 설정을 인식하는 것, 그리고 역할은 자원이 : 난 그런데
{
"marathon-lb":{
"name":"marathon-lb-tools",
"haproxy-group":"public-tools",
"bind-http-https":true,
"role":"slave_public_tools"
}
}
: 마라톤 파운드를 배포 할 때 나는 다음과 같은 options.json을 사용
[[email protected] ~]$ 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 배포가 필요하기 때문에 이렇게합니다. 두 LB 모두 외부에서 액세스 할 수 있어야하지만 높은 처리량 응용 프로그램을 프록시 처리하고 이에 따라 확장해야하며 다른 하나는 다양한 저 대역폭 응용 프로그램에 사용됩니다.
이러한 목표를 달성하는 더 좋은 방법이 있을지 모르지만 특정 haproxy 그룹으로 구성된 마라톤 -lb에서 사용할 수있는 별도의 Mesos 역할을 만드는 것이 나에게 분명해 보였다.
두 개의 다른 에이전트를 실행하는 경우 호스트 이름 제약 조건을 사용하여 Marathon-lb 인스턴스를 특정 에이전트에 고정시킬 수 있습니다. – Tobi
로그 양식 스케줄러가 있습니까? 작업이 시작되지 않은 이유에 대한 정보가 있어야합니다. – janisz