Kubernetes Tutorial - En omfattende guide til Kubernetes

Denne blog på Kubernetes Tutorial vil lede dig gennem alle koncepterne med container orkestrering system med en hands-on.

Kubernetes er en platform, der eliminerer de manuelle processer, der er involveret i implementering af containeriserede applikationer. I denne blog på Kubernetes Tutorial gennemgår du alle de koncepter, der er relateret til denne multi-container management-løsning.



Følgende emner vil blive dækket i denne vejledning:



Nu, inden jeg går videre i denne blog, skal jeg bare kort informere dig om containerisering.

Så før containere blev til, havde udviklerne og testerne altid en tiff mellem dem. Dette skete normalt, fordi det, der fungerede på dev-siden, ikke ville fungere på testsiden. Begge eksisterede i forskellige miljøer. For at undgå sådanne scenarier blev containere introduceret, så både udviklerne og testerne var på samme side.



Håndtering af et stort antal containere alt sammen var også et problem. Under produktionen blev der nogle få spørgsmål rejst, mens der køres containere, som ikke var til stede på udviklingsstadiet. Denne slags scenarier introducerede Container Orchestration System.

Før jeg dykker dybt ned i orkestrationssystemet, lad mig bare hurtigt liste ned de udfordringer, der står uden dette system.



Kubernetes Tutorial: Udfordringer uden containerorkestrering

Udfordringer uden container orkestrering - Kubernetes tutorial - Edureka

Som du kan se i ovenstående diagram, når flere tjenester kører inde i containere, skal du måske skalere disse containere. I store industrier er det virkelig svært at gøre. Det skyldes, at det ville øge omkostningerne ved vedligeholdelse af tjenester og kompleksiteten ved at køre dem side om side.

For at undgå at oprette tjenester manuelt og overvinde udfordringerne var der behov for noget stort. Det er her Container Orchestration Engine kommer ind i billedet.

Denne motor lader os organisere flere containere på en sådan måde, at alle de underliggende maskiner lanceres, containere er sunde og distribueres i et grupperet miljø. I nutidens verden er der hovedsageligt to sådanne motorer: Guvernører & Docker sværm .

Kubernetes vejledning: Kubernetes vs Docker Swarm

Guvernører og Docker sværm er førende containerorkestrationsværktøjer på nutidens marked. Så inden du bruger dem i prod, skal du vide, hvad de præcist er, og hvordan de fungerer.

Yderligere, i bloggen skal jeg dybe dybt ned i Kubernetes, men for at vide om Docker kan du klikke .

Som du kan henvise til ovenstående billede, ejer Kubernetes sammenlignet med Docker Swarm et stort aktivt samfund og muliggør automatisk skalering i mange organisationer. Tilsvarende har Docker Swarm en let at starte klynge sammenlignet med Kubernetes, men det er begrænset til Docker API's muligheder.

Nå, folkens, det er ikke de eneste forskelle mellem disse topværktøjer. Hvis du ønsker at kende de detaljerede forskelle mellem begge disse containerorkestreringsværktøjer, kan du klikke

Interesseret i at vide mere om Kubernetes?

Hvis jeg kunne vælge mit valg mellem de to, skulle det være Kubernetes, da containere skal styres og forbindes til omverdenen til opgaver såsom planlægning, belastningsbalancering og distribution.

Men hvis du tænker logisk, ville Docker Swarm gøre en bedre mulighed, da den kører oven på Docker, ikke? Hvis jeg var dig, ville jeg bestemt være forvirret over, hvilket værktøj jeg skulle bruge. Men hej, Kubernetes er en ubestridt førende på markedet og kører også oven på Docker-containere med bedre funktioner.

Nu hvor du har forstået behovet for Kubernetes, er det en god tid, som jeg siger dig Hvad er Kubernetes?

Kubernetes vejledning: Hvad er Kubernetes?

er en open source system, der håndterer arbejdet med at planlægge containere til en computerklynge og administrerer arbejdsbelastningerne for at sikre, at de kører, som brugeren har til hensigt. Som Googles hjernebarn tilbyder det fremragende samfund og fungerer glimrende med alle skyudbydere for at blive en løsning til styring af flere containere.

Kubernetes vejledning: Kubernetes Funktioner

Funktionerne i Kubernetes er som følger:

binær til decimal konverter java
  • Automatisk planlægning: Kubernetes leverer avanceret planlægning til at starte container på klyngenoder baseret på deres ressourcekrav og andre begrænsninger, uden at det går ud over tilgængeligheden.
  • Selvhelbredende kapaciteter: Kubernetes tillader udskiftning og omplanering af containere, når noder dør. Det dræber også containere, der ikke reagerer på brugerdefineret sundhedstjek, og annoncerer dem ikke for klienter, før de er klar til servering.
  • Automatiske udrulninger og tilbageførsel: Kubernetes udruller ændringer i applikationen eller dens konfiguration, mens de overvåger applikationssundheden for at sikre, at den ikke dræber alle dine forekomster på samme tid. Hvis noget går galt, kan du med Kubernetes tilbageføre ændringen.
  • Vandret skalering og belastningsafbalancering: Kubernetes kan skalere op og ned applikationen efter kravene med en simpel kommando ved hjælp af et brugergrænseflade eller automatisk baseret på CPU-brug.

Kubernetes vejledning: Kubernetes Arkitektur

Kubernetes Architecture har følgende hovedkomponenter:

  • Master noder
  • Arbejder / slaveknudepunkter

Jeg vil diskutere hver enkelt af dem en efter en. Lad os starte med at forstå Masterknude .

Masterknude

Hovedknuden er ansvarlig for styringen af ​​Kubernetes-klyngen. Det er hovedsageligt indgangsstedet for alle administrative opgaver. Der kan være mere end en masternode i klyngen for at kontrollere fejltolerance.

Som du kan se i ovenstående diagram, har masternoden forskellige komponenter som API Server, Controller Manager, Scheduler og ETCD.

  • API-server: API-serveren er indgangspunktet for alle de REST-kommandoer, der bruges til at kontrollere klyngen.
  • Controller Manager: Er en dæmon, der regulerer Kubernetes-klyngen og administrerer forskellige ikke-afsluttende kontrolsløjfer.
  • Planlægning: Planlæggeren planlægger opgaverne til slaveknudepunkter. Den gemmer ressourceforbrugsoplysningerne for hver slaveknude.
  • ETCD: ETCD er en simpel, distribueret, konsistent nøgleværdibutik. Det bruges hovedsageligt til delt konfiguration og serviceopdagelse.

Arbejder / slaveknudepunkter

Arbejdernoder indeholder alle de nødvendige tjenester til at styre netværket mellem containerne, kommunikere med masternoden og tildele ressourcer til de planlagte containere.

Som du kan se i ovenstående diagram, har arbejdsknudepunktet forskellige komponenter som Docker Container, Kubelet, Kube-proxy og Pods.

  • Docker Container: Docker kører på hver af arbejderknudepunkterne og kører de konfigurerede bælg
  • Kubelet: Kubelet får konfigurationen af ​​en Pod fra API-serveren og sikrer, at de beskrevne containere er i gang.
  • Cuba fuldmagt: Kube-proxy fungerer som en netværksproxy og en load balancer for en tjeneste på en enkelt arbejdsknude
  • Bælg: En pod er en eller flere containere, der logisk kører sammen på noder.

Hvis du vil have en detaljeret forklaring på alle komponenterne i Kubernetes Architecture, kan du henvise til vores blog på

Vil du blive certificeret i Kubernetes?

Kubernetes vejledning: Kubernetes case-study

Y ahoo! JAPAN er en udbyder af webtjenester med hovedkontor i Sunnyvale, Californien. Da virksomheden havde til formål at virtualisere hardwaren, begyndte virksomheden at bruge OpenStack i 2012. Deres interne miljø ændrede sig meget hurtigt. På grund af udviklingen inden for sky- og containerteknologi ønskede virksomheden imidlertid capaevne til at lancere tjenester på forskellige platforme.

Problem: Hvordan oprettes billeder til alle nødvendige platforme fra en applikationskode og distribuerer disse billeder på hver platform?

Se nedenstående billede for din bedre forståelse. Når koden ændres i kode-registreringsdatabasen, oprettes bare metal-billeder, Docker-containere og VM-billeder af kontinuerlige integrationsværktøjer, skubbes ind i billedregistret og derefter distribueres til hver infrastrukturplatform.


Lad os nu fokusere på container workflow for at forstå, hvordan de brugte Kubernetes som en implementeringsplatform. Se nedenstående billede for at snige dig ind i platformarkitekturen.

OpenStack-forekomster bruges med Docker, Kubernetes, Calico osv. Oven på det til at udføre forskellige operationer som Container Networking, Container Registry og så videre.

Når du har et antal klynger, bliver det svært at styre dem, ikke?

Så de ville bare oprette en enkel, baseret OpenStack-klynge for at give den grundlæggende funktionalitet, der er nødvendig for Kubernetes, og gøre OpenStack-miljøet lettere at administrere.

Ved kombinationen af ​​billedoprettelsesworkflow og Kubernetes byggede de nedenstående værktøjskæde, hvilket gør det nemt fra kodeskub til implementering.


Denne form for værktøjskæde sørgede for, at alle faktorer til implementering af produktionen såsom multi-tenancy, godkendelse, opbevaring, netværk, serviceopdagelse blev overvejet.

Sådan er folk, Yahoo! JAPAN bygget en automatiseringsværktøjskæde til 'one-click' -kodeudrulning til Kubernetes, der kører på OpenStack, med hjælp fra Google og Solinea .

Guvernørernes vejledning: Hands-On

I denne hands-on vil jeg vise dig, hvordan du opretter en implementering og en service. Jeg bruger en Amazon EC2-instans til at bruge Kubernetes. Nå, Amazon er kommet op med Amazon Elastic Container Service til Guvernører (Amazon EKS) , som giver dem mulighed for at oprette Kubernetes-klynger i skyen meget hurtigt og nemt. Hvis du ønsker at lære mere om det, kan du henvise til bloggen

Trin 1: Først Opret en mappe indeni, hvor du opretter din implementering og service. Brug derefter en editor og åbn en implementeringsfil .

mkdir handsOn cd handsOn vi Implementere.yaml

Trin 2: Når du åbner installationsfilen, skal du nævne alle specifikationerne for den applikation, du vil implementere. Her prøver jeg at implementere en httpd Ansøgning.

apiVersion: apps / v1 #Definerer API-versionstypen: Implementering #Kinds-parameter definerer, hvilken type fil der er, her er det Implementeringsmetadata: navn: dep1 # Gemmer navnet på implementeringsspecifikationen: # Under Specifikationer nævner du alle specifikationerne for implementeringsreplikaterne: 3 # Antal repliker ville være 3 vælger: matchLabels: app: httpd # Etiketnavn, der skulle søges i, er httpd skabelon: metadata: labels: app: httpd # Template navn ville være httpd spec: # Under Specifikationer, du nævner alle specifikationerne for containere containere: - navn: httpd # Navn på containere ville være httpd billede: httpd: seneste # Billedet, der skal downloades, er httpd: nyeste porte: - containerPort: 80 #Applikationen ville blive eksponeret på port 80

Trin 3: Når du har skrevet din implementeringsfil, skal du anvende implementeringen ved hjælp af følgende kommando.

kubectl anvende -f Deploy.yaml

Her -f er et flagnavn, der bruges tiltarkiverer hannavn.

Trin 4: Når først implementeringen er anvendt, skal du få listen over bælg, der kører.

kubectl få bælg-så bredt

Her bruges -o wide til at vide, hvilken knude implementeringen kører.

Trin 5: Når du har oprettet en implementering, skal du nu oprette en tjeneste. Til det skal du igen bruge en editor og åbne et tomt service. yaml-fil .

vi service.yaml

Trin 6: Når du har åbnet en servicefil, skal du nævne alle specifikationerne for tjenesten.

apiVersion: v1 #Definerer API-versionstype: Service #Kinds-parameter definerer hvilken type fil der er, her er det Service-metadata: navn: netsvc #Opbevarer navnet på servicespecifikationen: # Under Specifikationer nævner du alle specifikationerne for servicetypen: NodePort-vælger: app: httpd-porte: -protocol: TCP-port: 80 targetPort: 8084 #Target Portnummer er 8084

Trin 7: Når du har skrevet din servicefil, skal du anvende servicefilen ved hjælp af følgende kommando.

typer filtre i tableau
kubectl anvende -f service.yaml

Trin 8: Når din tjeneste er anvendt, skal du kontrollere, om tjenesten kører, eller ikke bruge følgende kommando.

kubectl få svc

Trin 9: Nu for at se specifikationerne for tjenesten og kontrollere, hvilket slutpunkt det erbundet til, brug følgende kommando.

kubectl beskriver svc

Trin 10: Nu da vi bruger amazon ec2-instans, skal du bruge følgende kommando til at hente websiden og kontrollere output.

krølle ip-adresse

Hvis du fandt denne Kubernetes Tutorial-blog relevant, skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i ” Kubernetes vejledning ”Og jeg vender tilbage til dig.