Kubernetes handledning för nybörjare: grunder, funktioner, Architecture
Innan vi börjar denna Kubernetes-handledning, låt oss lära oss:
Vad är Kubernetes?
Kubernetes är ett containerhanteringssystem utvecklat på Googles 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 med 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 Linux-kärnan som används för distribuerade system. Det hjälper dig att vara abstrakt den underliggande hårdvaran för noderna (servrarna) och erbjuder ett konsekvent gränssnitt för applikationer som förbrukar den delade poolen av resurser.
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 miljö. Det är en mycket använd metod som används för att avgränsa åtkomst eller dela upp 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 spåra hur arbetsbelastningen används på klusternoder. Det hjälper dig att lägga arbetsbördan på resurser som är tillgängliga och acceptera arbetsbördan.
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
- Det är utvecklat av Google, som ger många års värdefull branscherfarenhet till bordet
- 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ås eftersom det kan använda alla leverantörsspecifika API:er eller tjänster förutom där Kubernetes tillhandahåller en abstraktion, 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.
Sammanfattning
- Container hjälper en organisation att utföra underhåll och uppdatering utan att avbryta tjänsterna
- Kubernetes är ett exempel på ett containerhanteringssystem utvecklat i Googles plattform.
- Den största fördelen med att använda Kubernetes är att den kan köra lokal OpenStack, offentliga moln Google, Azure, AWS, etc.
- Kubernetes erbjuder automatiska schemaläggnings- och självläkningsfunktioner.
- Cluster, master, nod och namnutrymme är viktiga grundläggande för kubernetes
- Huvudnod och arbetsnod är viktiga komponenter i Kubernetes arkitektur.
- Replikeringskontroller, replikeringsuppsättningar, distributioner, tillståndsuppsättningar, Daemonuppsättningar är andra viktiga termer som används i Kubernetes.
- Docker swarm tillåter inte automatisk skalning medan Kubernetes tillåter automatisk skalning.
- Den största nackdelen med Kubenetes är att dess instrumentpanel inte är särskilt användbar och effektiv