Kubernetes handledning för nybörjare
⚡ Smart sammanfattning
Kubernetes är ett containerhanteringssystem med öppen källkod utvecklat av Google som automatiserar distribution, skalning och drift av containeriserade applikationer över kluster av fysiska, virtuella och molnservrar, och erbjuder självreparation, automatiserade utrullningar, lastbalansering och konsekventa miljöer för tillförlitlig applikationsleverans.

Innan vi börjar denna Kubernetes-handledning, låt oss lära oss:
Vad är Kubernetes?
Kubernetes är ett containerhanteringssystem utvecklat på Google plattform. Kubernetes hjälper till att hantera containeriserade applikationer i olika typer av fysiska, virtuella och molnmiljöer. Google Kubernetes är ett mycket flexibelt containerverktyg för att konsekvent leverera komplexa applikationer som körs på kluster av hundratals till tusentals individuella servrar.
Varför behöver du behållare?
Dagens internetanvändare accepterar aldrig driftstopp. Därför måste utvecklare hitta en metod för att utföra underhåll och uppdatering utan att avbryta deras tjänster.
Därför är en behållare en isolerad miljö. Den innehåller allt som behövs för att applikationen ska köras. Det gör det enkelt för en utvecklare att redigera och distribuera appar. Dessutom har containerisering blivit en föredragen metod för att paketera, distribuera och uppdatera webbappar.
Vilken uppgift utförs av Kubernetes?
Kubernetes är Linuxkärnan som används för distribuerade system. Den hjälper dig att vara abstracden underliggande hårdvaran för noderna (servrarna) och erbjuder ett konsekvent gränssnitt för applikationer som förbrukar den delade resurspoolen.
Varför använda Kubernetes?
Kubernetes hjälper dig att kontrollera resursallokeringen och trafikhanteringen för molnapplikationer och mikrotjänster. Det bidrar också till att förenkla olika aspekter av tjänsteorienterade infrastrukturer. Kubernetes låter dig försäkra dig om var och när containeriserade applikationer körs och hjälper dig att hitta resurser och verktyg du vill arbeta med.
Funktioner i Kubernetes
Här är de väsentliga Kubernetes-funktionerna:
- Automatiserad schemaläggning
- Självläkande förmåga
- Automatiserade utrullningar och återställning
- Horisontell skalning & lastbalansering
- Erbjuder miljökonsistens för utveckling, testning och produktion
- Infrastruktur är löst kopplad till varje komponent kan fungera som en separat enhet
- Ger en högre täthet av resursutnyttjande
- Erbjuder företagsanpassade funktioner
- Applikationscentrerad hantering
- Automatisk skalbar infrastruktur
- Du kan skapa förutsägbar infrastruktur
Grunderna i Kubernetes
Nu i denna Kubernetes-handledning kommer vi att lära oss några viktiga grunder för Kubernetes:
Cluster
Det är en samling värdar (servrar) som hjälper dig att samla deras tillgängliga resurser. Det inkluderar ram, CPU, ram, disk och deras enheter till en användbar pool.
Mästare
Mastern är en samling komponenter som utgör kontrollpanelen för Kubernetes. Dessa komponenter används för alla klusterbeslut. Det inkluderar både schemaläggning och svar på klusterhändelser.
Nod
Det är en enda värd som kan köras på en fysisk eller virtuell maskin. En nod bör köra både kube-proxy, minikube och kubelet som anses vara en del av klustret.
namespace
Det är ett logiskt kluster eller en logisk miljö. Det är en allmänt använd metod som används för scoping åtkomst till eller dela ett kluster.
Kubernetes Architecture
Nedan är ett detaljerat Kubernetes-arkitekturdiagram:

Master Node
Huvudnoden är den första och mest vitala komponenten som är ansvarig för hanteringen av Kubernetes-klustret. Det är startpunkten för alla typer av administrativa uppgifter. Det kan finnas mer än en huvudnod i klustret för att kontrollera feltolerans.
Masternoden har olika komponenter som API Server, Controller Manager, Scheduler och ETCD. Låt se dem alla.
API-server: API-servern fungerar som en ingångspunkt för alla REST-kommandon som används för att styra klustret.
Scheduler
Schemaläggaren schemalägger uppgifterna till slavnoden. Den lagrar resursanvändningsinformationen för varje slavnod. Den ansvarar för att fördela arbetsbördan.
Det hjälper dig också att track hur arbetsbelastningen används på klusternoder. Det hjälper dig att placera arbetsbelastningen på resurser som är tillgängliga och acceptera arbetsbelastningen.
Etc.
etcd-komponenter lagrar konfigurationsdetaljer och wright-värden. Den kommunicerar med den mesta komponenten för att ta emot kommandon och arbeta. Den hanterar även nätverksregler och portvidarebefordran.
Arbetar-/slavnoder
Arbetarnoder är en annan viktig komponent som innehåller alla nödvändiga tjänster för att hantera nätverket mellan behållarna, kommunicera med huvudnoden, vilket gör att du kan tilldela resurser till de schemalagda behållarna.
- Kubelet: hämtar konfigurationen av en Pod från API-servern och ser till att de beskrivna behållarna är igång.
- Docker Container: Hamnarbetare container körs på var och en av arbetarnoderna, som kör de konfigurerade podarna
- Kube-proxy: Kube-proxy fungerar som en lastbalanserare och nätverksproxy för att utföra tjänster på en enskild arbetarnod
- Pods: En pod är en kombination av enstaka eller flera behållare som logiskt körs tillsammans på noder
Andra nyckelterminologier
Replikeringskontroller
En replikeringskontroller är ett objekt som definierar en podmall. Den styr också parametrar för att skala identiska kopior av Pod horisontellt genom att öka eller minska antalet pågående kopior.
Replikeringsuppsättningar
Replikeringsuppsättningar är en interaktion med replikeringskontrollerns design med flexibilitet i hur kontrollern känner igen de pods som den är avsedd att hantera. Den ersätter replikeringskontroller på grund av deras högre replikeringsförmåga.
implementeringar
Implementering är en vanlig arbetsbelastning som kan skapas och hanteras direkt. Implementering använder replikeringsset som en byggsten som lägger till funktionen för livscykelhantering.
Statliga set
Det är en specialiserad podkontroll som erbjuder ordning och unikhet. Det används främst för att ha finkornig kontroll, som du har ett särskilt behov när det gäller distributionsordning, stabilt nätverk och beständig data.
Daemon set
Daemon-set är en annan specialiserad form av podkontroller som kör en kopia av en pod på varje nod i klustret. Den här typen av podkontroller är en effektiv metod för att distribuera pods som låter dig utföra underhåll och erbjuder tjänster för själva noderna.
Kubernetes vs. Docker Swarm
Här är viktiga skillnader mellan Kubernetes vs Docker.
| Parameter | Docker svärm | Kubernetes |
|---|---|---|
| Förkalkning | Ingen automatisk skalning | Automatisk skalning |
| Lastbalansering | Gör automatisk lastbalansering | Konfigurera dina lastbalanseringsinställningar manuellt |
| Dela lagringsvolym | Delar lagringsvolymer med vilken annan behållare som helst | Delar lagringsvolymer mellan flera behållare inuti samma Pod |
| Användning av inloggnings- och övervakningsverktyg | Använd 3rd festverktyg som ELK | Tillhandahålla ett inbyggt verktyg för loggning och övervakning. |
| Installation | Enkelt & snabbt | Komplicerat & tidskrävande |
| GUI | GUI inte tillgängligt | GUI är tillgängligt |
| Skalbarhet | Uppskalning är snabbare än K8S, men klusterstyrkan är inte lika robust | Uppskalning är långsam jämfört med Swarm, men garanterar starkare klustertillstånd Lastbalansering kräver manuell servicekonfiguration |
| Lastbalansering | Ger en inbyggd lastbalanseringsteknik | Processschemaläggning för att underhålla tjänster under uppdatering |
| Uppdateringar och återställningar av datavolymer Loggning och övervakning | Progressiva uppdateringar och hälsoövervakning av tjänster. | Delas endast med behållare i samma Pod Inbuilt loggnings- och övervakningsverktyg. |
Fördelar med Kubernetes
- Enkel organisation av service med poddar
- Den är utvecklad av Google, som bidrar med många års värdefull branscherfarenhet
- Största communityn bland containerorkestreringsverktyg
- Erbjuder en mängd olika lagringsalternativ, inklusive lokalt, SAN och publika moln
- Följer principerna för oföränderlig infrastruktur
- Kubernetes kan köra on-premises bare metal, OpenStack, offentliga moln Google, Azure, AWSEtc.
- Hjälper dig att undvika problem med leverantörslåsning eftersom det kan använda alla leverantörsspecifika API:er eller tjänster förutom där Kubernetes tillhandahåller en abstraction, t.ex. lastbalanserare och lagring.
- Containerisering med kubernetes tillåter paketprogramvara att tjäna dessa mål. Det kommer att möjliggöra applikationer som behöver släppas och uppdateras utan driftstopp.
- Kubernetes låter dig försäkra dig om att dessa containeriserade applikationer körs var och när du vill och hjälper dig att hitta resurser och verktyg som du vill ska fungera.
Nackdelar med Kubernetes
- Kubenetes instrumentpanel är inte så användbar som den borde vara
- Kubernetes är lite komplicerat och onödigt i miljöer där all utveckling sker lokalt.
- Säkerheten är inte särskilt effektiv.
