14 Container Orchestration Tools for DevOps

La oss snakke om noen av de populære containerorkestreringsverktøyene som er tilgjengelige på markedet.

Hva er en containerorkestering?

Containerplattformer som Docker er veldig populære i disse dager for å pakke applikasjoner basert på en mikrotjenestearkitektur. Beholdere kan gjøres svært skalerbare, som kan lages på forespørsel. Selv om dette er bra for noen få beholdere, men tenk at du har hundrevis av dem.

Det blir ekstremt vanskelig å administrere beholderens livssyklus og dens administrasjon når antallet øker dynamisk med etterspørselen.

Containerorkestrering løser problemet ved å automatisere planlegging, distribusjon, skalerbarhet, lastbalansering, tilgjengelighet og nettverksbygging av containere. Containerorkestrering er automatisering og styring av livssyklusen til containere og tjenester.

Det er en prosess for å administrere og organisere flere containere og mikrotjenesterarkitektur i stor skala.

Heldigvis er det mange containerorkestreringsverktøy tilgjengelig på markedet.

La oss utforske dem!

Kubernetes

Du gjettet det, ikke sant?

Kubernetes er en åpen kildekode-plattform som opprinnelig ble designet av Google og nå vedlikeholdt av Cloud Native Computing Foundation. Kubernetes støtter både deklarativ konfigurasjon og automatisering. Det kan bidra til å automatisere distribusjon, skalering og administrasjon av containerisert arbeidsmengde og tjenester.

Bilde av Kubernetes.io

Kubernetes API hjelper til med å etablere kommunikasjon mellom brukere, klyngekomponenter og eksterne tredjepartskomponenter. Kubernetes kontrollplan og noder kjører på en gruppe noder som sammen danner klyngen. Applikasjonsarbeidsmengde består av én eller flere Pods som kjører på Worker-noden(e). Kontrollplanet administrerer Pods og arbeidernoder.

Selskaper som Babylon, Booking.com, AppDirect bruker Kubernetes mye.

Funksjoner

  • Tjenesteoppdagelse og lastbalansering
  • Lagringsorkestrering
  • Automatiserte utrullinger og tilbakeføringer
  • Horisontal skalering
  • Hemmelighets- og konfigurasjonsadministrasjon
  • Selv helbreding
  • Batchutførelse
  • IPv4/IPv6 dual-stack
  • Automatisk søppelpakking

Vil du lære Kubernetes? Sjekk ut disse læringsressursene.

OpenShift

Redhat tilbyr OpenShift Container Platform as a Service (PaaS). Det hjelper med automatisering av applikasjoner på sikre og skalerbare ressurser i hybride skymiljøer. Den tilbyr plattformer i bedriftsklasse for å bygge, distribuere og administrere containeriserte applikasjoner.

Bilde av Openshift

Den er bygget på Redhat enterprise Linux og Kubernetes-motoren. Openshift har ulike funksjoner for å administrere klynger via UI og CLI. Redhat gir Openshift i ytterligere to varianter,

  • Openshift Online – tilbys som programvare som en tjeneste (SaaS)
  • OpenShift Dedikert – tilbys som administrerte tjenester

Openshift Origin (Origin Community Distribution) er et åpen kildekode oppstrøms fellesskapsprosjekt som brukes i OpenShift Container Platform, Openshift Online og OpenShift Dedicated.

Nomad

Nomad er en enkel, fleksibel og brukervennlig orkestrator for arbeidsbelastning for å distribuere og administrere containere og ikke-beholderbaserte applikasjoner på tvers av lokale og skyer i stor skala. Nomad kjører som en enkelt binær med et lite ressursfotavtrykk (35MB) og støttes på macOS, Windows og Linux.

Utviklere bruker deklarativ infrastruktur-som-kode (IaC) for å distribuere applikasjonene sine og definere hvordan en applikasjon skal distribueres. Nomad gjenoppretter automatisk applikasjoner fra feil.

  8 beste Fire TV-speilingsapper

Bilde av Nomad

Nomad Orchestrate-applikasjoner av alle typer (ikke bare containere). Den gir førsteklasses støtte for Docker, Windows, Java, VM-er og mer.

Funksjoner

  • Enkel og pålitelig
  • Moderniser eldre applikasjoner uten omskriving
  • Easy Federation at Scale
  • Påvist skalerbarhet
  • Multi-sky med letthet
  • Innfødte integrasjoner med Terraform, Consul og Vault

Docker Swarm

Docker Swarm bruker en deklarativ modell. Du kan definere ønsket tilstand for tjenesten, og Docker vil opprettholde denne tilstanden. Docker Enterprise Edition har integrert Kubernetes med Swarm. Docker gir nå fleksibilitet i valg av orkestreringsmotor. Docker engine CLI brukes til å lage en sverm av docker-motorer der applikasjonstjenester kan distribueres.

Bilde av Docker

Docker-kommandoer brukes til å samhandle med klyngen. Maskiner som blir med i klyngen er kjent som noder, og Swarm-manageren håndterer aktivitetene til klyngen.

Docker Swarm består av to hovedkomponenter:

  • Leder – ledernoder tildeler oppgaver til arbeidernoder i svermen. En leder velges basert på en Raft-konsensusalgoritme. Lederen håndterer alle beslutninger om svermstyring og oppgaveorkestrering for svermen.
  • Worker Node – Worker Node mottar oppgaver fra ledernoden og utfører dem.

Funksjoner

  • Klyngeadministrasjon integrert med Docker Engine
  • Desentralisert design
  • Deklarativ tjenestemodell
  • Skalering
  • Ønsket statsforsoning
  • Multi-host nettverk
  • Tjenesteoppdagelse
  • Lastbalansering
  • Sikker som standard
  • Rullende oppdateringer

Docker Compose

Docker Compose er for å definere og kjøre multi-beholderapplikasjoner som fungerer sammen. Docker-compose beskriver grupper av sammenkoblede tjenester som deler programvareavhengigheter og er orkestrert og skalert sammen.

Du kan bruke en YAML-fil (dockerfile) for å konfigurere programmets tjenester. Deretter, med en docker-compose up-kommando, oppretter og starter du alle tjenestene fra konfigurasjonen din.

En docker-compose.yml ser slik ut:

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 bruke Docker Compose til å faktorisere appkoden i flere uavhengig kjørende tjenester som kommuniserer ved hjelp av et internt nettverk. Verktøyet gir CLI for å administrere hele livssyklusen til applikasjonene dine. Docker Compose har tradisjonelt vært fokusert på utvikling og testing av arbeidsflyter, men nå fokuserer de på mer produksjonsorienterte funksjoner.

Docker Engine kan være en frittstående instans levert med Docker Machine eller en hel Docker Swarm-klynge.

Funksjoner

  • Flere isolerte miljøer på en enkelt vert
  • Ta vare på volumdata når beholdere opprettes
  • Gjenskap kun beholdere som er endret
  • Variabler og flytting av en komposisjon mellom miljøer

MiniKube

Minikube lar brukere kjøre Kubernetes lokalt. Med Minikube kan du teste applikasjoner lokalt i en enkelt-node Kubernetes-klynge på din personlige datamaskin. Minikube har integrert støtte for Kubernetes Dashboard.

Minikube kjører den siste stabile utgivelsen av Kubernetes og støtter følgende funksjoner.

  • Lastbalansering
  • Multi-klynge
  • Vedvarende volumer
  • NodePorts
  • ConfigMaps og hemmeligheter
  • Container Runtime: Docker, CRI-O og containered
  • Aktivering av CNI (Container Network Interface)

Maraton

Maraton er for Apache Mesos som har muligheten til å orkestrere apper så vel som rammer.

  Slik svarer du med tilbakeslag i meldinger på iPhone og iPad

Apache Mesos er en åpen kildekode-klyngeleder. Mesos er et prosjekt av Apache som har muligheten til å kjøre både containeriserte og ikke-containeriserte arbeidsbelastninger. Hovedkomponentene i en Mesos-klynge er Mesos Agent Nodes, Mesos Master, ZooKeeper, Frameworks – Frameworks koordinerer med masteren for å planlegge oppgaver på agentnoder. Brukere samhandler med Marathon-rammeverket for å planlegge jobber.

Marathon-planleggeren bruker ZooKeeper for å finne gjeldende master for å sende inn oppgaver. Maratonplanleggeren og Mesos-mesteren har sekundær masterløp for å sikre høy tilgjengelighet. Klienter samhandler med Marathon ved å bruke REST API.

Funksjoner

  • Høy tilgjengelighet
  • Stateful apper
  • Vakkert og kraftig brukergrensesnitt
  • Begrensninger
  • Tjenesteoppdagelse og lastbalansering
  • Helsesjekker
  • Event abonnement
  • Beregninger
  • REST API-er

Cloudify

Cloudify er et åpen kildekode-sky-orkestreringsverktøy for distribusjonsautomatisering og livssyklusadministrasjon av containere og mikrotjenester. Den gir funksjoner som klynger på forespørsel, auto-healing og skalering på infrastrukturnivå. Cloudify kan administrere containerinfrastruktur og orkestrere tjenestene som kjører på containerplattformer.

Den kan enkelt integreres med Docker- og Docker-baserte containeradministratorer, inkludert følgende.

  • Docker
  • Docker Swarm
  • Docker Compose
  • Kubernetes
  • Apache Mesos

Cloudify kan bidra til å lage, helbrede, skalere og rive ned containerklynger. Containerorkestrering er nøkkelen til å tilby en skalerbar og svært tilgjengelig infrastruktur som containersjefer kan kjøre på. Cloudify gir muligheten til å orkestrere heterogene tjenester på tvers av plattformer. Du kan distribuere applikasjoner ved å bruke CLI og Cloudify Manager.

Rancher

Rancher er en åpen kildekode-plattform som bruker containerorkestrering kjent som storfe. Den lar deg utnytte orkestreringstjenester som Kubernetes, Swarm, Mesos. Rancher leverer programvaren som kreves for å administrere containere, slik at organisasjoner ikke trenger å bygge containertjenesteplattformer fra bunnen av ved å bruke et distinkt sett med åpen kildekode-teknologi.

Rancher 2.x tillater administrasjon av Kubernetes-klynger som kjører på de kundespesifiserte leverandørene.

Å komme i gang med Rancher er en prosess i to trinn.

Forbered en Linux-vert

Forbered en Linux-vert med 64-bit Ubuntu 16.04 eller 18.04 (eller en annen støttet Linux-distribusjon, og minst 4 GB minne. Installer en støttet versjon av Docker på verten.

Start serveren

For å installere og kjøre Rancher, kjør følgende Docker-kommando på verten din:

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

Brukergrensesnittet for rancher tillater administrasjon av tusenvis av Kubernetes-klynger og noder.

Containerskip

Containership er for å muliggjøre distribusjon og administrasjon av Kubernetes-infrastruktur med flere skyer. Det er fleksibelt å operere i offentlige, private sky- og lokale miljøer fra ett enkelt verktøy. Den gjør det mulig å klargjøre, administrere og overvåke Kubernetes-klyngene dine på tvers av alle store skyleverandører.

Containership er bygget ved hjelp av skybaserte verktøy, som Terraform for klargjøring, Prometheus for overvåking og Calico for nettverks- og policyadministrasjon. Den er bygget på toppen av vanilje Kubernetes. Containership-plattformen tilbyr et intuitivt dashbord, samt kraftig REST API for kompleks automatisering.

Funksjoner

  • Multicloud Dashboard
  • Revisjonslogger
  • GPU-forekomststøtte
  • Ikke-forstyrrende oppgraderinger
  • Planlagte mastere
  • Integrerte beregninger
  • Logging i sanntid
  • Null nedetid distribusjoner
  • Støtte for vedvarende lagring
  • Støtte for privat register
  • Automatisk skalering av arbeidsbelastning
  • SSH nøkkelstyring
  Hva er HTC S-OFF?

AZK

AZK er et åpen kildekode-orkestreringsverktøy for utviklingsmiljøer gjennom en manifestfil (Azkfile.js), som hjelper utviklere med å installere, konfigurere og kjøre vanlige verktøy for å utvikle webapplikasjoner med forskjellige åpen kildekode-teknologier.

AZK bruker containere i stedet for virtuelle maskiner. Containere er som virtuelle maskiner, med bedre ytelse og lavere forbruk av fysiske ressurser.

Azkfile.js-filer kan gjenbrukes for å legge til nye komponenter eller lage nye fra bunnen av. Det kan deles, noe som sikrer total paritet mellom utviklingsmiljøer i forskjellige programmereres maskiner og reduserer sjansene for feil under distribusjon.

GKE

GKE gir en fullstendig administrert løsning for orkestrering av containerapplikasjoner på Google Cloud Platform. GKE-klynger drives av Kubernetes. Du kan samhandle med klynger ved å bruke Kubernetes CLI. Kubernetes-kommandoer kan brukes til å distribuere og administrere applikasjoner, utføre administrasjonsoppgaver, angi policyer og overvåke helsen til distribuerte arbeidsbelastninger.

Bilde av GCP

Avanserte administrasjonsfunksjoner i Google Cloud er også tilgjengelige med GKE-klynger som Google Clouds belastningsbalansering, nodepooler, autoskalering av noder, automatiske oppgraderinger, autoreparasjon av noder, logging og overvåking med Google Clouds driftssuite.

Google Cloud tilbyr CI/CD-verktøy for å hjelpe deg med å bygge og betjene applikasjonsbeholdere. Du kan bruke Cloud Build til å bygge containerbilder (som Docker) fra en rekke kildekodelagre, og Container Registry for å lagre containerbildene dine.

GKE er en bedriftsklar løsning med forhåndsbygde distribusjonsmaler.

Interessert i å lære GKE? Sjekk ut dette nybegynnerkurs.

AKS

AKS er en fullstendig administrert Kubernetes-tjeneste som tilbys av Azure, som tilbyr serverløse Kubernetes, sikkerhet og styring. AKS administrerer Kubernetes-klyngen din og lar deg enkelt distribuere containeriserte applikasjoner. AKS konfigurerer automatisk alle Kubernetes-master og noder. Du trenger bare å administrere og vedlikeholde agentnodene.

Bilde av Azure

AKS er gratis; du betaler kun for agentnoder i klyngen din og ikke for mastere. Du kan opprette en AKS-klynge i Azure-portalen eller programmatisk. Azure støtter også tilleggsfunksjoner som avansert nettverk, Azure Active Directory-integrasjon og overvåking ved hjelp av Azure Monitor.

AKS støtter også Windows Server-beholdere. Dens klynge og distribuerte applikasjonsytelse kan overvåkes fra Azure Monitor. Logger lagres i et Azure Log Analytics-arbeidsområde.

AKS er sertifisert som Kubernetes-konform.

AWS EKS

AWS EKS er en fullstendig administrert Kubernetes-tjeneste. AWS lar deg kjøre EKS-klyngen ved å bruke AWS Fragrate, som er en serverløs beregning for containere. Fragrance fjerner behovet for å klargjøre og administrere servere, slik at du kan betale per ressurs per applikasjon.

AWS tillater bruk av tilleggsfunksjoner med EKS som Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups og Access Management (IAM), overvåking, skalering og belastningsbalanseapplikasjoner. EKS integreres med AWS App mesh og gir Kubernetes innfødt opplevelse. EKS kjører den nyeste Kubernetes og er sertifisert Kubernetes-konform.

Konklusjon

Til slutt håper jeg at listen ovenfor har gitt en rettferdig forståelse av de forskjellige containerorkestreringsverktøyene, og nå, avhengig av brukssaken, vil det være lettere å velge det beste.

Deretter finner du ut Kubernetes Management Software.