Kubernetes Tutorial - En omfattande guide för Kubernetes



Den här bloggen på Kubernetes Tutorial, kommer att gå igenom alla koncept för container orkestreringssystem med en hands-on.

Kubernetes är en plattform som eliminerar manuella processer som är involverade i distribution av containerapplikationer. I den här bloggen på Kubernetes Tutorial kommer du att gå igenom alla begrepp som är relaterade till den här lösningen för hantering av flera containrar.

Följande ämnen kommer att behandlas i denna handledning:





Innan jag går vidare i den här bloggen, låt mig bara kort informera dig om containerisering.

Så innan containrar uppstod hade utvecklarna och testarna alltid tiff mellan dem. Detta hände vanligtvis eftersom det som fungerade på utvecklingssidan inte fungerade på testsidan. Båda fanns i olika miljöer. För att undvika sådana scenarier introducerades nu containrar så att både utvecklarna och testarna var på samma sida.



Att hantera ett stort antal containrar tillsammans var också ett problem. Ibland när man kör containrar på produktsidan togs några frågor upp som inte fanns i utvecklingsstadiet. Denna typ av scenarier introducerade Container Orchestration System.

Innan jag djupt dyker in i orkestreringssystemet, låt mig bara snabbt lista ner de utmaningar som står inför utan detta system.



Kubernetes självstudie: Utmaningar utan behållarorkestrering

Utmaningar utan behållarorkestrering - Kubernetes handledning - Edureka

Som du kan se i ovanstående diagram när flera tjänster körs i containrar, kanske du vill skala dessa containrar. I storskaliga industrier är det verkligen svårt att göra. Det beror på att det skulle öka kostnaden för att underhålla tjänster och komplexiteten att köra dem sida vid sida.

För att undvika att skapa tjänster manuellt och övervinna utmaningarna behövdes något stort. Det är här Container Orchestration Engine kommer in i bilden.

Med den här motorn kan vi organisera flera containrar på ett sådant sätt att alla underliggande maskiner lanseras, containrarna är friska och distribueras i en grupperad miljö. I dagens värld finns det huvudsakligen två sådana motorer: Guvernörer & Docker Swarm .

Kubernetes handledning: Kubernetes vs Docker Swarm

Guvernörer och Docker Swarm är ledande verktyg för orkestrering av containrar på dagens marknad. Så innan du använder dem i prod, bör du veta vad de exakt är och hur de fungerar.

Vidare, i bloggen, kommer jag att dyka djupt in i Kubernetes, men för att veta om Docker kan du klicka .

vad används datavetenskap för

Som du kan hänvisa till ovanstående bild äger Kubernetes, jämfört med Docker Swarm, en stor aktiv gemenskap och möjliggör automatisk skalning i många organisationer. På samma sätt har Docker Swarm ett lättstartat kluster jämfört med Kubernetes, men det är begränsat till Docker API: s funktioner.

Tja, folk, det här är inte de enda skillnaderna mellan dessa toppverktyg. Om du vill veta de detaljerade skillnaderna mellan båda dessa verktyg för orkestrering av containrar kan du klicka

Intresserad av att veta mer om Kubernetes?

Om jag kunde välja mitt val mellan de två, måste det vara Kubernetes eftersom behållare måste hanteras och anslutas till omvärlden för uppgifter som schemaläggning, lastbalansering och distribution.

Men om du tänker logiskt skulle Docker Swarm göra ett bättre alternativ, eftersom det körs ovanpå Docker, eller hur? Om jag var du skulle jag definitivt ha blivit förvirrad över vilket verktyg jag skulle använda. Men hej, Kubernetes är en obestridd ledare på marknaden och kör också på toppen av Docker-containrar med bättre funktioner.

Nu när du har förstått behovet av Kubernetes är det en bra tid, det säger jag dig Vad är Kubernetes?

Kubernetes handledning: Vad är Kubernetes?

är en öppen källkod system som hanterar arbetet med att schemalägga behållare till ett beräkningskluster och hanterar arbetsbelastningarna för att säkerställa att de körs som användaren avser. Eftersom det är Googles hjärnbarn, erbjuder det utmärkt community och fungerar fantastiskt med alla molnleverantörer för att bli en hantering av flera containrar.

Kubernetes handledning: Kubernetes funktioner

Funktionerna i Kubernetes är som följer:

  • Automatiserad schemaläggning: Kubernetes tillhandahåller avancerad schemaläggare för att starta behållare på klusternoder baserat på deras resurskrav och andra begränsningar, samtidigt som tillgängligheten inte offras.
  • Självläkande förmågor: Kubernetes gör det möjligt att ersätta och omplanera behållare när noder dör. Det dödar också behållare som inte svarar på användardefinierad hälsokontroll och annonserar inte dem för kunder förrän de är redo att betjäna.
  • Automatiserade utrullningar och återställning: Kubernetes rullar ut ändringar i applikationen eller dess konfiguration medan du övervakar applikationshälsan för att säkerställa att den inte dödar alla dina instanser samtidigt. Om något går fel kan du med Kubernetes återställa ändringen.
  • Horisontell skalning och belastningsbalansering: Kubernetes kan skala upp och skala ner applikationen enligt kraven med ett enkelt kommando, med ett användargränssnitt eller automatiskt baserat på CPU-användning.

Kubernetes handledning: Kubernetes arkitektur

Kubernetes Architecture har följande huvudkomponenter:

  • Master noder
  • Arbetare / slavnoder

Jag ska diskutera var och en av dem en efter en. Låt oss börja med att förstå Huvudnod .

Huvudnod

Huvudnoden är ansvarig för hanteringen av Kubernetes-klustret. Det är främst startpunkten för alla administrativa uppgifter. Det kan finnas mer än en masternod i klustret för att kontrollera feltolerans.

Som du kan se i ovanstående diagram har masternoden olika komponenter som API Server, Controller Manager, Scheduler och ETCD.

  • API-server: API-servern är ingångspunkten för alla REST-kommandon som används för att styra klustret.
  • Controller Manager: Är en demon som reglerar Kubernetes-klustret och hanterar olika icke-avslutande kontrollslingor.
  • Schemaläggare: Schemaläggaren schemalägger uppgifterna till slavnoder. Den lagrar resursanvändningsinformationen för varje slavnod.
  • ETCD: ETCD är en enkel, distribuerad, konsekvent nyckel-värdebutik. Den används huvudsakligen för delad konfiguration och serviceupptäckt.

Arbetare / slavnoder

Arbetarnoder innehåller alla nödvändiga tjänster för att hantera nätverket mellan behållarna, kommunicera med masternoden och tilldela resurser till de schemalagda behållarna.

Som du kan se i ovanstående diagram har arbetarnoden olika komponenter som Docker Container, Kubelet, Kube-proxy och Pods.

  • Docker Container: Docker körs på var och en av arbetarnoderna och kör de konfigurerade kapslarna
  • Kubelett: Kubelet får konfigurationen av en Pod från API-servern och ser till att de beskrivna behållarna är igång.
  • Kuba fullmakt: Kube-proxy fungerar som en nätverksproxy och en belastningsutjämnare för en tjänst på en enda arbetarnod
  • Skida: En pod är en eller flera behållare som logiskt körs tillsammans på noder.

Om du vill ha en detaljerad förklaring av alla komponenter i Kubernetes Architecture kan du hänvisa till vår blogga på

Vill du bli certifierad i Kubernetes?

Kubernetes handledning: Kubernetes fallstudie

Y ahoo! JAPAN är en leverantör av webbtjänster med huvudkontor i Sunnyvale, Kalifornien. Eftersom företaget syftade till att virtualisera hårdvaran började företaget använda OpenStack 2012. Deras interna miljö förändrades mycket snabbt. Men på grund av framstegen inom moln- och containerteknik ville företaget ha capaförmåga att lansera tjänster på olika plattformar.

Problem: Hur skapar jag bilder för alla obligatoriska plattformar från en applikationskod och distribuerar dessa bilder på varje plattform?

För bättre förståelse, se nedanstående bild. När koden ändras i kodregistret skapas kala metallbilder, Docker-behållare och VM-avbildningar av kontinuerliga integrationsverktyg, skjuts in i bildregistret och distribueras sedan till varje infrastrukturplattform.


Låt oss nu fokusera på containerflödet för att förstå hur de använde Kubernetes som en distributionsplattform. Se bilden nedan för att smyga in plattformsarkitekturen.

OpenStack-instanser används, med Docker, Kubernetes, Calico, etcd ovanpå den för att utföra olika operationer som Container Networking, Container Registry och så vidare.

När du har ett antal kluster blir det svårt att hantera dem, eller hur?

Så de ville bara skapa ett enkelt, enkelt OpenStack-kluster för att tillhandahålla den grundläggande funktionaliteten som behövs för Kubernetes och göra OpenStack-miljön enklare att hantera.

Genom kombinationen av arbetsflöde för bildskapande och Kubernetes byggde de nedanstående verktygskedja vilket gör det enkelt från kodtryckning till distribution.


Denna typ av verktygskedja såg till att alla faktorer för produktionsdistribution som multi-tenancy, autentisering, lagring, nätverk, serviceupptäckt beaktades.

Det är så folk, Yahoo! JAPAN byggde en automatiseringsverktygskedja för 'ett klick' -koddistribution till Kubernetes som körs på OpenStack, med hjälp av Google och Solinea .

Guvernörs tutorial: Hands-On

I den här hands-on kommer jag att visa dig hur du skapar en distribution och en tjänst. Jag använder en Amazon EC2-instans för att använda Kubernetes. Tja, Amazon har kommit med Amazon Elastic Container Service för Guvernörer (Amazon EKS) , vilket gör att de kan skapa Kubernetes-kluster i molnet mycket snabbt och enkelt. Om du vill lära dig mer om det kan du hänvisa till bloggen

Steg 1: Först skapa en mapp inuti vilken du kommer att skapa din distribution och tjänst. Använd sedan en redaktör och öppna en distributionsfil .

mkdir handsOn cd handsOn vi Deploy.yaml

Steg 2: När du har öppnat distributionsfilen nämner du alla specifikationer för applikationen du vill distribuera. Här försöker jag distribuera en httpd Ansökan.

sorteringsfunktion c ++
apiVersion: apps / v1 # Definierar API-versionstyp: Deployment #Kinds-parameter definierar vilken typ av fil det är, här är det Deployment-metadata: namn: dep1 # Lagrar namnet på distributionsspecifikationen: # Under Specifikationer nämner du alla specifikationerna för distributionsreplikat: 3 # Antal repliker skulle vara 3 väljare: matchLabels: app: httpd # Etikettnamn som skulle sökas är httpd mall: metadata: etiketter: app: httpd # Mallnamn skulle vara httpd spec: # Under Specifikationer, du nämner alla specifikationer för behållarna: - namn: httpd # Namn på behållarna skulle vara httpd bild: httpd: senaste # Bilden som måste laddas ner är httpd: senaste portar: - containerPort: 80 #Applikationen skulle exponeras på port 80

Steg 3: När du har skrivit din distributionsfil använder du distributionen med följande kommando.

kubectl applicera -f Deploy.yaml

Här -f är ett flaggnamn som används förthan arkiveranamn.

Steg 4: Nu när distributionen har tillämpats får du listan över pods som körs.

kubectl få skida-så bred

Här används -o wide för att veta på vilken nod distributionen körs.

Steg 5: När du har skapat en distribution måste du nu skapa en tjänst. För det använder du igen en redigerare och öppnar ett tomt service. yaml-fil .

vi service.yaml

Steg 6: När du har öppnat en tjänstfil ska du nämna alla specifikationer för tjänsten.

apiVersion: v1 # Definierar API-versionens typ: Service #Kinds-parametern definierar vilken typ av fil det är, här är det Service-metadata: namn: netsvc # Lagrar namnet på tjänstspecifikationen: # Under Specifikationer nämner du alla specifikationer för servicetyp: NodePort-väljare: app: httpd-portar: -protocol: TCP-port: 80 targetPort: 8084 #Target Portnummer är 8084

Steg 7: När du har skrivit din servicefil, använd servicefilen med följande kommando.

kubectl applicera -f service.yaml

Steg 8: Nu när din tjänst har tillämpats för att kontrollera om tjänsten körs eller inte använder du följande kommando.

kubectl få svc

Steg 9: Nu, för att se specifikationerna för tjänsten och kontrollera vilken slutpunkt det ärbundet till, använd följande kommando.

kubectl beskriv svc

Steg 10: Nu eftersom vi använder amazon ec2-instans, för att hämta webbsidan och kontrollera utdata, använd följande kommando.

curl ip-adress

Om du tyckte att denna Kubernetes självstudieblogg är relevant, kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet i ” Kubernetes handledning ”Och jag kommer tillbaka till dig.