Как выбрать правильную оркестрацию контейнеров и как ее развернуть

1656627618 kak vybrat pravilnuyu orkestracziyu kontejnerov i kak ee razvernut

Майкла Дугласа

vbWtSLRX0gqNpbfNrjFI5rZXZWm71-4D4nXz

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

Если вы не используете конвейер CI/CD и оркестровку, разработка и операции должны осуществлять экстремальное непрерывное сотрудничество и координацию.

321SoCA0X4RdnVeQZsY4ttSZPRd4cBi2pdZf
Изображение предоставлено Джулиусом Сильвером — Pexels.com — Я уверен, что у них есть оркестрация того, как контейнеры загружаются на эти суда… Я не могу представить, какие переменные задействованы: Распределение веса. Место назначения и порядок вывоза. Нестабильность. Это изображение радует меня, что я работаю в программном обеспечении, помогающем управлять сложностью!

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

Со своего скромного начала менее трех лет назад Kubernetes быстро превратился в удивительный механизм оркестрования, который используется бесчисленными корпорациями и встраивается во многие другие проекты. Как разработчик программного обеспечения со многими десятилетиями во время работы, я очень потрясен архитектурой Kubernetes. Он очень модульный и построен с учетом того, что многие детали можно заменить. В некоторых случаях для данного компонента уже есть множество вариантов.

Все это новизна и разнообразие выбора может сделать начало достаточно сложным. Так же, когда я сижу на пропасти полной работы в Kubernetes, меня поразило более фундаментальное решение.

Сделать правильный выбор оркестрации контейнера

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

Первый вопрос, который у меня возник, заключался в том, какие альтернативы для оркестровки контейнеров?

Потратив достаточно времени на поиск и чтение, вот список систем оркестрования, которые я мог найти:

  • Kubernetes — очевидный большой папа из всех. Сам проект очень активен, и архитектура дает мне утешение, что дальнейшее развитие будет быстрым и безопасным. Это мой инстинктивный выбор.
  • Docker Swarm – он встроен в Docker по умолчанию и имеет множество основных функций, которые вы хотите в системе. У него много пары с Kubernetes, но ему не хватает ключевого элемента, поскольку бесплатная версия с открытым исходным кодом – это контроль доступа на основе ролей (RBAC). Вы можете получить это в платной версии Enterprise.
  • Marathon on Mesos – сам Mesos является высокомасштабированной системой кластеризации для выполнения задач всех видов. Он полагается на фреймворки для поддержки различных видов задач, а Marathon – это плагин, обеспечивающий поддержку оркестрации контейнеров в экосистеме Mesos. Список фреймворков поражает.
  • Титус – Когда я это писал, Netflix создал свою внутреннюю систему оркестрирования с открытым кодом. Спасибо Netflix! Titus был разработан для обеспечения теснейшей интеграции с инфраструктурой Amazon AWS (где Netflix поддерживает свои операции). Одно из их намерений состоит в том, чтобы другие проекты использовали их технологии, чтобы Netflix мог использовать их в будущем.
  • Крупный рогатый скот – это механизм оркестрования, созданный и встроенный в систему Rancher. Я не очень глубоко рассматривал Cattle, поскольку его родительский проект, по-видимому, приобрел Kubernetes как его желанный и основной механизм оркестрования. Основное название на сайте Rancher звучит так: «Enterprise Kubernetes Made Easy». Страница пронизана тем, как она помогает запускать кластеры Kubernetes. На веб-странице нет упоминаний о крупном рогатом скоте. Очевидно, что проект Rancher сделал свой выбор.
  • Nomad – Хорошо, это Hashicorp. Как большой поклонник Hashicorp, я бы чувствовал несправедливость, если бы не передал их продукт хотя бы раз. Продукт смотрится интересно на поверхности с некоторыми достаточно серьезными проблемами платного доступа. Пространства имен доступны только в корпоративной версии. Для обнаружения службы вам нужно будет добавить Consul, а для секретного управления – Vault. Согласно обзору документации, в ней также нет базовой конфигурации CNI – главное обсуждение конфигурации сети касается отображения портов и статических IP-отображений.
  • Kontena – это визуально потрясающий продукт. Вы можете использовать их облачное предложение или настроить свою главную платформу на своей инфраструктуре. Если вы решите создать собственную инфраструктуру, вы можете подключить ее к Kontena Cloud за 15 долларов США в месяц или нет. В таком случае вы отказываетесь от хорошего веб-интерфейса. Я не уверен в том, какое влияние это повлечет.

Есть и другие, на которые можно найти намеки, если присмотреться к ним: Deis, Mantl, Cloud Foundry и Amazon ECS, чтобы назвать некоторые. Эти ребята, пожалуй, заслуживают не только этого простого почетного упоминания.

Прежде всего требования

Сделать выбор здесь сложно. Конечно, это зависит от ваших требований, поэтому позвольте мне перечислить несколько важных для меня:

  1. Активное развитие: Мир оркестровки контейнеров относительно молодой. Неактивные проекты быстро отстанут и будут означать, что ошибки не разрешаются. Я чувствую, что Кэттл уже на выходе. Так что я вычеркиваю это здесь.
  2. Нет блокировки облачного поставщика: Пока я не хочу быть привязан к какому-то отдельному облачному поставщику. Титус выпадает здесь из-за его тесной интеграции с AWS, что, безусловно, минус.
  3. Простота: Чем сложнее система, тем труднее будет ею эксплуатировать. Это требование заставляет меня изымать Mesos с работы, поскольку это не система оркестрирования контейнеров. Для многих людей это пытается быть многими и это выглядит как неправильное.
  4. CNI Networking: Важна возможность иметь тривиальное сетевое соединение между моими службами. Я не хочу, чтобы разработчики тратили время на код специального назначения для поиска зависимых сервисов. Docker Swarm и Kubernetes, вы оба все еще работаете.
  5. Пространства имен с RBAC — Я работаю в корпоративной среде, и одна из моих целей — обеспечить разработку, контроль качества, постановку и производство, не противоречащих друг другу. Я мог бы настроить отдельный кластер для каждого или использовать RBAC и поделиться своими вычислительными мощностями. Docker Swarm, мне жаль, что вы идете, но это конец нашей совместной поездки. Мне нравится Hashicorp, но Nomad также размещает эту функцию за платным экраном.

Вот какие требования достаточно высокого уровня, достаточно быстро уменьшающие игровое поле. Может показаться несправедливым изымать Mesos из категории простота. Но если вы потратите половину времени на изучение всех этих вариантов, вы поймете, что в какой-то момент вам придется упростить принятие решений, чтобы на самом деле начать двигаться вперед.

У меня осталось странное состояние, когда Kubernetes и Kontena все еще в списке. Контена — это буквально 11 часов расследования. Я почти оставил его в списке других. Если бы я так сделал, этот последний час авторства был бы менее болезненным. Но вот оно. Нужно принять решение, и хотя я в конце концов вернусь в Kontena, Kubernetes – это мой текущий голос.

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

Начало работы с Kubernetes

Поэтому я выбрал Kubernetes в качестве системы оркестрирования контейнеров. Как запустить кластер для тестирования и использования в производстве? Ответы на этот вопрос также достаточно многообразны.

Методы развертывания Kubernetes

  • Minikube: рекомендованный метод быстрого запуска Kubernetes с одним узлом для целей тестирования и разработки. Я предпочитаю видеть все в полном действии, поэтому я не согласился на развертывание одного узла для своих тестов.
  • Kubeadm: это предоставляется kubernetes.io как метод развертывания кластера с одним мастером и многими узлами. Также есть дополнительные инструкции по настройке конфигурации с несколькими ведущими. Ранее я использовал Kubeadm через некоторые сценарии Terraform для настройки своих кластеров тестового стенда Digital Ocean.
  • Docker Enterprise 2.0: Когда я работал над этой статьей, Docker объявил об обновлении до EE 2.0. Эта новая версия теперь включает в себя полное развертывание Kubernetes, встроенное в продукт. После быстрого чтения они используют Swarm для загрузки кластера и развертывания Kubernetes.
  • Rancher: «Enterprise Kubernetes Made Easy» – это их претензия. Действительно, я смог запустить полный кластер Kubernetes на Digital Ocean менее чем через час, следуя их руководству. Моя первая реакция была: «Святая корова! Rancher удивительный». Он поддерживает управление развертыванием Kubernetes во многих средах и тривиализирует развертывание высокой доступности. Он позволит управлять несколькими кластерами вместе с управлением другими альтернативами оркестровки, включая их собственный Cattle и Apache Mesos.
  • Mesosphere DC/OS: возможно, он станет еще большим весом как система оркестрирования контейнеров, но теперь может администрировать кластеры Kubernetes. Этот продукт смотрится достаточно убедительно… За исключением того, что действительно хорошие вещи находятся под стеной оплаты Enterprise. Мне также непонятно с их веб-сайта, бесплатная версия DC/OS, а версия DC/OS Enterprise платная (или обе платные). Каждый раз, когда я вижу сообщение «Свяжитесь с нами, чтобы узнать цены», я, как правило, двигаюсь дальше. Это позволит мне не присматриваться слишком внимательно – простите всех, кого я обидел.
  • Фарос Контена. Кажется, даже компании, имеющие собственную полную альтернативу Kubernetes, не могут удержаться от инициатив развертывания программного обеспечения Kubernetes. Их документация «Использование с Terraform», похоже, имеет большую силу, чтобы сделать вашу инсталляцию Kubernetes четким, компонованным шагом. Вы можете настроить свою инфраструктуру в один шаг, используя любой инструмент, который у вас есть для этого, а затем настроить Kubernetes поверх этого. setup-infrastructure | install-kubernetes > proподходит

Список можно продолжать: Pivitol’s Kubo, Apprenda Kismatic, CoreOS Tectonic, RedHat Openshift v3, Openshift Origin и, конечно, многое другое.

Параметры размещения

  • Amazon EKS – Elastic Container Service для Kubernetes – кластер Kubernetes, размещенный на Amazon. Пока это технология «In Preview» от Amazon. Это говорит о жизнеспособности и будущем Kubernetes…
  • Google Kubernetes Engine (GKE) – это размещенное предложение Google. Я хотел бы сказать больше, но почему-то мой аккаунт сломан относительно получения доступа к нему.
  • OpenShift – онлайн-сервис Red Hat для контейнеров.

Мой выбор развертывания Kubernetes?

Для развертывания Kubernetes я планирую продолжать работать как с Kubeadm (возможно, заменив его на Pharos), так и с Rancher.

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

Что дальше?

Теперь, когда я прошел упражнение, чтобы понять мир опций, я готов пойти вниз и поэкспериментировать с Kubernetes. Мне нужно многое исследовать с выбранными методами развертывания.

Ранее я также говорил об Istio, лежащем на основе Kubernetes, чтобы обеспечить еще большую основу для поддержки коммуникации и мониторинга микросервисов. Ожидайте больше этого в следующих статьях. О, и теперь, когда я споткнулся о Kontena, меня тянет попробовать. ?

Добавить комментарий

Ваш адрес email не будет опубликован.