14 інструментів оркестровки контейнерів для DevOps

Давайте поговоримо про деякі популярні інструменти оркестровки контейнерів, доступні на ринку.

Що таке оркестровка контейнера?

Контейнерні платформи, такі як Docker, сьогодні дуже популярні для пакетування додатків на основі архітектури мікросервісів. Контейнери можна зробити дуже масштабованими, які можна створювати на вимогу. Хоча це добре для кількох контейнерів, але уявіть, що у вас їх сотні.

Стає надзвичайно важко керувати життєвим циклом контейнера та керування ним, коли кількість динамічно зростає разом із попитом.

Оркестровка контейнерів вирішує проблему шляхом автоматизації планування, розгортання, масштабованості, балансування навантаження, доступності та мережі контейнерів. Оркестровка контейнерів — це автоматизація та управління життєвим циклом контейнерів і сервісів.

Це процес управління та організації кількох контейнерів і архітектури мікросервісів у масштабі.

На щастя, на ринку є багато інструментів оркестровки контейнерів.

Давайте досліджувати їх!

Kubernetes

Ви здогадалися, чи не так?

Kubernetes це платформа з відкритим вихідним кодом, спочатку розроблена компанією Google, а тепер підтримується Cloud Native Computing Foundation. Kubernetes підтримує як декларативну конфігурацію, так і автоматизацію. Це може допомогти автоматизувати розгортання, масштабування та керування контейнерним навантаженням і службами.

Зображення Kubernetes.io

Kubernetes API допомагає налагодити зв’язок між користувачами, компонентами кластера та зовнішніми сторонніми компонентами. Площина керування Kubernetes і вузли працюють на групі вузлів, які разом утворюють кластер. Робоче навантаження програми складається з одного або кількох модулів, які працюють на робочих вузлах. Площина керування керує модулями та робочими вузлами.

Такі компанії, як Babylon, Booking.com, AppDirect, широко використовують Kubernetes.

особливості

  • Виявлення служби та балансування навантаження
  • Оркестровка зберігання
  • Автоматизовані розгортання та відкати
  • Горизонтальне масштабування
  • Управління секретом і конфігурацією
  • Самовідновлення
  • Пакетне виконання
  • Подвійний стек IPv4/IPv6
  • Автоматичне пакування в бункер

Хочете вивчити Kubernetes? Перегляньте ці навчальні ресурси.

OpenShift

Redhat пропонує OpenShift Контейнерна платформа як послуга (PaaS). Це допомагає в автоматизації додатків на безпечних і масштабованих ресурсах у гібридних хмарних середовищах. Він надає платформи корпоративного рівня для створення, розгортання та керування контейнерними програмами.

Зображення від Openshift

Його створено на базі Redhat Enterprise Linux і двигуна Kubernetes. Openshift має різні функції для керування кластерами через UI та CLI. Redhat надає Openshift ще у двох варіантах,

  • Openshift Online – пропонується як програмне забезпечення як послуга (SaaS)
  • OpenShift Dedicated – пропонується як керовані служби

Openshift Origin (Origin Community Distribution) — це проект спільноти з відкритим вихідним кодом, який використовується в OpenShift Container Platform, Openshift Online і OpenShift Dedicated.

Кочівник

Кочівник це простий, гнучкий і легкий у використанні оркестровник робочого навантаження для масштабного розгортання контейнерів і неконтейнерних програм і керування ними в локальних і хмарних середовищах. Nomad працює як єдиний двійковий файл із невеликим обсягом ресурсів (35 МБ) і підтримується в macOS, Windows і Linux.

Розробники використовують декларативну інфраструктуру як код (IaC) для розгортання своїх програм і визначають спосіб розгортання програми. Nomad автоматично відновлює програми після збоїв.

Зображення Nomad

Nomad Orchestrate будь-які програми (не лише контейнери). Він забезпечує першокласну підтримку Docker, Windows, Java, віртуальних машин тощо.

  Як переключитися на розблокування паролем на iPhone X

особливості

  • Простий і надійний
  • Модернізуйте застарілі програми без переписування
  • Легка федерація в масштабі
  • Перевірена масштабованість
  • Мультихмарне з легкістю
  • Рідна інтеграція з Terraform, Consul і Vault

Зграя докерів

Зграя докерів використовує декларативну модель. Ви можете визначити бажаний стан служби, і Docker підтримуватиме цей стан. Docker Enterprise Edition інтегрував Kubernetes із Swarm. Тепер Docker надає гнучкість у виборі механізму оркестровки. CLI механізму докерів використовується для створення ряду механізмів докерів, де можна розгортати служби додатків.

Зображення Docker

Команди Docker використовуються для взаємодії з кластером. Машини, які приєднуються до кластера, відомі як вузли, а Swarm manager керує діяльністю кластера.

Docker Swarm складається з двох основних компонентів:

  • Менеджер – керуючі вузли призначають завдання робочим вузлам у групі. Лідер обирається на основі консенсусного алгоритму Рафта. Керівник керує всіма рішеннями щодо управління роєм і оркестровки завдань для рою.
  • Worker Node – робочий вузол отримує завдання від вузла менеджера та виконує їх.

особливості

  • Керування кластером інтегроване з Docker Engine
  • Децентралізований дизайн
  • Декларативна модель обслуговування
  • Масштабування
  • Бажане державне примирення
  • Багатохостова мережа
  • Відкриття служби
  • Балансування навантаження
  • Безпечний за умовчанням
  • Поточні оновлення

Docker Compose

Docker Compose призначений для визначення та запуску багатоконтейнерних програм, які працюють разом. Docker-compose описує групи взаємопов’язаних служб, які спільно використовують програмні залежності, а також оркестровані та масштабовані разом.

Ви можете використовувати файл YAML (докер-файл) для налаштування служб програми. Потім за допомогою команди 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, щоб розмістити код програми в кількох незалежно запущених службах, які спілкуються за допомогою внутрішньої мережі. Інструмент надає CLI для керування всім життєвим циклом ваших програм. Docker Compose традиційно зосереджувався на робочих процесах розробки та тестування, але тепер вони зосереджені на функціях, орієнтованих на виробництво.

Механізм Docker може бути автономним екземпляром, наданим Docker Machine, або цілим кластером Docker Swarm.

особливості

  • Кілька ізольованих середовищ на одному хості
  • Зберігати дані обсягу під час створення контейнерів
  • Відтворюйте лише контейнери, які були змінені
  • Змінні та переміщення композиції між середовищами

MiniKube

Мінікубе дозволяє користувачам запускати Kubernetes локально. За допомогою Minikube ви можете тестувати програми локально в одновузловому кластері Kubernetes на вашому персональному комп’ютері. Minikube має вбудовану підтримку інформаційної панелі Kubernetes.

Minikube використовує останню стабільну версію Kubernetes і підтримує такі функції.

  • Балансування навантаження
  • Мультикластерний
  • Постійні томи
  • NodePorts
  • ConfigMaps і секрети
  • Середа виконання контейнерів: Docker, CRI-O та контейнери
  • Увімкнення CNI (інтерфейс мережі контейнерів)

марафон

марафон призначений для Apache Mesos, який має можливість оркеструвати програми, а також фреймворки.

Apache Mesos — це менеджер кластерів з відкритим кодом. Mesos — це проект Apache, який має можливість запускати як контейнерні, так і неконтейнерні робочі навантаження. Основними компонентами в кластері Mesos є Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks – Frameworks координують роботу з головним для планування завдань на агентських вузлах. Користувачі взаємодіють із структурою Marathon, щоб планувати завдання.

  Як навчитися солідності у 2022 році – 11 курсів/ресурсів

Планувальник Marathon використовує ZooKeeper, щоб знайти поточного майстра для надсилання завдань. Планувальник Marathon і майстер Mesos мають вторинний майстер, що забезпечує високу доступність. Клієнти взаємодіють із Marathon за допомогою REST API.

особливості

  • Висока доступність
  • Програми з підтримкою стану
  • Гарний і потужний інтерфейс користувача
  • обмеження
  • Виявлення служб і балансування навантаження
  • Перевірки стану здоров’я
  • Підписка на подію
  • Метрики
  • REST API

Хмарити

Хмарити це хмарний інструмент оркестрації з відкритим кодом для автоматизації розгортання та керування життєвим циклом контейнерів і мікросервісів. Він надає такі функції, як кластери на вимогу, автоматичне відновлення та масштабування на рівні інфраструктури. Cloudify може керувати контейнерною інфраструктурою та оркеструвати служби, які працюють на контейнерних платформах.

Його можна легко інтегрувати з Docker і менеджерами контейнерів на основі Docker, включаючи наступні.

  • Докер
  • Зграя докерів
  • Docker Compose
  • Kubernetes
  • Apache Mesos

Cloudify може допомогти створювати, відновлювати, масштабувати та руйнувати контейнерні кластери. Оркестровка контейнерів є ключовою для забезпечення масштабованої та високодоступної інфраструктури, на якій можуть працювати менеджери контейнерів. Cloudify надає можливість оркеструвати різнорідні служби на різних платформах. Ви можете розгортати програми за допомогою CLI та Cloudify Manager.

власник ранчо

власник ранчо це платформа з відкритим вихідним кодом, яка використовує оркестровку контейнерів, відому як бидло. Це дозволяє вам використовувати такі сервіси оркестровки, як Kubernetes, Swarm, Mesos. Rancher надає програмне забезпечення, необхідне для керування контейнерами, щоб організаціям не потрібно було створювати платформи обслуговування контейнерів з нуля, використовуючи окремий набір технологій з відкритим кодом.

Rancher 2.x дозволяє керувати кластерами Kubernetes, які працюють на постачальниках, указаних клієнтом.

Початок роботи з Rancher складається з двох кроків.

Підготуйте хост Linux

Підготуйте хост Linux із 64-розрядною версією Ubuntu 16.04 або 18.04 (або іншим підтримуваним дистрибутивом Linux і принаймні 4 ГБ пам’яті. Установіть підтримувану версію Docker на хості.

Запустіть сервер

Щоб установити та запустити Rancher, виконайте таку команду Docker на своєму хості:

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

Інтерфейс користувача rancher дозволяє керувати тисячами кластерів і вузлів Kubernetes.

Контейнерні перевезення

Контейнерність призначена для розгортання багатохмарної інфраструктури Kubernetes і керування нею. Це гнучко для роботи в загальнодоступній, приватній хмарі та локальних середовищах за допомогою єдиного інструменту. Він дає змогу надавати, керувати та контролювати ваші кластери Kubernetes у всіх основних хмарних постачальниках.

Контейнерство створено за допомогою хмарних інструментів, таких як Terraform для ініціалізації, Prometheus для моніторингу та Calico для мереж і керування політикою. Він побудований на ванільному Kubernetes. Платформа Containership пропонує інтуїтивно зрозумілу інформаційну панель, а також потужний REST API для комплексної автоматизації.

особливості

  • Багатохмарна інформаційна панель
  • Журнали аудиту
  • Підтримка екземплярів GPU
  • Безперебійне оновлення
  • Заплановані магістратури
  • Інтегровані показники
  • Логування в реальному часі
  • Розгортання без простоїв
  • Підтримка постійного сховища
  • Підтримка приватного реєстру
  • Автомасштабування робочого навантаження
  • Керування ключами SSH
  14 криптовалютних гаманців для надійного зберігання ваших криптовалют

AZK

AZK це інструмент оркестровки з відкритим вихідним кодом для середовищ розробки через файл маніфесту (Azkfile.js), який допомагає розробникам установлювати, налаштовувати та запускати інструменти, які зазвичай використовуються для розробки веб-додатків з різними технологіями з відкритим кодом.

AZK використовує контейнери замість віртуальних машин. Контейнери схожі на віртуальні машини з кращою продуктивністю та меншим споживанням фізичних ресурсів.

Файли Azkfile.js можна повторно використовувати для додавання нових компонентів або створення нових з нуля. Його можна спільно використовувати, що забезпечує повний паритет між середовищами розробки на машинах різних програмістів і зменшує ймовірність помилок під час розгортання.

GKE

GKE надає повністю кероване рішення для оркестрації контейнерних програм на Google Cloud Platform. Кластери GKE працюють на базі Kubernetes. Ви можете взаємодіяти з кластерами за допомогою Kubernetes CLI. Команди Kubernetes можна використовувати для розгортання додатків і керування ними, виконання завдань адміністрування, встановлення політик і моніторингу справності розгорнутих робочих навантажень.

Зображення GCP

Розширені функції керування Google Cloud також доступні з кластерами GKE, як-от балансування навантаження Google Cloud, пули вузлів, автоматичне масштабування вузлів, автоматичне оновлення, автоматичне відновлення вузлів, журналювання та моніторинг за допомогою пакета операцій Google Cloud.

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

GKE — це корпоративне рішення з готовими шаблонами розгортання.

Зацікавлені вивченням GKE? Подивіться це початковий курс.

AKS

AKS – це повністю керована служба Kubernetes, яку пропонує Azure, яка пропонує Kubernetes без серверів, безпеку та керування. AKS керує вашим кластером Kubernetes і дозволяє легко розгортати контейнерні програми. AKS автоматично налаштовує всі основні та вузли Kubernetes. Вам потрібно лише керувати та підтримувати вузли агента.

Зображення від Azure

АКС безкоштовний; ви платите лише за агентські вузли у своєму кластері, а не за головні. Ви можете створити кластер AKS на порталі Azure або програмно. Azure також підтримує додаткові функції, такі як розширена мережа, інтеграція Azure Active Directory і моніторинг за допомогою Azure Monitor.

AKS також підтримує контейнери Windows Server. Продуктивність його кластера та розгорнутої програми можна відстежувати за допомогою Azure Monitor. Журнали зберігаються в робочій області Azure Log Analytics.

AKS сертифіковано як сумісний з Kubernetes.

AWS EKS

AWS EKS – це повністю керована служба Kubernetes. AWS дозволяє запускати кластер EKS за допомогою AWS Fragrate, який є безсерверним обчисленням для контейнерів. Fragrance усуває потребу в наданні та управлінні серверами, дозволяючи платити за ресурс за програму.

AWS дозволяє використовувати додаткові функції з EKS, такі як Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups і Access Management (IAM), додатки для моніторингу, масштабування та балансування навантаження. EKS інтегрується з сіткою додатка AWS і забезпечує нативний досвід Kubernetes. EKS використовує останню версію Kubernetes і сертифіковано відповідає Kubernetes.

Висновок

Зрештою, я сподіваюся, що наведений вище список дав ясне розуміння різних інструментів оркестровки контейнерів, і тепер, залежно від випадку використання, буде легше вибрати найкращий.

Далі дізнайтеся про програмне забезпечення для керування Kubernetes.