14 Container Orchestration-værktøjer til DevOps

Lad os tale om nogle af de populære containerorkestreringsværktøjer, der er tilgængelige på markedet.

Hvad er en Container Orchestration?

Containerplatforme som Docker er meget populære i disse dage til at pakke applikationer baseret på en mikroservicearkitektur. Containere kan gøres meget skalerbare, som kan oprettes on-demand. Selvom dette er godt for et par beholdere, men forestil dig, at du har hundredvis af dem.

Det bliver ekstremt vanskeligt at styre containerens livscyklus og dens styring, når antallet stiger dynamisk med efterspørgslen.

Containerorkestrering løser problemet ved at automatisere planlægning, implementering, skalerbarhed, belastningsbalancering, tilgængelighed og netværk af containere. Containerorkestrering er automatisering og styring af containeres og tjenesters livscyklus.

Det er en proces med styring og organisering af flere containere og mikroservicearkitektur i skala.

Heldigvis er der mange containerorkestreringsværktøjer tilgængelige på markedet.

Lad os udforske dem!

Kubernetes

Du gættede det, ikke?

Kubernetes er en open source-platform, der oprindeligt blev designet af Google og nu vedligeholdes af Cloud Native Computing Foundation. Kubernetes understøtter både deklarativ konfiguration og automatisering. Det kan hjælpe med at automatisere implementering, skalering og styring af containeriseret arbejdsbyrde og tjenester.

Billede af Kubernetes.io

Kubernetes API hjælper med at etablere kommunikation mellem brugere, klyngekomponenter og eksterne tredjepartskomponenter. Kubernetes kontrolplan og noder kører på en gruppe af noder, der tilsammen danner klyngen. Applikationsarbejdsbelastning består af en eller flere Pods, der kører på Worker-node(r). Kontrolplanet styrer Pods og arbejderknudepunkter.

Virksomheder som Babylon, Booking.com, AppDirect bruger i vid udstrækning Kubernetes.

Funktioner

  • Serviceopdagelse og belastningsbalancering
  • Opbevaringsorkestrering
  • Automatiserede udrulninger og tilbagerulninger
  • Horisontal skalering
  • Hemmeligheds- og konfigurationsstyring
  • Selvhelbredende
  • Batch-udførelse
  • IPv4/IPv6 dual-stack
  • Automatisk beholderpakning

Vil du lære Kubernetes? Tjek disse læringsressourcer.

OpenShift

Redhat tilbyder OpenShift Container Platform as a Service (PaaS). Det hjælper med automatisering af applikationer på sikre og skalerbare ressourcer i hybride cloudmiljøer. Det leverer platforme i virksomhedskvalitet til at bygge, implementere og administrere containeriserede applikationer.

Billede af Openshift

Det er bygget på Redhat enterprise Linux og Kubernetes motor. Openshift har forskellige funktionaliteter til at administrere klynger via UI og CLI. Redhat leverer Openshift i yderligere to varianter,

  • Openshift Online – tilbydes som software som en tjeneste (SaaS)
  • OpenShift Dedicated – tilbydes som administrerede tjenester

Openshift Origin (Origin Community Distribution) er et open source upstream-fællesskabsprojekt, som bruges i OpenShift Container Platform, Openshift Online og OpenShift Dedicated.

Nomade

Nomade er en enkel, fleksibel og brugervenlig workload orkestrator til at implementere og administrere containere og ikke-containeriserede applikationer på tværs af on-prem og clouds i skala. Nomad kører som en enkelt binær med et lille ressourcefodaftryk (35MB) og understøttes på macOS, Windows og Linux.

Udviklere bruger deklarativ infrastruktur-som-kode (IaC) til at implementere deres applikationer og definere, hvordan en applikation skal implementeres. Nomad gendanner automatisk applikationer fra fejl.

  Indstilling af din Mac til produktivitet uden tredjepartsapps

Billede af Nomad

Nomad Orchestrate applikationer af enhver type (ikke kun containere). Det giver førsteklasses support til Docker, Windows, Java, VM’er og mere.

Funktioner

  • Enkel og pålidelig
  • Moderniser ældre applikationer uden omskrivning
  • Nem føderation i skala
  • Dokumenteret skalerbarhed
  • Multi-sky med lethed
  • Native integrationer med Terraform, Consul og Vault

Dockersværm

Dockersværm bruger en deklarativ model. Du kan definere den ønskede tilstand for tjenesten, og Docker vil bevare denne tilstand. Docker Enterprise Edition har integreret Kubernetes med Swarm. Docker giver nu fleksibilitet i valget af orkestreringsmotor. Docker engine CLI bruges til at skabe en sværm af docker engines, hvor applikationstjenester kan implementeres.

Billede af Docker

Docker-kommandoer bruges til at interagere med klyngen. Maskiner, der tilslutter sig klyngen, er kendt som noder, og Swarm-manageren håndterer klyngens aktiviteter.

Docker Swarm består af to hovedkomponenter:

  • Manager – leder noder tildeler opgaver til arbejder noder i sværmen. En leder vælges baseret på en Raft-konsensusalgoritme. Lederen varetager alle sværmstyrings- og opgaveorkestreringsbeslutninger for sværmen.
  • Worker Node – Worker Node modtager opgaver fra lederknudepunktet og udfører dem.

Funktioner

  • Klyngestyring integreret med Docker Engine
  • Decentraliseret design
  • Deklarativ servicemodel
  • Skalering
  • Ønsket statsforsoning
  • Multi-host netværk
  • Service opdagelse
  • Lastbalancering
  • Sikker som standard
  • Rullende opdateringer

Docker Compose

Docker Compose er til at definere og køre multi-container-applikationer, der arbejder sammen. Docker-compose beskriver grupper af indbyrdes forbundne tjenester, der deler softwareafhængigheder og er orkestreret og skaleret sammen.

Du kan bruge en YAML-fil (dockerfile) til at konfigurere din applikations tjenester. Derefter, med en docker-compose up-kommando, opretter og starter du alle tjenesterne fra din konfiguration.

En docker-compose.yml ser sådan ud:

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/

Du kan bruge Docker Compose til at faktorisere appkoden i flere uafhængigt kørende tjenester, der kommunikerer ved hjælp af et internt netværk. Værktøjet giver CLI til styring af hele livscyklussen af ​​dine applikationer. Docker Compose har traditionelt været fokuseret på udvikling og test af arbejdsgange, men nu fokuserer de på mere produktionsorienterede funktioner.

Docker Engine kan være en selvstændig instans leveret med Docker Machine eller en hel Docker Swarm-klynge.

Funktioner

  • Flere isolerede miljøer på en enkelt vært
  • Bevar volumendata, når containere oprettes
  • Genskab kun beholdere, der er ændret
  • Variabler og flytning af en komposition mellem miljøer

MiniKube

Minikube giver brugerne mulighed for at køre Kubernetes lokalt. Med Minikube kan du teste applikationer lokalt i en enkelt-node Kubernetes-klynge på din personlige computer. Minikube har integreret understøttelse af Kubernetes Dashboard.

Minikube kører den seneste stabile udgivelse af Kubernetes og understøtter følgende funktioner.

  • Lastbalancering
  • Multi-klynge
  • Vedvarende mængder
  • NodePorts
  • ConfigMaps og hemmeligheder
  • Container Runtime: Docker, CRI-O og containere
  • Aktivering af CNI (Container Network Interface)

Marathon

Marathon er til Apache Mesos, der har evnen til at orkestrere apps såvel som rammer.

  Sådan aktiveres Gmails skjulte e-mail-eksempelrude

Apache Mesos er en open source-klyngemanager. Mesos er et projekt af Apache, der har evnen til at køre både containeriserede og ikke-containeriserede arbejdsbelastninger. De vigtigste komponenter i en Mesos-klynge er Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks – Frameworks koordinerer med masteren for at planlægge opgaver på agent noder. Brugere interagerer med Marathon-rammen for at planlægge job.

Marathon-planlæggeren bruger ZooKeeper til at finde den aktuelle master til at sende opgaver. Marathon-planlæggeren og Mesos-mesteren har sekundær master-løb for at sikre høj tilgængelighed. Kunder interagerer med Marathon ved hjælp af REST API.

Funktioner

  • Høj tilgængelighed
  • Stateful apps
  • Smuk og kraftfuld UI
  • Begrænsninger
  • Serviceopdagelse og belastningsbalancering
  • Sundhedstjek
  • Event abonnement
  • Metrics
  • REST API’er

Cloudify

Cloudify er et open source cloud-orkestreringsværktøj til implementeringsautomatisering og livscyklusstyring af containere og mikrotjenester. Det giver funktioner såsom klynger on-demand, auto-healing og skalering på infrastrukturniveau. Cloudify kan administrere containerinfrastruktur og orkestrere de tjenester, der kører på containerplatforme.

Det kan nemt integreres med Docker- og Docker-baserede containeradministratorer, inklusive følgende.

  • Docker
  • Dockersværm
  • Docker Compose
  • Kubernetes
  • Apache Mesos

Cloudify kan hjælpe med at skabe, helbrede, skalere og rive containerklynger ned. Containerorkestrering er nøglen til at levere en skalerbar og yderst tilgængelig infrastruktur, som containeradministratorer kan køre på. Cloudify giver mulighed for at orkestrere heterogene tjenester på tværs af platforme. Du kan implementere applikationer ved hjælp af CLI og Cloudify Manager.

Rancher

Rancher er en open source platform, der bruger containerorkestrering kendt som kvæg. Det giver dig mulighed for at udnytte orkestreringstjenester som Kubernetes, Swarm, Mesos. Rancher leverer den software, der kræves til at administrere containere, så organisationer ikke behøver at bygge containerserviceplatforme fra bunden ved hjælp af et særskilt sæt open source-teknologier.

Rancher 2.x tillader administration af Kubernetes-klynger, der kører på de kundespecificerede udbydere.

At komme i gang med Rancher er en proces i to trin.

Forbered en Linux-vært

Forbered en Linux-vært med 64-bit Ubuntu 16.04 eller 18.04 (eller en anden understøttet Linux-distribution og mindst 4 GB hukommelse. Installer en understøttet version af Docker på værten.

Start serveren

For at installere og køre Rancher skal du udføre følgende Docker-kommando på din vært:

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

Farmerbrugergrænsefladen tillader administration af tusindvis af Kubernetes-klynger og noder.

Containerskib

Containership er til at muliggøre implementering og administration af multi-cloud Kubernetes-infrastruktur. Det er fleksibelt at operere i offentlige, private cloud- og on-premise-miljøer fra et enkelt værktøj. Det gør det muligt at klargøre, administrere og overvåge dine Kubernetes-klynger på tværs af alle større cloud-udbydere.

Containership er bygget ved hjælp af cloud-native værktøjer, såsom Terraform til klargøring, Prometheus til overvågning og Calico til netværk og politikstyring. Den er bygget oven på vanilje Kubernetes. Containership-platformen tilbyder et intuitivt dashboard samt kraftfuld REST API til kompleks automatisering.

Funktioner

  • Multicloud Dashboard
  • Revisionslogs
  • GPU Instance Support
  • Ikke-forstyrrende opgraderinger
  • Planlagte Masters
  • Integrerede målinger
  • Realtidslogning
  • Implementeringer uden nedetid
  • Vedvarende lagerstøtte
  • Support til privat register
  • Arbejdsbelastning Autoskalering
  • SSH Key Management
  12 Digital Rights Management (DRM) Software i 2022

AZK

AZK er et open source orkestreringsværktøj til udviklingsmiljøer gennem en manifestfil (Azkfile.js), som hjælper udviklere med at installere, konfigurere og køre almindeligt anvendte værktøjer til udvikling af webapplikationer med forskellige open source-teknologier.

AZK bruger containere i stedet for virtuelle maskiner. Containere er som virtuelle maskiner med bedre ydeevne og lavere forbrug af fysiske ressourcer.

Azkfile.js-filer kan genbruges til at tilføje nye komponenter eller oprette nye fra bunden. Det kan deles, hvilket sikrer total paritet mellem udviklingsmiljøer i forskellige programmørers maskiner og reducerer chancerne for fejl under installationen.

GKE

GKE leverer en fuldt administreret løsning til orkestrering af containerapplikationer på Google Cloud Platform. GKE-klynger drives af Kubernetes. Du kan interagere med klynger ved hjælp af Kubernetes CLI. Kubernetes-kommandoer kan bruges til at implementere og administrere applikationer, udføre administrationsopgaver, indstille politikker og overvåge tilstanden af ​​installerede arbejdsbelastninger.

Billede af GCP

Avancerede administrationsfunktioner i Google Cloud er også tilgængelige med GKE-klynger som Google Clouds belastningsbalancering, nodepuljer, autoskalering af noder, automatiske opgraderinger, nodeautoreparation, logning og overvågning med Google Clouds driftspakke.

Google Cloud leverer CI/CD-værktøjer til at hjælpe dig med at bygge og betjene applikationscontainere. Du kan bruge Cloud Build til at bygge containerbilleder (såsom Docker) fra en række forskellige kildekodelagre og Container Registry til at gemme dine containerbilleder.

GKE er en virksomhedsklar løsning med forudbyggede implementeringsskabeloner.

Interesseret i at lære GKE? Tjek dette ud begynderkursus.

AKS

AKS er en fuldt administreret Kubernetes-tjeneste, der tilbydes af Azure, som tilbyder serverløse Kubernetes, sikkerhed og styring. AKS administrerer din Kubernetes-klynge og giver dig mulighed for nemt at implementere containeriserede applikationer. AKS konfigurerer automatisk alle Kubernetes master og noder. Du behøver kun at administrere og vedligeholde agentknuderne.

Billede af Azure

AKS er gratis; du betaler kun for agentnoder i din klynge og ikke for mastere. Du kan oprette en AKS-klynge i Azure-portalen eller programmatisk. Azure understøtter også yderligere funktioner såsom avanceret netværk, Azure Active Directory-integration og overvågning ved hjælp af Azure Monitor.

AKS understøtter også Windows Server-containere. Dens klynge og implementerede applikationsydelse kan overvåges fra Azure Monitor. Logfiler gemmes i et Azure Log Analytics-arbejdsområde.

AKS er blevet certificeret som Kubernetes-konform.

AWS EKS

AWS EKS er en fuldt administreret Kubernetes-tjeneste. AWS giver dig mulighed for at køre din EKS-klynge ved hjælp af AWS Fragrate, som er en serverløs computer til containere. Duft fjerner behovet for at klargøre og administrere servere, hvilket tillader betaling pr. ressource pr. applikation.

AWS tillader brugen af ​​yderligere funktioner med EKS såsom Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups og Access Management (IAM), monitor, skaler og load-balance-applikationer. EKS integreres med AWS App mesh og giver Kubernetes native oplevelse. EKS kører den nyeste Kubernetes og er certificeret Kubernetes-konform.

Konklusion

I sidste ende håber jeg, at ovenstående liste har givet en rimelig forståelse af de forskellige containerorkestreringsværktøjer, og nu, afhængigt af brugssagen, vil det være lettere at vælge den bedste.

Find derefter ud af Kubernetes Management Software.