Pojďme si promluvit o některých populárních nástrojích pro orchestraci kontejnerů dostupných na trhu.
Table of Contents
Co je to kontejnerová orchestrace?
Kontejnerové platformy jako Docker jsou v dnešní době velmi oblíbené pro balení aplikací založených na architektuře mikroslužeb. Kontejnery mohou být vysoce škálovatelné a lze je vytvářet na vyžádání. I když je to dobré pro několik kontejnerů, představte si, že jich máte stovky.
Je extrémně obtížné řídit životní cyklus kontejneru a jeho správu, když počty dynamicky rostou s poptávkou.
Orchestrace kontejnerů řeší problém automatizací plánování, nasazení, škálovatelnosti, vyvažování zátěže, dostupnosti a síťového propojení kontejnerů. Orchestrace kontejnerů je automatizace a správa životního cyklu kontejnerů a služeb.
Je to proces správy a organizace více kontejnerů a architektury mikroslužeb ve velkém měřítku.
Naštěstí je na trhu k dispozici mnoho nástrojů pro orchestraci kontejnerů.
Pojďme je prozkoumat!
Kubernetes
Uhodli jste, že?
Kubernetes je platforma s otevřeným zdrojovým kódem, která byla původně navržena společností Google a nyní ji spravuje nadace Cloud Native Computing Foundation. Kubernetes podporuje jak deklarativní konfiguraci, tak automatizaci. Může pomoci automatizovat nasazení, škálování a správu kontejnerizovaného pracovního zatížení a služeb.
Obrázek Kubernetes.io
Kubernetes API pomáhá navázat komunikaci mezi uživateli, komponentami clusteru a externími komponentami třetích stran. Řídicí rovina Kubernetes a uzly běží na skupině uzlů, které dohromady tvoří cluster. Pracovní zátěž aplikace se skládá z jednoho nebo více modulů, které běží na uzlech Worker. Řídicí rovina spravuje moduly a pracovní uzly.
Společnosti jako Babylon, Booking.com, AppDirect značně využívají Kubernetes.
Funkce
- Zjišťování služeb a vyrovnávání zátěže
- Orchestrace úložiště
- Automatizované zavádění a vrácení zpět
- Horizontální škálování
- Správa tajemství a konfigurace
- Samoléčení
- Dávkové provedení
- Duální zásobník IPv4/IPv6
- Automatické balení do koše
Chcete se naučit Kubernetes? Podívejte se na tyto výukové zdroje.
OpenShift
Redhat nabízí OpenShift Kontejnerová platforma jako služba (PaaS). Pomáhá při automatizaci aplikací na zabezpečených a škálovatelných zdrojích v hybridních cloudových prostředích. Poskytuje podnikové platformy pro vytváření, nasazení a správu kontejnerových aplikací.
Obrázek od Openshift
Je postaven na Redhat enterprise Linux a Kubernetes engine. Openshift má různé funkce pro správu clusterů prostřednictvím uživatelského rozhraní a CLI. Redhat poskytuje Openshift ve dvou dalších variantách,
- Openshift Online – nabízený jako software jako služba (SaaS)
- OpenShift Dedicated – nabízené jako spravované služby
Openshift Origin (Origin Community Distribution) je open-source upstream komunitní projekt, který se používá v OpenShift Container Platform, Openshift Online a OpenShift Dedicated.
Nomád
Nomád je jednoduchý, flexibilní a snadno použitelný orchestrátor pracovní zátěže pro nasazování a správu kontejnerů a nekontejnerovaných aplikací v rámci on-prem a cloudů ve velkém měřítku. Nomad běží jako jediný binární soubor s malou stopou zdrojů (35 MB) a je podporován v systémech macOS, Windows a Linux.
Vývojáři používají k nasazování svých aplikací deklarativní infrastrukturu jako kód (IaC) a definují, jak by měla být aplikace nasazena. Nomad automaticky obnovuje aplikace po selhání.
Obrázek od Nomad
Aplikace Nomad Orchestrate jakéhokoli typu (nejen kontejnery). Poskytuje prvotřídní podporu pro Docker, Windows, Java, VM a další.
Funkce
- Jednoduché & Spolehlivé
- Modernizujte starší aplikace bez přepisování
- Snadná federace v měřítku
- Osvědčená škálovatelnost
- Multi-cloud s lehkostí
- Nativní integrace s Terraformem, Consulem a Vaultem
Docker Swarm
Docker Swarm používá deklarativní model. Můžete definovat požadovaný stav služby a Docker bude tento stav udržovat. Docker Enterprise Edition integroval Kubernetes se Swarmem. Docker nyní poskytuje flexibilitu při výběru nástroje pro orchestraci. Docker engine CLI se používá k vytvoření hejna docker engine, kde lze nasadit aplikační služby.
Obrázek od Docker
Příkazy Docker se používají k interakci s clusterem. Počítače, které se připojují ke clusteru, jsou známé jako uzly a správce Swarm zpracovává aktivity clusteru.
Docker Swarm se skládá ze dvou hlavních součástí:
- Manažer – manažerské uzly přidělují úkoly pracovním uzlům v roji. Vedoucí je volen na základě konsensuálního algoritmu Raft. Vůdce se stará o všechna rozhodnutí týkající se správy roje a plánování úkolů pro roj.
- Pracovní uzel – pracovní uzel přijímá úkoly z manažerského uzlu a provádí je.
Funkce
- Správa clusteru integrovaná s Docker Engine
- Decentralizovaný design
- Model deklarativní služby
- Měřítko
- Požadované státní smíření
- Síť s více hostiteli
- Zjištění služby
- Vyvažování zátěže
- Zabezpečení ve výchozím nastavení
- Průběžné aktualizace
Docker Compose
Docker Compose slouží k definování a spouštění vícekontejnerových aplikací, které spolupracují. Docker-compose popisuje skupiny vzájemně propojených služeb, které sdílejí softwarové závislosti a jsou organizovány a škálovány společně.
Ke konfiguraci služeb vaší aplikace můžete použít soubor YAML (dockerfile). Poté pomocí příkazu docker-compose up vytvoříte a spustíte všechny služby z vaší konfigurace.
Docker-compose.yml vypadá takto:
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/
Pomocí Docker Compose můžete rozdělit kód aplikace do několika nezávisle spuštěných služeb, které komunikují pomocí interní sítě. Tento nástroj poskytuje CLI pro správu celého životního cyklu vašich aplikací. Docker Compose se tradičně zaměřoval na vývojové a testovací pracovní postupy, ale nyní se zaměřují na funkce více orientované na produkci.
Docker Engine může být samostatná instance poskytovaná s Docker Machine nebo celým clusterem Docker Swarm.
Funkce
- Více izolovaných prostředí na jednom hostiteli
- Zachovejte data objemu při vytváření kontejnerů
- Znovu vytvořte pouze kontejnery, které se změnily
- Proměnné a přesun kompozice mezi prostředími
MiniKube
Minikube umožňuje uživatelům spouštět Kubernetes lokálně. S Minikube můžete testovat aplikace lokálně uvnitř jednouzlového clusteru Kubernetes na vašem osobním počítači. Minikube má integrovanou podporu pro Kubernetes Dashboard.
Minikube spouští nejnovější stabilní verzi Kubernetes a podporuje následující funkce.
- Vyrovnávání zátěže
- Multi-cluster
- Trvalé svazky
- NodePorts
- ConfigMaps a tajemství
- Runtime kontejneru: Docker, CRI-O a kontejner
- Povolení CNI (Container Network Interface)
Maratón
Maratón je pro Apache Mesos, který má schopnost organizovat aplikace i rámce.
Apache Mesos je open-source správce clusteru. Mesos je projekt společnosti Apache, který má schopnost spouštět kontejnerizované i nekontejnerované úlohy. Hlavní komponenty v clusteru Mesos jsou Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks – Frameworks koordinující s masterem pro plánování úloh na uzly agentů. Uživatelé interagují s rámcem Marathon a plánují úlohy.
Plánovač Marathon používá ZooKeeper k vyhledání aktuálního hlavního serveru k odeslání úkolů. Marathon plánovač a Mesos master mají spuštěn sekundární master, aby byla zajištěna vysoká dostupnost. Klienti komunikují s Marathonem pomocí REST API.
Funkce
- Vysoká dostupnost
- Stavové aplikace
- Krásné a výkonné uživatelské rozhraní
- Omezení
- Zjišťování služeb a vyrovnávání zátěže
- Zdravotní kontroly
- Předplatné akce
- Metriky
- REST API
Zamračit se
Zamračit se je open-source cloudový nástroj pro orchestraci pro automatizaci nasazení a správu životního cyklu kontejnerů a mikroslužeb. Poskytuje funkce, jako jsou clustery na vyžádání, automatické léčení a škálování na úrovni infrastruktury. Cloudify může spravovat kontejnerovou infrastrukturu a organizovat služby, které běží na kontejnerových platformách.
Lze jej snadno integrovat s Dockerem a správci kontejnerů založených na Dockeru, včetně následujících.
- Přístavní dělník
- Docker Swarm
- Docker Compose
- Kubernetes
- Apache Mesos
Cloudify může pomoci vytvářet, léčit, škálovat a rušit clustery kontejnerů. Orchestrace kontejnerů je klíčem k poskytování škálovatelné a vysoce dostupné infrastruktury, na které mohou správci kontejnerů běžet. Cloudify poskytuje možnost organizovat heterogenní služby napříč platformami. Aplikace můžete nasadit pomocí CLI a Cloudify Manager.
Farmář
Farmář je open-source platforma, která používá kontejnerovou orchestraci známou jako dobytek. Umožňuje vám využít orchestrační služby jako Kubernetes, Swarm, Mesos. Rancher poskytuje software potřebný pro správu kontejnerů, aby organizace nemusely budovat platformy kontejnerových služeb od nuly pomocí odlišné sady open source technologií.
Rancher 2.x umožňuje správu clusterů Kubernetes běžících na zákaznických poskytovatelích.
Začít s Rancherem je proces ve dvou krocích.
Připravte hostitele Linuxu
Připravte si hostitele Linux s 64bitovým Ubuntu 16.04 nebo 18.04 (nebo jinou podporovanou distribucí Linuxu a alespoň 4 GB paměti. Nainstalujte na hostitele podporovanou verzi Dockeru.
Spusťte server
Chcete-li nainstalovat a spustit Rancher, spusťte na svém hostiteli následující příkaz Docker:
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Uživatelské rozhraní rančera umožňuje správu tisíců clusterů a uzlů Kubernetes.
Kontejnerová loď
Containership je pro umožnění nasazení a správy multicloudové infrastruktury Kubernetes. Je flexibilní pro provoz ve veřejném, privátním cloudu a on-premise prostředí z jediného nástroje. Umožňuje zajišťovat, spravovat a monitorovat vaše clustery Kubernetes u všech hlavních poskytovatelů cloudu.
Containership je vytvořen pomocí cloudových nativních nástrojů, jako je Terraform pro poskytování, Prometheus pro monitorování a Calico pro správu sítí a zásad. Je postaven na vanilce Kubernetes. Platforma Containership nabízí intuitivní řídicí panel a také výkonné REST API pro komplexní automatizaci.
Funkce
- Multicloud Dashboard
- Protokoly auditu
- Podpora instance GPU
- Nerušivé upgrady
- Plánovatelní mistři
- Integrované metriky
- Logování v reálném čase
- Nasazení s nulovými prostoji
- Podpora trvalého úložiště
- Podpora soukromého registru
- Automatické škálování pracovní zátěže
- Správa klíčů SSH
AZK
AZK je open-source nástroj pro orchestraci pro vývojová prostředí prostřednictvím souboru manifestu (Azkfile.js), který pomáhá vývojářům instalovat, konfigurovat a spouštět běžně používané nástroje pro vývoj webových aplikací s různými technologiemi open source.
AZK místo virtuálních strojů používá kontejnery. Kontejnery jsou jako virtuální stroje s lepším výkonem a nižší spotřebou fyzických zdrojů.
Soubory Azkfile.js lze znovu použít k přidání nových komponent nebo k vytvoření nových od začátku. Lze jej sdílet, což zajišťuje úplnou paritu mezi vývojovými prostředími na strojích různých programátorů a snižuje pravděpodobnost výskytu chyb během nasazení.
GKE
GKE poskytuje plně spravované řešení pro orchestraci kontejnerových aplikací na Google Cloud Platform. Clustery GKE jsou poháněny Kubernetes. S clustery můžete komunikovat pomocí Kubernetes CLI. Příkazy Kubernetes lze použít k nasazení a správě aplikací, provádění úloh správy, nastavení zásad a sledování stavu nasazených úloh.
Obrázek od GCP
Pokročilé funkce správy Google Cloud jsou k dispozici také s clustery GKE, jako je vyrovnávání zátěže Google Cloud, fondy uzlů, automatické škálování uzlů, automatické upgrady, automatická oprava uzlů, protokolování a monitorování pomocí operační sady Google Cloud.
Google Cloud poskytuje nástroje CI/CD, které vám pomohou vytvářet a obsluhovat kontejnery aplikací. Cloud Build můžete použít k vytváření obrázků kontejnerů (jako je Docker) z různých úložišť zdrojového kódu a Container Registry k ukládání obrázků kontejnerů.
GKE je podnikové řešení s předpřipravenými šablonami nasazení.
Máte zájem o výuku GKE? Podívejte se na toto kurz pro začátečníky.
AKS
AKS je plně spravovaná služba Kubernetes nabízená Azure, která nabízí bezserverové Kubernetes, zabezpečení a správu. AKS spravuje váš cluster Kubernetes a umožňuje vám snadno nasazovat kontejnerizované aplikace. AKS automaticky nakonfiguruje všechny hlavní servery a uzly Kubernetes. Potřebujete pouze spravovat a udržovat uzly agentů.
Obrázek od Azure
AKS je zdarma; platíte pouze za uzly agentů ve vašem clusteru, nikoli za hlavní uzly. Cluster AKS můžete vytvořit v Azure Portal nebo programově. Azure také podporuje další funkce, jako jsou pokročilé sítě, integrace Azure Active Directory a monitorování pomocí Azure Monitor.
AKS také podporuje kontejnery Windows Server. Výkon jeho clusteru a nasazené aplikace lze monitorovat z Azure Monitor. Protokoly jsou uloženy v pracovním prostoru Azure Log Analytics.
AKS byl certifikován jako vyhovující Kubernetes.
AWS EKS
AWS EKS je plně spravovaná služba Kubernetes. AWS vám umožňuje provozovat váš cluster EKS pomocí AWS Fragrate, což je bezserverový výpočet pro kontejnery. Vůně odstraňuje potřebu zajišťovat a spravovat servery a umožňuje platit za zdroj na aplikaci.
AWS umožňuje použití dalších funkcí s EKS, jako jsou Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups a Access Management (IAM), aplikace pro monitorování, škálování a vyrovnávání zátěže. EKS se integruje s AWS App mesh a poskytuje nativní prostředí Kubernetes. EKS provozuje nejnovější Kubernetes a je certifikován jako kompatibilní s Kubernetes.
Závěr
Nakonec doufám, že výše uvedený seznam poskytl správné pochopení různých nástrojů pro orchestraci kontejnerů a nyní v závislosti na případu použití bude snazší vybrat si ten nejlepší.
Dále zjistěte Kubernetes Management Software.