Kubernetes Tutorial for begyndere
⚡ Smart opsummering
Kubernetes er et open source containerhåndteringssystem udviklet af Google der automatiserer implementering, skalering og drift af containeriserede applikationer på tværs af klynger af fysiske, virtuelle og cloud-servere, og tilbyder selvreparerende, automatiserede udrulninger, load balancing og ensartede miljøer til pålidelig applikationslevering.

Inden vi starter denne Kubernetes-tutorial, lad os lære:
Hvad er Kubernetes?
Kubernetes er et containerhåndteringssystem udviklet på Google platform. Kubernetes hjælper med at administrere containeriserede applikationer i forskellige typer fysiske, virtuelle og cloud-miljøer. Google Kubernetes er et yderst fleksibelt containerværktøj til konsekvent at levere komplekse applikationer, der kører på klynger af hundredvis 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 er en container et isoleret miljø. 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, der bruges til distribuerede systemer. Den hjælper dig med at være abstracden underliggende hardware for noderne (serverne) og tilbyder en ensartet grænseflade til applikationer, der forbruger 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 et logisk miljø. Det er en udbredt metode, der bruges til scoping adgang til 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å til track hvordan arbejdsbelastningen bruges på klyngenoder. Det hjælper dig med at placere arbejdsbelastningen på ressourcer, der er tilgængelige, og acceptere arbejdsbelastningen.
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
- Den er udviklet af Google, som bidrager med mange års værdifuld brancheerfaring
- 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åsning, da den kan bruge alle leverandørspecifikke API'er eller tjenester, undtagen hvor Kubernetes leverer en abstraction, f.eks. load balancer og lagring.
- 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.
