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:
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