Kubernetes Tutorial - En omfattende guide for Kubernetes



Denne bloggen på Kubernetes Tutorial, vil lede deg gjennom alle konseptene med containerorkestrasjonssystem med en hands-on.

Kubernetes er en plattform som eliminerer manuelle prosesser involvert i distribusjon av containeriserte applikasjoner. I denne bloggen på Kubernetes Tutorial, vil du gå gjennom alle konseptene knyttet til denne løsningen for multi-containeradministrasjon.

Følgende emner vil bli dekket i denne opplæringen:





Nå, før jeg går videre i denne bloggen, kan jeg bare fortelle deg om containerisering.

Så før containere ble til, hadde utviklerne og testerne alltid en tiff mellom dem. Dette skjedde vanligvis fordi det som fungerte på utviklingssiden, ikke ville fungere på testsiden. Begge to eksisterte i forskjellige miljøer. Nå, for å unngå slike scenarier, ble containere introdusert slik at både utviklerne og testerne var på samme side.



Å håndtere et stort antall containere samlet var også et problem. Noen ganger, mens det kjørte containere, på produktsiden, ble det tatt opp noen problemer som ikke var til stede på utviklingsstadiet. Denne typen scenarier introduserte Container Orchestration System.

Før jeg dykker dypt inn i orkestrasjonssystemet, la meg bare raskt liste opp utfordringene som står overfor uten dette systemet.



Kubernetes opplæring: Utfordringer uten container orkestrering

Utfordringer uten beholderorkestrering - Kubernetes opplæring - Edureka

Som du kan se i diagrammet ovenfor når flere tjenester kjører i containere, vil du kanskje skalere disse containerne. I store industrier er dette veldig vanskelig å gjøre. Det er fordi det vil øke kostnadene for å opprettholde tjenester, og kompleksiteten å kjøre dem side om side.

Nå, for å unngå å sette opp tjenester manuelt og overvinne utfordringene, var det nødvendig med noe stort. Det er her Container Orchestration Engine kommer inn i bildet.

Denne motoren lar oss organisere flere containere, på en slik måte at alle underliggende maskiner lanseres, containere er sunne og distribueres i et klynget miljø. I dagens verden er det hovedsakelig to slike motorer: Guvernører & Docker sverm .

Kubernetes opplæring: Kubernetes vs Docker Swarm

Guvernører og Docker sverm er ledende verktøy for orkestrering av containere i dagens marked. Så før du bruker dem i produkt, bør du vite hva de egentlig er og hvordan de fungerer.

Videre, i bloggen, skal jeg dype dykk inn i Kubernetes, men for å vite om Docker kan du klikke .

Som du kan referere til bildet ovenfor, eier Kubernetes, sammenlignet med Docker Swarm, et stort aktivt fellesskap og gir automatisk skalering i mange organisasjoner. På samme måte har Docker Swarm en lett å starte klynge sammenlignet med Kubernetes, men den er begrenset til Docker APIs evner.

forskjell på marionett og kokk

Vel, folkens, dette er ikke de eneste forskjellene mellom disse toppverktøyene. Hvis du ønsker å vite de detaljerte forskjellene mellom begge disse containerorkesteringsverktøyene, kan du klikke

Interessert i å vite mer om Kubernetes?

Hvis jeg kunne velge å velge mellom de to, måtte det være Kubernetes siden containere må administreres og kobles til omverdenen for oppgaver som planlegging, lastbalansering og distribusjon.

Men hvis du tenker logisk, ville Docker Swarm gjøre et bedre alternativ, da det kjører på toppen av Docker, ikke sant? Hvis jeg var deg, ville jeg definitivt blitt forvirret om hvilket verktøy jeg skulle bruke. Men hei, Kubernetes er en ubestridt leder i markedet og kjører også på toppen av Docker-containere med bedre funksjoner.

Nå som du har forstått behovet for Kubernetes, er det en god tid, det sier jeg deg Hva er Kubernetes?

Kubernetes opplæring: Hva er Kubernetes?

er en åpen kildekode system som håndterer arbeidet med å planlegge containere til en beregningsklynge og administrerer arbeidsmengdene for å sikre at de kjører slik brukeren har til hensikt. Som Googles hjernebarn, tilbyr det utmerket fellesskap og fungerer glimrende med alle skyleverandørene for å bli en multi-container management løsning.

Kubernetes opplæring: Kubernetes Funksjoner

Funksjonene til Kubernetes er som følger:

  • Automatisk planlegging: Kubernetes tilbyr avansert planlegger for å starte container på klyngenoder basert på deres ressurskrav og andre begrensninger, mens det ikke ofrer tilgjengeligheten.
  • Selvhelbredende evner: Kubernetes gjør det mulig å erstatte og omorganisere containere når noder dør. Den dreper også containere som ikke reagerer på brukerdefinert helsekontroll og annonserer dem ikke for kunder før de er klare til å betjene.
  • Automatiserte utrullinger og tilbakeføring: Kubernetes ruller ut endringer i applikasjonen eller konfigurasjonen mens den overvåker applikasjonens helse for å sikre at den ikke dreper alle forekomster samtidig. Hvis noe går galt, kan du med Kubernetes tilbakestille endringen.
  • Horisontal skalering og lastbalansering: Kubernetes kan skalere opp og ned applikasjonen i henhold til kravene med en enkel kommando, ved hjelp av et brukergrensesnitt, eller automatisk basert på CPU-bruk.

Kubernetes opplæring: Kubernetes arkitektur

Kubernetes Architecture har følgende hovedkomponenter:

  • Master noder
  • Arbeider / slaveknuter

Jeg skal diskutere hver enkelt av dem en etter en. Så, først, la oss starte med å forstå Master Node .

Master Node

Hovednoden er ansvarlig for styringen av Kubernetes-klyngen. Det er hovedsakelig inngangsstedet for alle administrative oppgaver. Det kan være mer enn en masternode i klyngen for å sjekke for feiltoleranse.

Som du kan se i diagrammet ovenfor, har masternoden forskjellige komponenter som API Server, Controller Manager, Scheduler og ETCD.

  • API-server: API-serveren er inngangspunktet for alle REST-kommandoene som brukes til å kontrollere klyngen.
  • Kontrollansvarlig: Er en demon som regulerer Kubernetes-klyngen, og administrerer forskjellige ikke-avsluttende kontrollløkker.
  • Planlegger: Planleggeren planlegger oppgavene til slaveknuter. Den lagrer informasjonen om ressursbruk for hver slaveknute.
  • ETCD: ETCD er en enkel, distribuert, konsistent nøkkelverdibutikk. Den brukes hovedsakelig til delt konfigurasjon og tjenesteoppdagelse.

Arbeider / slaveknuter

Arbeidernoder inneholder alle nødvendige tjenester for å administrere nettverket mellom containerne, kommunisere med masternoden og tildele ressurser til de planlagte containerne.

Som du kan se i diagrammet ovenfor, har arbeidernoden forskjellige komponenter som Docker Container, Kubelet, Kube-proxy og Pods.

  • Docker Container: Docker kjører på hver av arbeidernes noder, og kjører de konfigurerte podene
  • Kubelet: Kubelet får konfigurasjonen av en Pod fra API-serveren og sørger for at de beskrevne beholderne er oppe og går.
  • Cuba fullmektig: Kube-proxy fungerer som en nettverksproxy og en lastbalanser for en tjeneste på en enkelt arbeiderknute
  • Pods: En pod er en eller flere containere som logisk sett kjører sammen på noder.

Hvis du vil ha en detaljert forklaring på alle komponentene i Kubernetes Architecture, kan du referere til vår blogg videre

Vil du bli sertifisert i Kubernetes?

Kubernetes opplæring: Kubernetes case-study

Y ahoo! JAPAN er en leverandør av nettjenester med hovedkontor i Sunnyvale, California. Da selskapet hadde som mål å virtualisere maskinvaren, begynte selskapet å bruke OpenStack i 2012. Deres indre miljø endret seg veldig raskt. Imidlertid, på grunn av fremgangen med sky- og containerteknologi, ønsket selskapet capamuligheten til å lansere tjenester på forskjellige plattformer.

Problem: Hvordan lage bilder for alle nødvendige plattformer fra en applikasjonskode, og distribuere disse bildene på hver plattform?

For bedre forståelse, se bildet nedenfor. Når koden endres i koderegisteret, blir bare metallbilder, Docker-containere og VM-bilder opprettet av kontinuerlige integrasjonsverktøy, presset inn i bilderegisteret, og deretter distribuert til hver infrastrukturplattform.


La oss nå fokusere på arbeidsflyt for containere for å forstå hvordan de brukte Kubernetes som en distribusjonsplattform. Se bildet nedenfor for å snike deg inn i plattformsarkitekturen.

OpenStack-forekomster brukes, med Docker, Kubernetes, Calico, etcd på toppen av den for å utføre forskjellige operasjoner som Container Networking, Container Registry, og så videre.

Når du har en rekke klynger, blir det vanskelig å administrere dem, ikke sant?

Så de ville bare lage en enkel, grunnleggende OpenStack-klynge for å gi den grunnleggende funksjonaliteten som trengs for Kubernetes og gjøre OpenStack-miljøet lettere å administrere.

Ved å kombinere arbeidsflyten Image Creation og Kubernetes, bygde de verktøykjeden nedenfor, som gjør det enkelt fra kodetrykk til distribusjon.


Denne typen verktøykjede sørget for at alle faktorer for distribusjon av produksjon, som multi-tenancy, autentisering, lagring, nettverk, serviceoppdagelse ble vurdert.

Slik er folk, Yahoo! JAPAN bygget en automatiseringsverktøyskjede for 'ett-klikk' -kodeutplassering til Kubernetes som kjører på OpenStack, med hjelp fra Google og Solinea .

Guvernørveiledning: Hands-On

I denne hands-on vil jeg vise deg hvordan du lager en distribusjon og en tjeneste. Jeg bruker en Amazon EC2-forekomst for å bruke Kubernetes. Vel, Amazon har funnet på Amazon Elastic Container Service til Guvernører (Amazon EKS) , som lar dem lage Kubernetes-klynger i skyen veldig raskt og enkelt. Hvis du ønsker å lære mer om det, kan du henvise til bloggen

Trinn 1: Først lage en mappe der du vil opprette distribusjon og service. Etter det, bruk en redaktør og åpne en distribusjonsfil .

mkdir handsOn cd handsOn vi Deploy.yaml

Steg 2: Når du har åpnet distribusjonsfilen, nevner du alle spesifikasjonene for applikasjonen du vil distribuere. Her prøver jeg å distribuere en httpd applikasjon.

apiVersion: apps / v1 # Definerer API-versjonstype: Deployment #Kinds parameter definerer hvilken type fil det er, her er det Deployment metadata: name: dep1 # Lagrer navnet på distribusjonsspesifikasjonen: # Under Spesifikasjoner nevner du alt spesifikasjonene for distribusjonsreplika: 3 # Antall kopier vil være 3 velger: matchLabels: app: httpd # Etikettnavn som det vil bli søkt i er httpd mal: metadata: labels: app: httpd # Template name would be httpd spec: # Under Spesifikasjoner, du nevner alle spesifikasjonene for containercontainerne: - navn: httpd # Navn på containere vil være httpd image: httpd: siste # Bildet som må lastes ned er httpd: siste porter: - containerPort: 80 #Applikasjonen ville bli utsatt på port 80

Trinn 3: Når du har skrevet distribusjonsfilen, bruker du distribusjonen med følgende kommando.

kubectl gjelder -f Deploy.yaml

hva er et navneområde i c ++

Her -f er et flaggnavn som brukes tiltarkiverer hanNavn.

Trinn 4: Når distribusjonen er brukt, får du listen over pods som kjører.

kubectl få pods -o bred

Her brukes -o wide for å vite hvilken node distribusjonen kjører.

Trinn 5: Etter at du har opprettet en distribusjon, må du nå opprette en tjeneste. For det igjen bruk en redaktør og åpne et tomt service. yaml-fil .

vi service.yaml

Trinn 6: Når du har åpnet en tjenestefil, må du nevne alle spesifikasjonene for tjenesten.

apiVersion: v1 #Definerer API-versjonstype: Service #Kinds-parameter definerer hvilken type fil det er, her er det Service-metadata: navn: netsvc # Lagrer navnet på tjenestespesifikasjonen: # Under Spesifikasjoner nevner du alle spesifikasjonene for tjenestetypen: NodePort-velger: app: httpd-porter: -protocol: TCP-port: 80 targetPort: 8084 # Målportnummer er 8084

Trinn 7: Når du har skrevet tjenestefilen din, bruker du tjenestefilen med følgende kommando.

kubectl gjelder -f service.yaml

Trinn 8: Når tjenesten din er brukt for å kontrollere om tjenesten kjører eller ikke, bruker du følgende kommando.

kubectl få svc

Trinn 9: Nå, for å se spesifikasjonene for tjenesten, og sjekk hvilket sluttpunkt det erbundet til, bruk følgende kommando.

kubectl beskriver svc

Trinn 10: Nå siden vi bruker amazon ec2-forekomst, for å hente websiden og sjekke utdata, bruk følgende kommando.

krølle ip-adresse

Hvis du fant denne Kubernetes opplæringsbloggen relevant, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet til ” Kubernetes opplæring ”Og jeg kommer tilbake til deg.