Kubernetes veiledning for nybegynnere: Grunnleggende, funksjoner, Architecture

Før vi starter denne Kubernetes-opplæringen, la oss lære:

Hva er Kubernetes?

Kubernetes er et containerstyringssystem utviklet på Google-plattformen. Kubernetes hjelper til med å administrere containeriserte applikasjoner i ulike typer fysiske, virtuelle og skymiljøer. Google Kubernetes er et svært fleksibelt containerverktøy for konsekvent å levere komplekse applikasjoner som kjører på klynger på hundrevis til tusenvis av individuelle servere.

Hvorfor trenger du containere?

Dagens internettbruker aksepterer aldri nedetid. Derfor må utviklere finne en metode for å utføre vedlikehold og oppdatering uten å avbryte tjenestene deres.

Derfor er en beholder et isolert miljø. Den inkluderer alt som trengs for at applikasjonen skal kjøre. Det gjør det enkelt for en utvikler å redigere og distribuere apper. Dessuten har containerisering blitt en foretrukket metode for å pakke, distribuere og oppdatere nettapper.

Hvilken oppgave utføres av Kubernetes?

Kubernetes er Linux-kjernen som brukes til distribuerte systemer. Det hjelper deg å være abstrakt den underliggende maskinvaren til nodene (serverne) og tilbyr et konsistent grensesnitt for applikasjoner som bruker den delte ressursen.

Hvorfor bruke Kubernetes?

Kubernetes hjelper deg med å kontrollere ressursallokeringen og trafikkadministrasjonen for skyapplikasjoner og mikrotjenester. Det bidrar også til å forenkle ulike aspekter ved tjenesteorientert infrastruktur. Kubernetes lar deg forsikre deg om hvor og når containerbaserte applikasjoner kjører og hjelper deg med å finne ressurser og verktøy du vil jobbe med.

Funksjoner ved Kubernetes

Her er de essensielle Kubernetes-funksjonene:

  • Automatisert planlegging
  • Selvhelbredende evner
  • Automatiserte utrullinger og tilbakerulling
  • Horisontal skalering og lastbalansering
  • Tilbyr miljøkonsistens for utvikling, testing og produksjon
  • Infrastruktur er løst koblet til hver komponent kan fungere som en separat enhet
  • Gir en høyere tetthet av ressursutnyttelse
  • Tilbyr bedriftsklare funksjoner
  • Applikasjonssentrisk ledelse
  • Auto-skalerbar infrastruktur
  • Du kan lage forutsigbar infrastruktur

Grunnleggende om Kubernetes

Nå i denne Kubernetes-opplæringen vil vi lære noen viktige grunnleggende om Kubernetes:

  • Cluster

    Det er en samling av verter (servere) som hjelper deg med å samle deres tilgjengelige ressurser. Det inkluderer ram, CPU, ram, disk og deres enheter i en brukbar pool.

  • Master

    Masteren er en samling komponenter som utgjør kontrollpanelet til Kubernetes. Disse komponentene brukes for alle klyngebeslutninger. Det inkluderer både planlegging og respons på klyngehendelser.

  • Node

    Det er en enkelt vert som er i stand til å kjøre på en fysisk eller virtuell maskin. En node skal kjøre både kube-proxy, minikube og kubelet som anses som en del av klyngen.

  • namespace

    Det er en logisk klynge eller miljø. Det er en mye brukt metode som brukes til å avgrense tilgang eller dele en klynge.

Kubernetes Architecture

Nedenfor er et detaljert Kubernetes-arkitekturdiagram:

Kubernetes ArchiTecture Diagram
Kubernetes ArchiTecture Diagram

master node

Hovednoden er den første og mest vitale komponenten som er ansvarlig for administrasjonen av Kubernetes-klyngen. Det er inngangspunktet for alle slags administrative oppgaver. Det kan være mer enn én hovednode i klyngen for å sjekke for feiltoleranse.

Hovednoden har forskjellige komponenter som API Server, Controller Manager, Scheduler og ETCD. La se dem alle.

API-server: API-serveren fungerer som et inngangspunkt for alle REST-kommandoene som brukes til å kontrollere klyngen.

Scheduler

Planleggeren planlegger oppgavene til slavenoden. Den lagrer informasjon om ressursbruk for hver slavenode. Den er ansvarlig for å fordele arbeidsmengden.

Det hjelper deg også å spore hvordan arbeidsbelastningen brukes på klyngenoder. Det hjelper deg å plassere arbeidsbelastningen på ressurser som er tilgjengelige og akseptere arbeidsbelastningen.

Etc.

etcd-komponenter lagrer konfigurasjonsdetaljer og wright-verdier. Den kommuniserer med de fleste komponentene for å motta kommandoer og arbeide. Den administrerer også nettverksregler og portvideresendingsaktivitet.

Arbeider-/slavenoder

Arbeidsnoder er en annen viktig komponent som inneholder alle nødvendige tjenester for å administrere nettverket mellom containerne, kommunisere med masternoden, som lar deg tilordne ressurser til de planlagte containerne.

  • Kubelet: henter konfigurasjonen av en Pod fra API-serveren og sørger for at de beskrevne beholderne er oppe og går.
  • Docker-beholder: Docker container kjører på hver av arbeidernodene, som kjører de konfigurerte podene
  • Kube-proxy: Kube-proxy fungerer som en lastbalanserer og nettverksproxy for å utføre tjeneste på en enkelt arbeidernode
  • Pods: En pod er en kombinasjon av enkelt eller flere beholdere som logisk kjører sammen på noder

Andre nøkkelterminologier

Replikeringskontrollere

En replikeringskontroller er et objekt som definerer en pod-mal. Den kontrollerer også parametere for å skalere identiske kopier av Pod horisontalt ved å øke eller redusere antall løpende kopier.

Replikeringssett

Replikeringssett er en interaksjon på replikeringskontrollerdesignet med fleksibilitet i hvordan kontrolleren gjenkjenner podene den er ment å administrere. Den erstatter replikeringskontrollere på grunn av deres høyere replikatutvalgsevne.

distribusjoner

Utrulling er en vanlig arbeidsmengde som kan opprettes og administreres direkte. Implementering bruker replikeringssett som en byggestein som legger til funksjonen for livssyklusadministrasjon.

Stateful sett

Det er en spesialisert podkontroll som tilbyr bestilling og unikhet. Den brukes hovedsakelig for å ha finmasket kontroll, som du har et spesielt behov for når det gjelder distribusjonsrekkefølge, stabilt nettverk og vedvarende data.

Demonsett

Daemon-sett er en annen spesialisert form for pod-kontroller som kjører en kopi av en pod på hver node i klyngen. Denne typen podkontroller er en effektiv metode for å distribuere pods som lar deg utføre vedlikehold og tilbyr tjenester for selve nodene.

Kubernetes vs. Docker Swarm

Her er viktige forskjeller mellom Kubernetes vs Docker.

Parameter Docker sverm Kubernetes
Skalering Ingen autoskalering Automatisk skalering
Lastbalansering Gjør automatisk lastbalansering Konfigurer innstillingene for lastbalansering manuelt
Deling av lagringsvolum Deler lagringsvolumer med en hvilken som helst annen beholder Deler lagringsvolumer mellom flere beholdere inne i samme Pod
Bruk av påloggings- og overvåkingsverktøy Bruk 3rd festverktøy som ELK Gi et innebygd verktøy for logging og overvåking.
Installasjon Enkelt og raskt Komplisert og tidkrevende
GUI GUI ikke tilgjengelig GUI er tilgjengelig
skalerbarhet Oppskalering er raskere enn K8S, men klyngestyrken er ikke like robust Oppskalering er treg sammenlignet med Swarm, men garanterer sterkere klyngetilstand Lastbalansering krever manuell tjenestekonfigurasjon
Lastbalansering Gir en innebygd lastbalanseringsteknikk Prosessplanlegging for å vedlikeholde tjenester mens du oppdaterer
Oppdateringer og tilbakeføringer av datavolum Logging og overvåking Progressive oppdateringer og helseovervåking av tjenester. Kun delt med containere i samme Pod Inbuilt logg- og overvåkingsverktøy.

Fordeler med Kubernetes

  • Enkel organisering av tjenesten med pods
  • Den er utviklet av Google, som gir mange års verdifull bransjeerfaring til bordet
  • Største fellesskap blant containerorkestreringsverktøy
  • Tilbyr en rekke lagringsalternativer, inkludert lokale, SAN-er og offentlige skyer
  • Overholder prinsippene for uforanderlig infrastruktur
  • Kubernetes kan kjøre bare metall på stedet, OpenStack, offentlige skyer Google, Azure, AWSOsv
  • Hjelper deg med å unngå problemer med leverandørlås, da den kan bruke alle leverandørspesifikke APIer eller tjenester, bortsett fra der Kubernetes tilbyr en abstraksjon, f.eks. lastbalansering og lagring.
  • Containerisering ved bruk av kubernetes lar pakkeprogramvare tjene disse målene. Det vil muliggjøre applikasjoner som må utgis og oppdateres uten nedetid.
  • Kubernetes lar deg forsikre deg om at de containeriserte applikasjonene kjører hvor og når du vil, og hjelper deg med å finne ressurser og verktøy som du vil fungere.

Ulemper med Kubernetes

  • Kubenetes dashbord ikke så nyttig som det burde være
  • Kubernetes er litt komplisert og unødvendig i miljøer der all utvikling skjer lokalt.
  • Sikkerhet er ikke særlig effektivt.

Oppsummering

  • Container hjelper en organisasjon med å utføre vedlikehold og oppdatering uten å avbryte tjenestene
  • Kubernetes er et eksempel på et containeradministrasjonssystem utviklet i Google-plattformen.
  • Den største fordelen med å bruke Kubernetes er at den kan kjøre lokale OpenStack, offentlige skyer Google, Azure, AWS osv.
  • Kubernetes tilbyr automatiserte planleggings- og selvhelbredende evner.
  • Cluster, master, node og navneområde er viktige grunnleggende for kubernetes
  • Masternode og arbeidsnode er viktige komponenter i Kubernetes-arkitekturen.
  • Replikeringskontrollere, replikeringssett, distribusjoner, Stateful-sett, Daemon-sett er andre viktige termer som brukes i Kubernetes.
  • Docker swarm tillater ikke automatisk skalering mens Kubernetes tillater automatisk skalering.
  • Den største ulempen med Kubenetes er at dashbordet ikke er veldig nyttig og effektivt

Daglig Guru99 nyhetsbrev

Start dagen med de siste og viktigste AI-nyhetsartiklene levert akkurat nå.