Kubernetes Tutorial for begyndere: Grundlæggende, funktioner, Architecture

Inden vi starter denne Kubernetes-tutorial, lad os lære:

Hvad er Kubernetes?

Kubernetes er et containerstyringssystem udviklet på Google-platformen. Kubernetes hjælper med at administrere containeriserede applikationer i forskellige typer fysiske, virtuelle og cloud-miljøer. Google Kubernetes er et meget fleksibelt containerværktøj til konsekvent at levere komplekse applikationer, der kører på klynger af hundreder til tusindvis af individuelle servere.

Hvorfor har du brug for containere?

Dagens internetbruger accepterer aldrig nedetid. Derfor skal udviklere finde en metode til at udføre vedligeholdelse og opdatering uden at afbryde deres tjenester.

Derfor container, som er isolerede miljøer. Det inkluderer alt det nødvendige for at applikationen kan køre. Det gør det nemt for en udvikler at redigere og implementere apps. Desuden er containerisering blevet en foretrukken metode til at pakke, implementere og opdatere webapps.

Hvilken opgave udføres af Kubernetes?

Kubernetes er Linux-kernen, som bruges til distribuerede systemer. Det hjælper dig med at være abstrakt den underliggende hardware af noderne (serverne) og tilbyder en ensartet grænseflade til applikationer, der bruger den delte pulje af ressourcer.

Hvorfor bruge Kubernetes?

Kubernetes hjælper dig med at kontrollere ressourceallokeringen og trafikstyringen for cloud-applikationer og mikrotjenester. Det hjælper også med at forenkle forskellige aspekter af serviceorienterede infrastrukturer. Kubernetes giver dig mulighed for at sikre, hvor og hvornår containeriserede applikationer kører, og hjælper dig med at finde ressourcer og værktøjer, du vil arbejde med.

Funktioner ved Kubernetes

Her er de væsentlige Kubernetes-funktioner:

  • Automatiseret planlægning
  • Selvhelbredende evner
  • Automatiseret udrulning og tilbagerulning
  • Horisontal skalering og belastningsbalancering
  • Tilbyder miljøkonsistens til udvikling, test og produktion
  • Infrastruktur er løst koblet til hver komponent kan fungere som en separat enhed
  • Giver en højere tæthed af ressourceudnyttelse
  • Tilbyder virksomhedsklare funktioner
  • Applikationscentreret ledelse
  • Auto-skalerbar infrastruktur
  • Du kan skabe forudsigelig infrastruktur

Grundlæggende om Kubernetes

Nu i denne Kubernetes-tutorial lærer vi nogle vigtige grundlæggende om Kubernetes:

  • Cluster

    Det er en samling af værter (servere), der hjælper dig med at samle deres tilgængelige ressourcer. Det inkluderer ram, CPU, ram, disk og deres enheder i en brugbar pulje.

  • Mester til Skak

    Masteren er en samling af komponenter, der udgør kontrolpanelet i Kubernetes. Disse komponenter bruges til alle klyngebeslutninger. Det omfatter både planlægning og reaktion på klyngebegivenheder.

  • Node

    Det er en enkelt vært, som er i stand til at køre på en fysisk eller virtuel maskine. En node skal køre både kube-proxy, minikube og kubelet, som betragtes som en del af klyngen.

  • navnerum

    Det er en logisk klynge eller miljø. Det er en meget udbredt metode, som bruges til scoping af adgang eller opdeling af en klynge.

Kubernetes Architecture

Nedenfor er et detaljeret Kubernetes-arkitekturdiagram:

Kubernetes Architecture diagram
Kubernetes Architecture diagram

Master Node

Masternoden er den første og mest vitale komponent, som er ansvarlig for styringen af ​​Kubernetes-klyngen. Det er indgangspunktet for alle former for administrative opgaver. Der kan være mere end én masterknude i klyngen for at kontrollere for fejltolerance.

Masternoden har forskellige komponenter som API Server, Controller Manager, Scheduler og ETCD. Lad os se dem alle.

API-server: API-serveren fungerer som et indgangspunkt for alle REST-kommandoer, der bruges til at styre klyngen.

Scheduler

Planlæggeren planlægger opgaverne til slaveknuden. Den gemmer oplysninger om ressourceforbrug for hver slaveknude. Den er ansvarlig for at fordele arbejdsbyrden.

Det hjælper dig også med at spore, hvordan arbejdsbelastningen bruges på klynge noder. Det hjælper dig med at placere arbejdsbyrden på ressourcer, der er tilgængelige, og acceptere arbejdsbyrden.

Osv

etcd-komponenter gemmer konfigurationsdetaljer og wright-værdier. Den kommunikerer med den mest komponent for at modtage kommandoer og arbejde. Det administrerer også netværksregler og portvideresendelsesaktivitet.

Arbejder/slaveknudepunkter

Arbejdernoder er en anden vigtig komponent, som indeholder alle de nødvendige tjenester til at styre netværket mellem containerne, kommunikere med masterknudepunktet, hvilket giver dig mulighed for at tildele ressourcer til de planlagte containere.

  • Kubelet: henter konfigurationen af ​​en Pod fra API-serveren og sikrer, at de beskrevne containere er oppe og køre.
  • Docker container: Docker container kører på hver af arbejdernoderne, som kører de konfigurerede pods
  • Kube-proxy: Kube-proxy fungerer som en belastningsbalancer og netværksproxy til at udføre service på en enkelt arbejderknude
  • Pods: En pod er en kombination af enkelte eller flere containere, der logisk kører sammen på noder

Andre nøgleterminologier

Replikeringscontrollere

En replikeringscontroller er et objekt, der definerer en pod-skabelon. Den styrer også parametre for at skalere identiske replikaer af Pod vandret ved at øge eller formindske antallet af kørende kopier.

Replikationssæt

Replikeringssæt er en interaktion på replikeringscontrollerdesignet med fleksibilitet i, hvordan controlleren genkender de pods, den er beregnet til at administrere. Det erstatter replikeringscontrollere på grund af deres højere replikatudvælgelsesevne.

implementeringer

Implementering er en almindelig arbejdsbyrde, som kan oprettes og administreres direkte. Implementering bruger replikeringssæt som en byggesten, der tilføjer funktionen til livscyklusstyring.

Stateful sæt

Det er en specialiseret pod kontrol, som tilbyder bestilling og unikhed. Det bruges hovedsageligt til at have finkornet kontrol, som du har et særligt behov for med hensyn til implementeringsrækkefølge, stabilt netværk og vedvarende data.

Dæmon sæt

Daemon-sæt er en anden specialiseret form for pod-controller, der kører en kopi af en pod på hver node i klyngen. Denne type pod-controller er en effektiv metode til at implementere pods, der giver dig mulighed for at udføre vedligeholdelse og tilbyder tjenester til selve noderne.

Kubernetes vs. Docker Swarm

Her er vigtige forskelle mellem Kubernetes vs Docker.

Parameter Docker sværm Kubernetes
Skalering Ingen autoskalering Automatisk skalering
Lastbalancering Udfører automatisk belastningsbalancering Konfigurer dine belastningsbalanceringsindstillinger manuelt
Deling af lagervolumen Deler lagervolumener med enhver anden beholder Deler lagervolumener mellem flere beholdere inde i den samme Pod
Brug af login- og overvågningsværktøj Brug 3rd festværktøj som ELK Giv et indbygget værktøj til logning og overvågning.
Installation Nemt & hurtigt Kompliceret og tidskrævende
GUI GUI ikke tilgængelig GUI er tilgængelig
Skalerbarhed Opskalering er hurtigere end K8S, men klyngestyrken er ikke så robust Opskalering er langsom sammenlignet med Swarm, men garanterer stærkere klyngetilstand Belastningsbalancering kræver manuel servicekonfiguration
Load Balancing Giver en indbygget belastningsbalanceringsteknik Procesplanlægning for at vedligeholde tjenester under opdatering
Opdateringer og tilbageførsler af datamængder Logning og overvågning Progressive opdateringer og servicesundhedsovervågning. Kun delt med containere i samme Pod Indbyggede log- og overvågningsværktøjer.

Fordele ved Kubernetes

  • Nem organisering af service med pods
  • Det er udviklet af Google, som bringer mange års værdifuld brancheerfaring til bordet
  • Største fællesskab blandt containerorkestreringsværktøjer
  • Tilbyder en række lagermuligheder, herunder lokale, SAN'er og offentlige skyer
  • Overholder principperne om uforanderlig infrastruktur
  • Kubernetes kan køre on-premises bare metal, OpenStack, offentlige skyer Google, Azure, AWSOsv
  • Hjælper dig med at undgå problemer med leverandørlåse, da det kan bruge alle leverandørspecifikke API'er eller tjenester, undtagen hvor Kubernetes leverer en abstraktion, f.eks. load balancer og storage.
  • Containerisering ved hjælp af kubernetes tillader pakkesoftware at tjene disse mål. Det vil muliggøre applikationer, der skal frigives og opdateres uden nedetid.
  • Kubernetes giver dig mulighed for at sikre, at disse containeriserede applikationer kører, hvor og hvornår du vil, og hjælper dig med at finde ressourcer og værktøjer, som du vil arbejde.

Ulemper ved Kubernetes

  • Kubenetes dashboard ikke så nyttigt, som det burde være
  • Kubernetes er en lille smule kompliceret og unødvendigt i miljøer, hvor al udvikling foregår lokalt.
  • Sikkerhed er ikke særlig effektiv.

Resumé

  • Container hjælper en organisation med at udføre vedligeholdelse og opdatering uden at afbryde tjenester
  • Kubernetes er et eksempel på et containerstyringssystem udviklet i Google-platformen.
  • Den største fordel ved at bruge Kubernetes er, at den kan køre on-premises OpenStack, offentlige clouds Google, Azure, AWS osv.
  • Kubernetes tilbyder automatiske planlægnings- og selvhelbredende muligheder.
  • Cluster, master, node og navneområde er vigtige grundlæggende for kubernetes
  • Master node og work node er vigtige komponenter i Kubernetes arkitektur.
  • Replikeringscontrollere, replikeringssæt, implementeringer, tilstandssæt, dæmonsæt er andre vigtige udtryk, der bruges i Kubernetes.
  • Docker swarm tillader ikke automatisk skalering, mens Kubernetes tillader automatisk skalering.
  • Den største ulempe ved Kubenetes er, at dets dashboard ikke er særlig nyttigt og effektivt