14 инструмента за оркестриране на контейнери за DevOps

Нека поговорим за някои от популярните инструменти за оркестрация на контейнери, налични на пазара.

Какво е оркестрация на контейнери?

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

Става изключително трудно да се управлява жизненият цикъл на контейнера и неговото управление, когато броят нараства динамично с търсенето.

Оркестрацията на контейнерите решава проблема чрез автоматизиране на планирането, внедряването, скалируемостта, балансирането на натоварването, наличността и работата в мрежа на контейнерите. Оркестрацията на контейнери е автоматизацията и управлението на жизнения цикъл на контейнерите и услугите.

Това е процес на управление и организиране на множество контейнери и архитектура на микроуслуги в мащаб.

За щастие на пазара има много инструменти за оркестрация на контейнери.

Нека ги изследваме!

Kubernetes

Познахте, нали?

Kubernetes е платформа с отворен код, която първоначално е проектирана от Google и сега се поддържа от Cloud Native Computing Foundation. Kubernetes поддържа както декларативна конфигурация, така и автоматизация. Може да помогне за автоматизиране на внедряването, мащабирането и управлението на контейнерно натоварване и услуги.

Изображение от Kubernetes.io

API на Kubernetes помага за установяване на комуникация между потребители, компоненти на клъстера и външни компоненти на трети страни. Контролната равнина и възлите на 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.

Номад

Номад е прост, гъвкав и лесен за използване оркестратор на работното натоварване за внедряване и управление на контейнери и неконтейнеризирани приложения в on-prem и облаци в мащаб. Nomad работи като единичен двоичен файл с малък ресурсен отпечатък (35MB) и се поддържа от macOS, Windows и Linux.

Разработчиците използват декларативна инфраструктура като код (IaC) за разгръщане на своите приложения и определят как трябва да бъде разгърнато дадено приложение. Nomad автоматично възстановява приложения от повреди.

  Това приложение твърди, че премахва вода от високоговорителя на вашия iPhone

Изображение от Nomad

Nomad Orchestrate приложения от всякакъв тип (не само контейнери). Той осигурява първокласна поддръжка за Docker, Windows, Java, виртуални машини и др.

Характеристика

  • Лесно и надеждно
  • Модернизиране на наследени приложения без пренаписване
  • Лесна федерация в мащаб
  • Доказана мащабируемост
  • Multi-Cloud с лекота
  • Родни интеграции с Terraform, Consul и Vault

Докер рояк

Докер рояк използва декларативен модел. Можете да дефинирате желаното състояние на услугата и Docker ще поддържа това състояние. Docker Enterprise Edition е интегрирал Kubernetes с Swarm. Docker вече предоставя гъвкавост при избора на двигател за оркестрация. CLI на Docker engine се използва за създаване на рояк от докер машини, където могат да бъдат разгърнати приложни услуги.

Изображение от Docker

Docker командите се използват за взаимодействие с клъстера. Машините, които се присъединяват към клъстера, са известни като възли, а мениджърът на Swarm управлява дейностите на клъстера.

Docker Swarm се състои от два основни компонента:

  • Мениджър – мениджърските възли възлагат задачи на работни възли в рояка. Лидер се избира въз основа на консенсусен алгоритъм на Рафт. Лидерът се справя с всички решения за управление на рояка и оркестрация на задачи за рояка.
  • Работен възел – работният възел получава задачи от мениджърския възел и ги изпълнява.

Характеристика

  • Управление на клъстери, интегрирано с Docker Engine
  • Децентрализиран дизайн
  • Декларативен модел на услугата
  • Мащабиране
  • Желано държавно помирение
  • Мултихост мрежа
  • Откриване на услуга
  • Балансиране на натоварването
  • Защитено по подразбиране
  • Текущи актуализации

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, за да включите кода на приложението в няколко независимо работещи услуги, които комуникират чрез вътрешна мрежа. Инструментът предоставя CLI за управление на целия жизнен цикъл на вашите приложения. Docker Compose традиционно се фокусира върху работните потоци за разработка и тестване, но сега те се фокусират върху по-ориентирани към производството функции.

Docker Engine може да бъде самостоятелен екземпляр, осигурен с Docker Machine или цял Docker Swarm клъстер.

Характеристика

  • Множество изолирани среди на един хост
  • Запазване на данните за обема, когато се създават контейнери
  • Създавайте повторно само контейнери, които са променени
  • Променливи и преместване на композиция между среди

MiniKube

Миникубе позволява на потребителите да стартират Kubernetes локално. С Minikube можете да тествате приложения локално в клъстер Kubernetes с един възел на вашия персонален компютър. Minikube има интегрирана поддръжка за Kubernetes Dashboard.

Minikube изпълнява най-новата стабилна версия на Kubernetes и поддържа следните функции.

  • Балансиране на натоварването
  • Мулти-клъстер
  • Постоянни томове
  • NodePorts
  • ConfigMaps и Secrets
  • Време за изпълнение на контейнера: Docker, CRI-O и контейнерно
  • Активиране на CNI (мрежов интерфейс за контейнери)

маратон

маратон е за Apache Mesos, който има способността да организира приложения, както и рамки.

Apache Mesos е мениджър на клъстери с отворен код. Mesos е проект на Apache, който има способността да изпълнява както контейнеризирани, така и неконтейнеризирани работни натоварвания. Основните компоненти в Mesos клъстер са Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks – Frameworks се координират с главния, за да планират задачи на агентни възли. Потребителите взаимодействат с рамката на Marathon, за да планират работни места.

  Всички начини, по които вашето местоположение може да бъде проследено на iPhone

Планировчикът на 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 GB памет. Инсталирайте поддържана версия на 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 ключове

AZK

AZK е инструмент за оркестрация с отворен код за среди за разработка чрез манифестен файл (Azkfile.js), който помага на разработчиците да инсталират, конфигурират и изпълняват често използвани инструменти за разработване на уеб приложения с различни технологии с отворен код.

  Отървете се от Australis и възстановете класическата тема на Firefox 29

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) от различни хранилища на изходен код, и регистър на контейнери, за да съхранявате вашите изображения на контейнери.

GKE е готово за предприятие решение с предварително изградени шаблони за внедряване.

Интересувате ли се от изучаването на GKE? Вижте това курс за начинаещи.

AKS

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

Изображение от Azure

AKS е безплатен; вие плащате само за агентни възли в рамките на вашия клъстер, а не за главни. Можете да създадете 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 App и предоставя естествено изживяване на Kubernetes. EKS работи с най-новия Kubernetes и е сертифициран за съответствие с Kubernetes.

Заключение

В крайна сметка се надявам, че горният списък е дал добро разбиране на различните инструменти за оркестрация на контейнери и сега, в зависимост от случая на употреба, ще бъде по-лесно да изберете най-добрия.

След това разберете софтуера за управление Kubernetes.