Количество экземпляров приложения в марафоне

Есть ли способ получить количество экземпляров приложения, запущенного в марафоне? Я запускаю базовое веб-приложение Python из 2 экземпляров в марафоне. Я хочу написать скрипт для автоматического увеличения или уменьшения количества экземпляров при скачках нагрузки на mesos-slave. Для этого мне нужно, чтобы приложения запускались без экземпляров. Может кто-нибудь помочь в этом?


person Manoj Prabhakar    schedule 09.12.2016    source источник


Ответы (2)


Marathon REST API — ваш друг. Посмотрите здесь и здесь. В псевдо-питоне нужный скрипт может выглядеть примерно так:

def scaleTo(instances, force=False):
  marathon = 'http://localhost:8080'
  url = '{}/v2/apps/<your-app-id>'.format(marathon)
  headers = {
             'Content-Type': 'application/json',
             'Accept': 'application/json'
            }
  params = {'force': 'true' if force else 'false'}
  payload = {'instances': instances}

  r = requests.put(url, headers=headers, params=params, json=payload, verify=False)

  r.raise_for_status()
person rukletsov    schedule 09.12.2016

Я думаю, вас интересуют приложения с автоматическим масштабированием на Marathon. Взгляните на репозиторий marathon-autoscale. Эти сценарии могут быть полезны, хотя они предназначены только для PoC.

person blurblah    schedule 16.12.2016