2016-12-13 7 views
1

Я довольно новичок в организации оркестровки и управления флотом контейнеров. Я хочу создать приложение, которое даст пользователю контейнер, когда они будут запускать команду. Каков наилучший инструмент и лучший способ достичь этого?Контейнерная оркестровка для создания отдельных контейнеров на основе действия пользователя

Я планирую иметь пул серверов CoreOS для запуска контейнеров, и я представляю, что планировщик имеет API, который я могу просто вызвать для создания контейнера.

Большая часть того, что я видел с помощью Nomad, Kubernetes, Docker Swarm и т. Д., Заключается в том, как создать несколько кластеров контейнеров, которые делают одно и то же. Я хочу иметь возможность создать единый контейнер на основе команды пользователей, а затем иметь возможность связываться с API в этом контейнере. У кого-нибудь есть опыт с этим?

ответ

1

Я смотрел на Kubernetes + Jobs API (кратковременным) или Deployments (долгоживущие)

Я не уверен, что именно вы имеете в виду по команде, но я предполагаю, что некоторые его рода Dev окр вызванный CLI, make-dev.

  1. Пользователь запускает make-dev, который посылает webhook вашего приложения сидит перед API Работы, в идеале делать лимитирующую скорость и/или авторизацию.
  2. Ваше приложение принимает команду, здравомыслие проверяет его, а затем выстреливает запрос работы/Deployment + ап + Service
  3. Kubernetes будет планировать его через ваш парк машин
  4. Ваше приложение ждет стручка начать Ingress rule , а затем возвращает адрес API с уникальным идентификатором (то же самое в правиле входа), как devclusters.com/foobar123
  5. Пользователь теперь обращается к своей службе по этому адресу. Внутренне Кубернете использует вход и обслуживание для направления запросов на ваш блок.

Это должно хорошо масштабироваться, и если ваши разные среды используют один и тот же образ базового контейнера, они должны начинаться очень быстро.

Штекер: Если вы хотите простой CoreOS + Kubernetes кластер плюс UI попробуйте https://coreos.com/tectonic

+0

Спасибо, Роб! Это дает мне отличную отправную точку. Я довольно новичок в Kubernetes, так что это очень полезно. Я посмотрю, что вы описали, и посмотрите, работает ли это для того, что я представляю. – gkrizek

+0

@TIC есть нечто, называемое платформой деления, которая работает на вершине кластера кубернетов, что дает опыт FAAS. Попробуйте, может быть, это то, что вы ищете –

0

Я планирую иметь пул серверов CoreOS для запуска контейнеров, и я представлял себе планировщик иметь API, что я могу просто позвонить, чтобы создать контейнер

kubernetes поставляется с RESTful API, который можно использовать непосредственно создавать стручки (единица работы в kubernetes, который содержит один или несколько контейнеров) в пределах кластера.

Утилита командной строки kubectl также взаимодействует с кластером точно так же, через api. На данный момент существуют библиотеки клиентов, написанные на golang, Java и Python, а другие - на пути к общению с кластером.

Если вы в дальнейшем хотите абстракцию более высокого уровня для управления модулями, обновите их и управляйте их сроками службы, посмотрите на один из контроллеров (replicaset, контроллер репликации, развертывание, statefulset).

Смежные вопросы