Автоматически генерировать стручки в Kubernetes - PullRequest
0 голосов
/ 26 декабря 2018

Ранее я создал сервер Flask, который порождает контейнеры Docker с помощью Docker Python SDK.Когда клиент достигает определенной конечной точки, сервер генерирует контейнер.Он будет поддерживать очереди и сможет убивать контейнеры, которые не отвечают на запросы.

Я хочу перейти на Kubernetes, но я начинаю думать, что мой текущий сервер не сможет «порождать» задания автоматически, как в модуле Docker.

docker.from_env().containers.run('alpine', 'echo hello world')  

Является ли Docker Swarm лучшим решением для этого или есть скрытая практика, которая проводится в Кубернетесе?Будет ли Python API Kubernetes логичным решением для автоматического создания модулей и заданий, где сервер Flask является модулем, который управляет другими модулями в кластере?

1 Ответ

0 голосов
/ 26 декабря 2018

'Kubectl run' очень похож на 'Docker run' в том смысле, что он создаст Pod с контейнером на основе образа docker (например, Как мне запустить команду curl изнутри модуля Kubernetes ).См. https://kubernetes.io/docs/reference/kubectl/docker-cli-to-kubectl/ для большего сравнения.Но то, что вы запускаете с помощью k8, это Pod / Jobs, которые содержат контейнеры, а не запускают контейнеры напрямую, так что это добавит вам дополнительный уровень сложности.

Kubernetes больше относится к организации сервисов, а не к выполнению краткосрочных заданий.Он имеет некоторые функции и может использоваться для запуска заданий, но это не является его главной задачей.Если вы идете в этом направлении, вы можете посмотреть на knative (и knative build) или на kubeless, поскольку то, что вы описываете, скорее похоже на концепцию без сервера.Или, если вы больше думаете о Джобсе, то, возможно, бригада (https://brigade.sh). (Подробнее см. https://www.quora.com/Is-Kubernetes-suited-for-long-running-batch-jobs) Если вы хотите запускать рабочие нагрузки веб-приложений, которые обслуживают запросы, обратите внимание, что вам не нужно убиватьконтейнеры, которые не отвечают на k8s, так как k8s будут отслеживать и перезапускать их для вас.

Я не знаю достаточно роя для сравнения. Я подозреваю, что вам будет немного легче, так как он нацелен на более централизованное управлениев docker (API k8s предназначен для поддержки других сред выполнения), но, возможно, кто-то другой может прокомментировать это. Может быть, использование Swarm поможет вам, я думаю, зависит от ваших мотиваций.

...