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:
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