Может ли марафон использовать ряд эксклюзивных портов для одного приложения

Я хочу, чтобы набор приложений использовал определенный диапазон портов, а остальные приложения использовали другой диапазон

На месос-агенте я установил: --resources="ports(*):[8000-9000, 31000-32000]"

Я хочу создать 100 × APP1 и использовать сеть BRIDGE с хост-портами в привязках портов из диапазона 8000-9000 и остальные приложения (APP2,APP3,...APPN) для использования диапазона 31000-32000,

Является ли это возможным?

Прямо сейчас 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"
            }]
        }]
    }

он также назначал ноль диску, памяти и т. д., не знаю, почему он так себя ведет. В марафоне я добавил:

"acceptedResourceRoles": [
    "app1"
]

Но оно не развернуло приложение. Я поместил запись марафона в след:

С учетом ресурсов с ролями {app1} без резидентных меток бронирования. Не все основные ресурсы удовлетворены: cpus NOT SATISFIED (0.1 > 0.0), mem NOT SATISFIED (512.0 > 0.0) (mesosphere.mesos.ResourceMatcher$:marathon-akka.actor.default-dispatcher-33)

Затем я изменил:

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

И теперь это говорит:

С учетом ресурсов с ролями {app1, *} без резидентных меток бронирования. Не удается найти диапазон с портом хоста 8111 для спецификации запуска

Там нет ничего в документах, касающихся resident reservation labels, Есть reservation labels но это не говорит о том, как создать или добавить ярлык или просто небольшой пример. Для ролей есть что-то, связанное с ACL, но очень нечеткое, и кажется, что оно затрагивает пользователей и права доступа, а не то, что означает резервирование ресурсов.

1 ответ

Поэтому я нашел способ заставить его работать. Я не знаю, правильно ли это сделать, но мне не с чем сравнивать, так что вот так:

  1. На мастера я добавил в /etc/default/mesos-master

    MESOS_ROLES="*,app1"
    
  2. На mesos slave я добавил в /etc/default/mesos-slave

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

и удалил параметр --resources из сценария exec

  1. На мастерах марафона я добавил в / etc / default / marathon

    MARATHON_MESOS_ROLE="app1"
    

Перезапустите все ведущие и подчиненные мезо, и все приложения с ролями ресурсов "app1" будут порождать свои порты в моем желаемом диапазоне [8000-9000].

Другие вопросы по тегам