14 narzędzi do orkiestracji kontenerów dla DevOps

Porozmawiajmy o niektórych popularnych narzędziach do orkiestracji kontenerów dostępnych na rynku.

Co to jest orkiestracja kontenerów?

Platformy kontenerowe, takie jak Docker, są obecnie bardzo popularne do pakowania aplikacji opartych na architekturze mikrousług. Kontenery mogą być wysoce skalowalne, które można tworzyć na żądanie. Chociaż jest to dobre dla kilku pojemników, ale wyobraź sobie, że masz ich setki.

Zarządzanie cyklem życia kontenera i zarządzanie nim staje się niezwykle trudne, gdy liczba dynamicznie rośnie wraz z popytem.

Orkiestracja kontenerów rozwiązuje problem, automatyzując planowanie, wdrażanie, skalowalność, równoważenie obciążenia, dostępność i tworzenie sieci kontenerów. Orkiestracja kontenerów to automatyzacja i zarządzanie cyklem życia kontenerów i usług.

Jest to proces zarządzania i organizowania wielu kontenerów i architektury mikrousług na dużą skalę.

Na szczęście na rynku dostępnych jest wiele narzędzi do orkiestracji kontenerów.

Zbadajmy je!

Kubernetes

Zgadłeś, prawda?

Kubernetes to platforma typu open source, która została pierwotnie zaprojektowana przez Google, a teraz jest utrzymywana przez Cloud Native Computing Foundation. Kubernetes obsługuje zarówno konfigurację deklaratywną, jak i automatyzację. Może pomóc zautomatyzować wdrażanie, skalowanie i zarządzanie skonteneryzowanymi obciążeniami i usługami.

Obraz autorstwa Kubernetes.io

Kubernetes API pomaga nawiązać komunikację między użytkownikami, komponentami klastra i zewnętrznymi komponentami innych firm. Płaszczyzna kontroli i węzły Kubernetes działają w grupie węzłów, które razem tworzą klaster. Obciążenie aplikacji składa się z co najmniej jednego poda działającego w węzłach roboczych. Płaszczyzna sterowania zarządza podami i węzłami roboczymi.

Firmy takie jak Babylon, Booking.com, AppDirect intensywnie korzystają z Kubernetes.

Cechy

  • Wykrywanie usług i równoważenie obciążenia
  • Orkiestracja pamięci masowej
  • Zautomatyzowane rollouty i wycofania
  • Skalowanie poziome
  • Zarządzanie sekretami i konfiguracją
  • Samo leczenie
  • Wykonanie partii
  • Podwójny stos IPv4/IPv6
  • Automatyczne pakowanie w kosze

Chcesz nauczyć się Kubernetes? Zapoznaj się z tymi zasobami edukacyjnymi.

OpenShift

Oferty Redhat OpenShift Platforma kontenerowa jako usługa (PaaS). Pomaga w automatyzacji aplikacji na bezpiecznych i skalowalnych zasobach w środowiskach chmury hybrydowej. Zapewnia platformy klasy korporacyjnej do tworzenia i wdrażania aplikacji kontenerowych oraz zarządzania nimi.

Obraz autorstwa Openshift

Jest oparty na systemie Redhat Enterprise Linux i silniku Kubernetes. Openshift ma różne funkcje do zarządzania klastrami za pośrednictwem interfejsu użytkownika i CLI. Redhat udostępnia Openshift w dwóch kolejnych wariantach,

  • Openshift Online – oferowany jako oprogramowanie jako usługa (SaaS)
  • OpenShift Dedicated – oferowane jako usługi zarządzane

Openshift Origin (Origin Community Distribution) to projekt społecznościowy o otwartym kodzie źródłowym, który jest używany w OpenShift Container Platform, Openshift Online i OpenShift Dedicated.

Koczownik

Koczownik to prosty, elastyczny i łatwy w użyciu program do zarządzania obciążeniami, który umożliwia wdrażanie kontenerów i aplikacji nieskonteneryzowanych oraz zarządzanie nimi na dużą skalę w środowisku lokalnym i w chmurze. Nomad działa jako pojedynczy plik binarny z niewielkimi zasobami (35 MB) i jest obsługiwany w systemach macOS, Windows i Linux.

Deweloperzy używają deklaratywnej infrastruktury jako kodu (IaC) do wdrażania swoich aplikacji i definiują sposób wdrażania aplikacji. Nomad automatycznie odzyskuje aplikacje po awariach.

Obraz Nomada

Aplikacje Nomad Orchestrate dowolnego typu (nie tylko kontenery). Zapewnia pierwszorzędną obsługę platformy Docker, Windows, Java, maszyn wirtualnych i innych.

Cechy

  • Prosty i niezawodny
  • Modernizuj starsze aplikacje bez przepisywania
  • Łatwa Federacja w Skali
  • Sprawdzona skalowalność
  • Łatwość obsługi wielu chmur
  • Natywne integracje z Terraform, Consul i Vault

Rój dokerów

Rój dokerów używa modelu deklaratywnego. Możesz zdefiniować żądany stan usługi, a Docker utrzyma ten stan. Docker Enterprise Edition zintegrował Kubernetes z Swarm. Docker zapewnia teraz elastyczność w wyborze silnika orkiestracji. Interfejs CLI silnika platformy Docker służy do tworzenia roju silników platformy Docker, w których można wdrażać usługi aplikacji.

Obraz autorstwa Docker

Polecenia platformy Docker służą do interakcji z klastrem. Maszyny, które dołączają do klastra, są nazywane węzłami, a menedżer Swarm obsługuje działania klastra.

Docker Swarm składa się z dwóch głównych komponentów:

  • Menedżer – węzły menedżera przypisują zadania do węzłów pracowników w roju. Lider jest wybierany na podstawie algorytmu konsensusu Raft. Lider zajmuje się wszystkimi decyzjami dotyczącymi zarządzania rojem i orkiestracji zadań dla roju.
  • Węzeł roboczy – węzeł roboczy odbiera zadania z węzła menedżera i wykonuje je.

Cechy

  • Zarządzanie klastrem zintegrowane z Docker Engine
  • Zdecentralizowany projekt
  • Deklaratywny model usługi
  • skalowanie
  • Pożądane pojednanie stanowe
  • Sieć na wielu hostach
  • Wykrywanie usług
  • Równoważenie obciążenia
  • Bezpieczne domyślnie
  • Aktualizacje kroczące

Tworzenie dockera

Tworzenie dockera służy do definiowania i uruchamiania aplikacji wielokontenerowych, które współpracują ze sobą. Docker-compose opisuje grupy połączonych usług, które współdzielą zależności oprogramowania i są wspólnie aranżowane i skalowane.

Możesz użyć pliku YAML (pliku docker), aby skonfigurować usługi swojej aplikacji. Następnie za pomocą polecenia docker-compose up tworzysz i uruchamiasz wszystkie usługi ze swojej konfiguracji.

Plik docker-compose.yml wygląda tak:

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/

Możesz użyć Docker Compose, aby podzielić kod aplikacji na kilka niezależnie działających usług, które komunikują się przy użyciu sieci wewnętrznej. Narzędzie zapewnia CLI do zarządzania całym cyklem życia aplikacji. Docker Compose tradycyjnie koncentrował się na opracowywaniu i testowaniu przepływów pracy, ale teraz koncentruje się na funkcjach bardziej zorientowanych na produkcję.

Docker Engine może być samodzielną instancją udostępnioną w Docker Machine lub całym klastrem Docker Swarm.

Cechy

  • Wiele izolowanych środowisk na jednym hoście
  • Zachowaj dane woluminów podczas tworzenia kontenerów
  • Odtwórz tylko te kontenery, które uległy zmianie
  • Zmienne i przenoszenie kompozycji między środowiskami

MiniKube

Minikube umożliwia użytkownikom lokalne uruchamianie Kubernetes. Dzięki Minikube możesz testować aplikacje lokalnie w jednowęzłowym klastrze Kubernetes na komputerze osobistym. Minikube ma zintegrowaną obsługę pulpitu nawigacyjnego Kubernetes.

Minikube uruchamia najnowszą stabilną wersję Kubernetes i obsługuje następujące funkcje.

  • Równoważenie obciążenia
  • Wieloklastrowy
  • Trwałe tomy
  • NodePorts
  • ConfigMaps i tajemnice
  • Środowisko uruchomieniowe kontenera: Docker, CRI-O i kontenery
  • Włączanie CNI (kontenerowego interfejsu sieciowego)

Maraton

Maraton jest dla Apache Mesos, który ma możliwość orkiestracji aplikacji, a także frameworków.

Apache Mesos to menedżer klastrów typu open source. Mesos to projekt Apache, który umożliwia uruchamianie zarówno kontenerowych, jak i nieskonteneryzowanych obciążeń. Główne komponenty klastra Mesos to Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks – Frameworki koordynują się z masterem w celu planowania zadań na węzłach agentów. Użytkownicy wchodzą w interakcję z platformą Marathon w celu planowania zadań.

Harmonogram Marathon używa ZooKeeper do zlokalizowania aktualnego mastera w celu przesłania zadań. Harmonogram Marathon i master Mesos mają uruchomiony drugi master, aby zapewnić wysoką dostępność. Klienci wchodzą w interakcję z firmą Marathon za pomocą interfejsu API REST.

Cechy

  • Duża dostępność
  • Aplikacje stanowe
  • Piękny i potężny interfejs użytkownika
  • Ograniczenia
  • Wykrywanie usług i równoważenie obciążenia
  • Badania zdrowia
  • Subskrypcja wydarzenia
  • Metryka
  • REST API

zachmurzenie

zachmurzenie to narzędzie do orkiestracji w chmurze typu open source do automatyzacji wdrażania i zarządzania cyklem życia kontenerów i mikrousług. Zapewnia funkcje, takie jak klastry na żądanie, automatyczne naprawianie i skalowanie na poziomie infrastruktury. Cloudify może zarządzać infrastrukturą kontenerową i organizować usługi działające na platformach kontenerowych.

Można go łatwo zintegrować z menedżerami kontenerów opartymi na Docker i Docker, w tym z następującymi.

  • Doker
  • Rój dokerów
  • Tworzenie dockera
  • Kubernetes
  • Apache Mesos

Cloudify może pomóc w tworzeniu, leczeniu, skalowaniu i niszczeniu klastrów kontenerów. Orkiestracja kontenerów ma kluczowe znaczenie dla zapewnienia skalowalnej i wysoce dostępnej infrastruktury, na której mogą działać menedżerowie kontenerów. Cloudify zapewnia możliwość orkiestracji usług heterogenicznych na różnych platformach. Możesz wdrażać aplikacje za pomocą CLI i Cloudify Manager.

Farmer

Farmer to platforma typu open source, która wykorzystuje orkiestrację kontenerów znaną jako bydło. Pozwala na wykorzystanie usług orkiestracji, takich jak Kubernetes, Swarm, Mesos. Rancher dostarcza oprogramowanie wymagane do zarządzania kontenerami, dzięki czemu organizacje nie muszą budować od podstaw platform usług kontenerowych przy użyciu odrębnego zestawu technologii open source.

Rancher 2.x umożliwia zarządzanie klastrami Kubernetes działającymi na określonych przez klienta dostawcach.

Rozpoczęcie pracy z Rancherem to proces dwuetapowy.

Przygotuj hosta Linux

Przygotuj hosta z systemem Linux z 64-bitowym systemem Ubuntu 16.04 lub 18.04 (lub inną obsługiwaną dystrybucją systemu Linux i co najmniej 4 GB pamięci. Zainstaluj obsługiwaną wersję platformy Docker na hoście.

Uruchom serwer

Aby zainstalować i uruchomić Ranchera, wykonaj następujące polecenie Docker na swoim hoście:

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

Interfejs użytkownika ranchera umożliwia zarządzanie tysiącami klastrów i węzłów Kubernetes.

Kontenerowiec

Containership umożliwia wdrażanie i zarządzanie wielochmurową infrastrukturą Kubernetes. Elastycznie działa w chmurze publicznej, prywatnej i lokalnej za pomocą jednego narzędzia. Umożliwia udostępnianie, zarządzanie i monitorowanie klastrów Kubernetes we wszystkich głównych dostawcach chmury.

Containership jest budowany przy użyciu narzędzi natywnych dla chmury, takich jak Terraform do obsługi administracyjnej, Prometheus do monitorowania oraz Calico do zarządzania siecią i zasadami. Jest zbudowany na waniliowym Kubernetes. Platforma Containership oferuje intuicyjny pulpit nawigacyjny, a także potężne REST API do kompleksowej automatyzacji.

Cechy

  • Panel wielochmurowy
  • Dzienniki audytu
  • Obsługa instancji GPU
  • Niezakłócające uaktualnienia
  • Zaplanowani mistrzowie
  • Zintegrowane metryki
  • Rejestrowanie w czasie rzeczywistym
  • Wdrożenia bez przestojów
  • Obsługa trwałej pamięci masowej
  • Obsługa prywatnego rejestru
  • Autoskalowanie obciążenia
  • Zarządzanie kluczami SSH

AZK

AZK to narzędzie do aranżacji typu open source dla środowisk programistycznych za pośrednictwem pliku manifestu (Azkfile.js), które pomaga programistom instalować, konfigurować i uruchamiać powszechnie używane narzędzia do tworzenia aplikacji internetowych z różnymi technologiami open source.

AZK używa kontenerów zamiast maszyn wirtualnych. Kontenery są jak maszyny wirtualne z lepszą wydajnością i mniejszym zużyciem zasobów fizycznych.

Pliki Azkfile.js można ponownie wykorzystać do dodawania nowych komponentów lub tworzenia nowych od podstaw. Można go udostępniać, co zapewnia całkowitą równość między środowiskami programistycznymi na różnych maszynach programistów i zmniejsza ryzyko wystąpienia błędów podczas wdrażania.

GKE

GKE zapewnia w pełni zarządzane rozwiązanie do aranżacji aplikacji kontenerowych w Google Cloud Platform. Klastry GKE są obsługiwane przez platformę Kubernetes. Możesz wchodzić w interakcje z klastrami za pomocą interfejsu wiersza polecenia Kubernetes. Polecenia Kubernetes mogą służyć do wdrażania aplikacji i zarządzania nimi, wykonywania zadań administracyjnych, ustawiania zasad i monitorowania stanu wdrożonych obciążeń.

Obraz autorstwa GCP

Zaawansowane funkcje zarządzania Google Cloud są również dostępne w klastrach GKE, takie jak równoważenie obciążenia Google Cloud, pule węzłów, automatyczne skalowanie węzłów, automatyczne uaktualnienia, automatyczna naprawa węzłów, rejestrowanie i monitorowanie za pomocą pakietu operacyjnego Google Cloud.

Google Cloud udostępnia narzędzia CI/CD, które ułatwiają tworzenie i udostępnianie kontenerów aplikacji. Możesz użyć Cloud Build do tworzenia obrazów kontenerów (takich jak Docker) z różnych repozytoriów kodu źródłowego, a Container Registry do przechowywania obrazów kontenerów.

GKE to gotowe rozwiązanie dla przedsiębiorstw z gotowymi szablonami wdrażania.

Chcesz nauczyć się GKE? Sprawdź to kurs dla początkujących.

AKS

AKS to w pełni zarządzana usługa Kubernetes oferowana przez platformę Azure, która oferuje bezserwerową usługę Kubernetes, zabezpieczenia i nadzór. AKS zarządza klastrem Kubernetes i umożliwia łatwe wdrażanie aplikacji kontenerowych. AKS automatycznie konfiguruje wszystkie węzły główne i węzły Kubernetes. Wystarczy tylko zarządzać węzłami agentów i utrzymywać je.

Obraz autorstwa Azure

AKS jest bezpłatny; płacisz tylko za węzły agentów w klastrze, a nie za mastery. Klaster AKS można utworzyć w Azure Portal lub programowo. Platforma Azure obsługuje również dodatkowe funkcje, takie jak zaawansowana sieć, integracja z usługą Azure Active Directory i monitorowanie za pomocą Azure Monitor.

AKS obsługuje również kontenery systemu Windows Server. Wydajność klastra i wdrożonych aplikacji można monitorować z poziomu Azure Monitor. Dzienniki są przechowywane w obszarze roboczym Azure Log Analytics.

AKS posiada certyfikat zgodności z Kubernetes.

AWS EKS

AWS EKS to w pełni zarządzana usługa Kubernetes. AWS umożliwia uruchamianie klastra EKS przy użyciu AWS Fragrate, który jest bezserwerowym systemem obliczeniowym dla kontenerów. Zapach eliminuje potrzebę udostępniania serwerów i zarządzania nimi, umożliwiając płacenie za zasób za aplikację.

AWS umożliwia korzystanie z dodatkowych funkcji EKS, takich jak Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups i Access Management (IAM), aplikacje monitorujące, skalujące i równoważące obciążenie. EKS integruje się z siatką aplikacji AWS i zapewnia natywne środowisko Kubernetes. EKS obsługuje najnowszą wersję Kubernetes i posiada certyfikat zgodności z Kubernetes.

Wniosek

W końcu mam nadzieję, że powyższa lista dała dobre zrozumienie różnych narzędzi do orkiestracji kontenerów, a teraz, w zależności od przypadku użycia, łatwiej będzie wybrać najlepsze.

Następnie zapoznaj się z oprogramowaniem do zarządzania Kubernetes.