ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать

14 инструментов оркестрации контейнеров дл€ DevOps

ќтлична€ возможность побыть в роли дирижера

ћерион Ќетворкс

11 минут чтени€

„то такое оркестраци€ контейнеров?

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

”правление жизненным циклом контейнера и управление самим контейнером становитс€ чрезвычайно трудным, когда число посто€нно увеличиваетс€ по мере увеличени€ спроса.

ќркестраци€ контейнеров решает проблему за счет автоматизации планировани€, развертывани€, масштабируемости, балансировки нагрузки, доступности и организации сетей контейнеров. ќркестраци€ контейнеров - это автоматизаци€ и управление жизненным циклом контейнеров и услуг.

Ёто процесс управлени€ и организации архитектуры нескольких контейнеров и микросервисов в масштабе.

  счастью, на рынке имеетс€ много инструментов дл€ оркестрации контейнеров. ƒавайте рассмотрим их!


1. Kubernetes

Kubernetes - платформа с открытым исходным кодом, изначально разработанна€ Google и в насто€щее врем€ поддерживаема€ Cloud Native Computing Foundation. Kubernetes поддерживает как декларативную конфигурацию, так и автоматизацию. Ёто может помочь автоматизировать развертывание, масштабирование и управление контейнерной рабочей нагрузкой и услугами.

Kubernetes

API Kubernetes помогает установить св€зь между пользовател€ми, компонентами кластера и внешними компонентами сторонних производителей. ”ровень управлени€ Kubernetes и сами узлы выполн€ютс€ на группе узлов, которые вместе образуют кластер. –абоча€ нагрузка приложени€ состоит из одного или нескольких модулей, которые выполн€ютс€ на узле (узлах) Worker. ”ровень управлени€ контролирует группы контейнеров (Pod-ы) и рабочие узлы.

“акие компании, как Babylon, Booking.com, AppDirect широко используют Kubernetes.


ќсобенности

  • ќбнаружение служб и балансировка нагрузки
  • ќркестраци€ системы хранени€ данных
  • јвтоматизированные развертывани€ и откаты
  • √оризонтальное масштабирование
  • ”правление секретом и конфигурацией
  • —амовосстановление
  • ѕакетное выполнение
  • ƒвойной стек IPv4/IPv6
  • јвтоматическа€ упаковка €чеек

2. OpenShift

Redhat предлагает OpenShift Container Platform как сервис (PaaS). ќн помогает автоматизировать приложени€ на безопасных и масштабируемых ресурсах в гибридных облачных средах. ќн предоставл€ет платформы корпоративного уровн€ дл€ создани€, развертывани€ и управлени€ контейнерными приложени€ми.

OpenShift

—ервис построен на движке Redhat Enterprise Linux и Kubernetes. Openshift имеет различные функциональные возможности дл€ управлени€ кластерами через интерфейс пользовател€ и интерфейс командной строки. Redhat предоставл€ет Openshift еще в двух вариантах,

  • Openshift Online - предлагаетс€ как программное обеспечение в качестве услуги (SaaS)
  • ¬ыделенный OpenShift - предлагаетс€ как управл€емые услуги

Openshift Origin (Origin Community Distribution) - родительский проект сообщества с открытым исходным кодом, который используетс€ в OpenShift Container Platform, Openshift Online и OpenShift Distributed.


3. Nomad

Nomad - это удобный, гибкий и простой в использовании оркестратор рабочей нагрузки дл€ развертывани€ контейнеров и неконтейнерных приложений и управлени€ ими не зависимо от того расположены они в облачной или в локальной среде. Nomad работает как единый двоичный файл с небольшим ресурсом (35MB) и поддерживаетс€ в macOS, Windows, Linux.

–азработчики используют декларативную инфраструктуру как код (IaC) дл€ развертывани€ своих приложений и определ€ют способ развертывани€ приложени€. Nomad автоматически восстанавливает приложени€ после сбоев.

Nomad

Nomad подходит дл€ оркестрации любого типа приложений (не только контейнеры). ќна обеспечивает первоклассную поддержку Docker, Windows, Java, виртуальных машин и многого другого.


ќсобенности

  • ѕростота и надежность
  • ћодернизаци€ устаревших приложений без перезаписи
  • ѕроверенна€ масштабируемость
  • ѕоддержка работы с несколькими облаками
  • ¬строенна€ интеграци€ с Terraform, Consul и Vault

4. Docker Swarm

Docker Swarm использует декларативную модель. ћожно определить требуемое состо€ние службы, и Docker будет поддерживать это состо€ние. Docker Enterprise Edition интегрировал Kubernetes с Swarm. Docker теперь обеспечивает гибкость в выборе движка оркестровки. »нтерфейс командной строки Docker Engine используетс€ дл€ создани€ ро€ Docker движков, в которых могут быть развернуты службы приложений.

Docker Swarm

ƒл€ взаимодействи€ с кластером используютс€ команды Docker. ћашины, которые присоедин€ютс€ к кластеру, называютс€ узлами, а управление действи€ми кластера осуществл€ет менеджер Swarm.

Docker Swarm состоит из двух основных компонентов:

  • ћенеджер (Manager) узлы-менеджеры назначают задачи рабочим узлам ро€. Ћидер избираетс€ на основе консенсусного алгоритма –афта. –уководитель обрабатывает все решени€ по управлению роем и оркестровке задач дл€ ро€.
  • –абочий узел - рабочий узел получает задачи от узла менеджера и выполн€ет их.

ќсобенности

  • ”правление кластерами, интегрированное с Docker Engine
  • ƒецентрализованное проектирование
  • ƒекларативна€ модель службы
  • ћасштабирование
  • ¬ыверка требуемого состо€ни€
  • ћногосерверна€ сеть
  • ќбнаружение услуг
  • Ѕалансировка нагрузки
  • Ѕезопасность по умолчанию
  • —кольз€щие обновлени€

5. Docker Compose

Docker Compose предназначен дл€ определени€ и запуска многопоточных приложений, работающих вместе. Docker-compose описывает группы взаимосв€занных служб, которые совместно используют программные зависимости, и организованы и масштабированы вместе.

ƒл€ настройки служб приложени€ можно использовать файл YAML (dockerfile). «атем с помощью команды docker-compose up можно создать и запустить все службы из конфигурации.

docker-compose.yml выгл€дит следующим образом:
version: '3'
volumes:
  app_data:
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
      - ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data
  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:6.8.0
    ports:
      - 5601:5601
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
  app:
    depends_on:
      - elasticsearch
    image: asadali08527/app:latest
    ports:
      - 8080:8080
    volumes:
      - app_data:/var/lib/app/

— помощью Docker Compose можно включить код приложени€ в несколько независимо работающих служб, которые взаимодействуют с помощью внутренней сети. »нструмент предоставл€ет интерфейс командной строки дл€ управлени€ всем жизненным циклом приложений. Docker Compose традиционно был сосредоточен на разработке и тестировании рабочих процессов, но сейчас они фокусируютс€ на более ориентированных на производство функци€х.

Docker Engine может быть автономным экземпл€ром, подготовленным с помощью Docker Machine, или целым кластером Docker Swarm.


ќсобенности

  • Ќесколько изолированных сред на одном хосте
  • —охран€ть данные тома при создании контейнеров
  • ¬оссоздавать только измененные контейнеры
  • ѕеременные и перемещение композиции между средами

6. MiniKube

Minikube позвол€ет пользовател€м запускать Kubernetes локально. — помощью Minikube можно локально тестировать приложени€ внутри одноузлового кластера Kubernetes на персональном компьютере. ¬ Minikube интегрирована поддержка Kubernetes Dashboard.

Docker Compose

Minikube работает под управлением последнего стабильного выпуска Kubernetes и поддерживает следующие функции:

  • Ѕалансировка нагрузки
  • ћультигруппа
  • ѕосто€нные тома
  • NodePorts
  •  онфигурационные карты и секреты
  • Container Runtime: Docker, CRI-O
  • ¬ключение CNI (интерфейс контейнерной сети)

7. Marathon

Marathon предназначен дл€ Apache Mesos, который может организовывать как приложени€, так и фреймворки.

Apache Mesos - менеджер кластеров с открытым исходным кодом. Mesos - проект компании Apache, способный выполн€ть как контейнерные, так и неконтейнерные рабочие нагрузки. ќсновными компонентами в кластере Mesos €вл€ютс€ узлы-агенты Mesos, Mesos мастер, ZooKeeper, фреймворки. ‘реймворки вместе с мастером создают расписание заданий дл€ узлов-агентов. –азработчики используют платформу Marathon в основном дл€ планировани€ заданий.

Marathon

ѕланировщик Marathon использует ZooKeeper дл€ поиска текущего хоз€ина дл€ отправки заданий. ѕланировщик Marathon и мастер имеют второго мастера, чтобы обеспечить высокую доступность.  лиенты взаимодействуют с Marathon с помощью REST API.


ќсобенности

  • ¬ысока€ доступность
  • ѕриложени€ с отслеживанием состо€ни€
  •  расивый и мощный пользовательский интерфейс
  • ќграничени€
  • ќбнаружение служб и балансировка нагрузки
  • ѕроверки работоспособности
  • ѕодписка на событие
  • ћетрики
  • API REST

8. Cloudify

Cloudify - облачное средство оркестровки с открытым исходным кодом дл€ автоматизации развертывани€ и управлени€ жизненным циклом контейнеров и микросервисов. ќна предоставл€ет такие функции, как кластеры по требованию, автоматическое восстановление и масштабирование на уровне инфраструктуры. Cloudify может управл€ть контейнерной инфраструктурой и управл€ть службами, работающими на контейнерных платформах.

≈го можно легко интегрировать с менеджерами контейнеров на базе Docker и самим Docker, включа€ следующие:

  • Docker
  • Docker Swarm
  • Docker Composes
  • Kubernetes
  • Apache Mesos
Cloudify

Cloudify помогает создавать, восстанавливать, масштабировать и удал€ть кластеры контейнеров. ќркестровка контейнеров €вл€етс€ ключевым фактором в обеспечении масштабируемой и высокодоступной инфраструктуры, на которой могут работать менеджеры контейнеров. Cloudify обеспечивает возможность управлени€ разнородными службами между платформами. ѕриложени€ можно развернуть с помощью CLI и Cloudify Manager.


9. Rancher

Rancher - платформа с открытым исходным кодом, использующа€ оркестровку контейнеров, известную как скот. ќн позвол€ет использовать такие службы оркестрации, как Kubernetes, Swarm, Mesos. Rancher предоставл€ет программное обеспечение, необходимое дл€ управлени€ контейнерами, чтобы организаци€м не требовалось создавать платформы контейнерных услуг с нул€, использу€ отдельный набор технологий с открытым исходным кодом.

Rancher 2.x позвол€ет управл€ть кластерами Kubernetes, работающими на указанных клиентом поставщиках.

Rancher

Ќачало работы с Rancher - это двухшаговый процесс.


ѕодготовка хоста Linux

ѕодготовьте узел Linux с 64-разр€дным Ubuntu 16.04 или 18.04 (или другим поддерживаемым дистрибутивом Linux, и не менее 4GB пам€ти. ”становите поддерживаемую версию Docker на узел.


«апуск сервера

„тобы установить и запустить Rancher, выполните следующую команду Docker на хосте:

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

ѕользовательский интерфейс Rancher позвол€ет управл€ть тыс€чами кластеров и узлов Kubernetes.


10. Containership

Containership предназначен дл€ развертывани€ инфраструктуры Kubernetes с несколькими облаками и управлени€ ею. ќн гибок в работе с общедоступными, частными облачными средами и локальными средами с помощью единого инструмента. ќн позвол€ет обслуживать, управл€ть и контролировать кластеры Kubernetes всех основных облачных провайдеров.

Containership

Containership построена с использованием облачных инструментов, таких как Terraform дл€ выделени€ ресурсов, Prometheus дл€ мониторинга и Calico дл€ управлени€ сет€ми и политиками. ќн построен на чистом Kubernetes. ѕлатформа Containership предлагает интуитивно пон€тную панель управлени€, а также мощный REST API дл€ коплексной автоматизации.


ќсобенности

  • ѕанель управлени€ с поддержкой нескольких облачных платформ
  • ∆урналы аудита
  • ѕоддержка экземпл€ра графического процессора
  • ћодернизаци€ без прерывани€ работы
  • «апланированные шаблоны
  • »нтегрированные метрики
  • ¬едение журнала в реальном времени
  • –азвертывание с нулевым временем просто€
  • ѕоддержка посто€нных хранилищ
  • ѕоддержка частных реестров
  • јвтоматическое масштабирование рабочей нагрузки
  • ”правление ключами SSH

11. AZK

AZK - это инструмент оркестровки с открытым исходным кодом дл€ сред разработки через файл манифеста (Azkfile.js), который помогает разработчикам устанавливать, настраивать и запускать часто используемые инструменты дл€ разработки веб-приложений с различными технологи€ми с открытым исходным кодом.

AZK

AZK использует контейнеры вместо виртуальных машин.  онтейнеры подобны виртуальным машинам с более высокой производительностью и более низким потреблением физических ресурсов.

‘айлы Azkfile.js можно повторно использовать дл€ добавлени€ новых компонентов или создани€ новых с нул€. ќн может использоватьс€ совместно, что обеспечивает полный паритет между средами разработки на разных машинах программистов и снижает веро€тность ошибок во врем€ развертывани€.


12. GKE

GKE предоставл€ет полностью управл€емое решение дл€ оркестровки контейнерных приложений на Google Cloud Platform.  ластеры GKE созданы на основе Kubernetes. ¬ы можете взаимодействовать с кластерами с помощью Kubernetes CLI.  оманды Kubernetes можно использовать дл€ развертывани€ приложений и управлени€ ими, выполнени€ задач администрировани€, установки политик и мониторинга работоспособности развернутых рабочих нагрузок.

GKE

–асширенные функции управлени€ Google Cloud также доступны с кластерами GKE, такими как балансировка нагрузки Google Cloud, пулы узлов, автоматическое масштабирование узлов, автоматическое обновление, автоматическое восстановление узлов, ведение журнала и мониторинг с помощью операционного пакета Google Cloud.

Google Cloud предоставл€ет инструменты CI/CD, помогающие создавать и обслуживать контейнеры приложений. Cloud Build можно использовать дл€ создани€ образов контейнеров (например, Docker) из различных репозиториев исходного кода, а Container Registry - дл€ хранени€ образов контейнеров.

GKE - готовое дл€ предпри€ти€ решение с предварительно разработанными шаблонами развертывани€.


13. AKS

AKS €вл€етс€ полностью управл€емым сервисом Kubernetes, предлагаемым Azure, который предлагает безсерверные Kubernetes, безопасность и управление. AKS управл€ет кластером Kubernetes и позвол€ет легко развертывать контейнерные приложени€. AKS автоматически настраивает все главные и подчиненные узлы Kubernetes. Ќеобходимо только управл€ть узлами агента и выполн€ть их обслуживание.

AKS

AKS бесплатен; вы платите только за узлы агентов в кластере, а не за мастер узеал.  ластер AKS можно создать на портале Azure или программно. Azure также поддерживает дополнительные функции, такие как расширенные сетевые возможности, интеграци€ Azure с Active Directory и мониторинг с помощью Azure Monitor.

AKS также поддерживает контейнеры Windows Server. ѕроизводительность кластера и развернутых приложений можно контролировать с помощью Azure Monitor. ∆урналы хран€тс€ в рабочей области Azure Log Analytics.

AKS сертифицирован как как совместимый с Kubernetes.


14. AWS EKS

AWS EKS - полностью управл€емый сервис Kubernetes. AWS позвол€ет запускать кластер EKS с помощью AWS Fargate, который €вл€етс€ безсерверной мощностью дл€ контейнеров. Fargate устран€ет необходимость в выделении ресурсов и управлении серверами, позвол€€ платить за ресурс за приложение.

AWS EKS

AWS позвол€ет использовать дополнительные функции EKS, такие как Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, группы автоматического масштабировани€ и управление доступом (IAM), приложени€ мониторинга, масштабировани€ и балансировки нагрузки. EKS интегрируетс€ с сеткой AWS App и предлагает собственный опыт Kubernetes. EKS работает под управлением последнего Kubernetes и сертифицирован как совместимый с Kubernetes


«аключение

Ќадеемс€, что приведенный выше список дал общее представление о различных инструментах оркестрации контейнеров, и теперь в зависимости от ваших требований, будет легче выбрать подход€щий.