Kubernetes er den mest populære open source-software, der automatiserer containerudviklingsprocesser.
Ifølge den årlige undersøgelse fra Cloud Native Computing Foundation (CNCF) bruger 96% af organisationerne enten K8’er eller overvejer at bruge dem. Hvis du følger nøje med, bruger 5,8 millioner udviklere verden over Kubernetes, og det er 31 % af backend-udviklerne over hele kloden.
Det foretrækkes for dets evne til at udnytte teknologi gennem forbedret skalerbarhed, tilgængelighed og kort implementeringstid. Mens mange udviklere starter deres containerbane med Docker (et omfattende værktøj, der er afhængig af CLI’en til at interagere med containere, én ad gangen), giver K8s dig abstraktioner på højt niveau, så du kan definere applikationer og deres infrastruktur gennem skemaer, der du kan samarbejde om.
Hvis du er ny til Kubernetes, er denne artikel specielt skræddersyet til at hjælpe dig gennem dine introduktionsstykker og dele indsigt for at komme i gang. Du lærer, hvordan K8s kan hjælpe dig som udvikler med at superlade dine digitale produkter.
Indholdsfortegnelse
Hvad er Kubernetes, og hvorfor har du brug for det?
Kubernetes er en open source-koordinationsmotor (ramme), der bruges til at automatisere implementering, skalering og styring af containeriserede applikationer; dette omfatter håndtering af forudsigelighed og tilgængelighed.
Kort sagt, lad os tænke på en applikation, som du har containeriseret. For at betjene dine applikationsbrugere skal du køre flere containere. Bekymringen sætter ind, når du skal håndtere disse containere. Beholderne er måske ikke nødvendigvis på samme maskine, hvilket gør det mere kompliceret. Så hvad er løsningen på dette problem?
Kubernetes kommer dig til undsætning ved at tilbyde en effektiv måde at håndtere alle disse processer problemfrit på. Selvom du måske kan sammenligne K8’er med en containermotor som Docker, er det en containerorkestrator. Som udvikler, der starter, behøver du ikke bekymre dig om, hvordan K8s klarer orkestreringen. Du vil sandsynligvis ikke opsætte en K8s-klynge til din applikation; mere om dette snart.
Du vil dog interagere med klynger, som dit infrastrukturteam har oprettet. At gøre dig bekendt med de objekter, du vil interagere med, er afgørende. Men før du gør det, skal du have en forståelse på højt niveau af dens arkitektur for at forstå, hvad der sker under den.
Funktioner af Kubernetes
Kubernetes har flere funktioner med en bred vifte af muligheder til at køre containere og anden tilhørende infrastruktur. Her er en liste:
Kubernetes arkitektur
Kubernetes-arkitekturen består i sin kerne af en enkelt masterknude og to arbejdsknudepunkter. Masterknudepunktet kalder skuddene i klyngen, mens arbejderknudepunkterne (slave) kører applikationerne som bestemt af masteren.
Kilde: kubernetes.io
Her er en yderligere opdeling.
Master Node(r)
Masterknudepunktet dikterer klyngetilstandene og bestemmer hver enkelt knudes handlinger. Der kræves flere processer for at konfigurere masterknuden.
Al klyngekommunikation er baseret her. Det er gatewayen, der gør det muligt for alle klyngekomponenter at udveksle information. Det afslører Kubernetes API. Her spilles to hovedroller. Den første er et indgangspunkt, der giver brugerne mulighed for at interagere med klyngen. For eksempel at sende anmodninger, når du bruger Kubectl. For det andet gatekeeping for at godkende og validere anmodninger. I dette tilfælde kan kun visse brugere udføre anmodninger.
Planlæggeren tildeler applikationer eller Kubernetes-arbejdsbelastningsobjekter til arbejdernoden. Her placerer skemalæggeren pods på noder baseret på ressourcekrav. Og når du taler om pods, er det kun en lille enhed af udrulning i Kubernetes.
Denne enhed vedligeholder klynger som knudefejl for at opretholde det korrekte antal pods. Den registrerer klyngetilstandsændringer som f.eks. pods, der dør, og forsøger at genoprette poden til dens oprindelige tilstand. For eksempel, hvis en pod ved et uheld dør, anmoder controller-manageren planlæggeren om at ratificere, hvilken node der spinder en ny pod op som erstatning, og kubelet spinder en ny pod op.
Det kaldes også klyngehjernen. Enheden er et nøgleværdilager for klyngekonfigurationen. Det betyder, at alle klyngeændringer foretages her. Du kan sikkerhedskopiere en klynge ved at gemme det distribuerede nøgleværdilager. Bemærk dog, at kun klyngetilstandsdata gemmes her, ikke applikationsdata. Denne enhed er specielt beregnet til at opbevare klyngetilstandsinformation og bruge den til de foregående processer, der giver dem bevidsthed om klyngen.
Slaven node(r)
Hver slaveknude er installeret med tre knudepunkter, der gør det muligt for K8’er at interagere med den og separat spinne pods op i hver knude. De nødvendige processer er:
Dette er Kubernetes’ primære tjeneste, der kører eksekvering for containerudførelseslaget. Hvis du tager denne enhed ud, er Kubernetes intet andet end en REST API godkendt med et nøgleværdilager. Som standard udfører K8s containerapplikationen. Containere er altid isoleret fra hinanden og det underliggende værtssystem. Dette har vist sig at være analytisk til at frigøre individuel applikationsstyring fra hinanden og den fysiske eller virtuelle infrastruktur.
Mens API-adgangskontrollen kan afvise pods eller tilføje yderligere begrænsninger, er kubelet den endelige ratifikator af, hvilke pods der kører på en bestemt node, ikke skemalæggere eller Daemonsets. For at opsummere det, så interagerer kubelets med noden og beholderen. Det tager også konfigurationsfiler og spinder pods op ved hjælp af container runtime.
Denne sektion kører containere. For eksempel kan du bruge Docker, rkt eller conatinered lidt mere om, hvordan containere fungerer sektion.
Denne enhed leverer et abstraktionslag til node pod-grupper under almindelige politikker som tilfældet med belastningsbalancering. Alle noder anvender Kube-proxy for at give en virtuel IP-adresse til klienter, der får adgang til dynamiske pods. Denne struktur er løsningen til belastningsbalancering, mens den holder en lav ydeevne overhead.
Sådan fungerer containerisering
Containerisering indebærer virtualisering af alle de nødvendige dele af en softwareapplikation i én enhed. Under containere er en samling af biblioteker, binære filer og alle de nødvendige applikationskonfigurationer. Men de inkluderer ikke kerneressourcer eller virtualiseret hardware.
I sidste ende, eksekver ‘on top’ container runtime, der skitserer ressourcerne. Da containere kun omfatter de grundlæggende komponenter og app-afhængigheder, er de lette og dermed hurtigere, i modsætning til andre virtuelle maskiner.
Læs også: Containere vs. Virtual Machines: Explaining the Differences
Sådan installeres og konfigureres Kubernetes
Jeg har brugt så meget tid på at være teoretisk; den cascading sektion vil være taktisk og involvere noget praktisk containererfaring. Denne vejledning dækker især installation på Windows-operativsystemet.
Der er flere måder at lave installationer på, når du bruger Windows; du kan vælge kommandolinjen eller den grafiske brugergrænseflade. Du bør dog sikre dig, at du opfylder følgende påkrævede specifikationer.
Din hardware skal have en masternode med mindst 2 GB hukommelse og 700 MB til worker node. For softwarekravene, Hype-v, Docker til desktop, unik Mac-adresse og en unik produkt-UUID for hver node. Her er den trinvise tilgang.
Installation og opsætning af Hyper-V
Hyper-V er Windows standard virtualiseringssoftware. Grundlæggende er det en VirtalBox på steroider. Det giver dig mulighed for at administrere virtuelle maskiner på enten Microsoft GUI eller kommandolinje. Følg disse trin for at aktivere Hyper-V.
Lejlighedsvis kan din pc genstarte separat for at sikre, at alt er korrekt konfigureret. Du kan bekræfte installationens succes ved at indtaste følgende kommando i Power Shell.
Get-WindowsOptionalFeature -Online -Funktionsnavn Microsoft-Hyper-V
Bekræft, at din skærm er udfyldt med en “aktiveret” tilstand.
Installation af Docker
Som du har lært, er K8s et containerorkestreringsværktøj bygget oven på containere; i dette tilfælde er Docker et godt valg. K8s kommunikerer med Docker og administrerer alt på virksomhedsniveau. Kom i gang ved at downloade Docker til Windows. Hvis du undrer dig over, hvorfor det er nødvendigt at bruge Docker Desktop, foretrækkes det for at forenkle udviklingen, forsendelsen og driften af dockeriserede (containeriserede) applikationer.
Det er også den hurtigste måde at bygge Docker-apps på Windows ved hjælp af Hyper-V og netværk. Efter vellykket installation er Docker altid tilgængelig på enhver terminal, så længe den kører. For en detaljeret vejledning om installation, kan du tjekke den officielle Docker-dokumentation. Hvis du støder på problemer som skjulte ikoner efter installationen, kan problemet løses ved at genstarte din maskine.
Installation af Kubernetes
Docker GUI giver dig mulighed for at konfigurere indstillinger, installere og aktivere Kubernetes. Følg disse trin for at installere K8s.
Docker vil derefter installere nogle ekstra pakker og afhængigheder. Processen tager omkring fem til ti minutter, baseret på din internethastighed. Du kan bruge Docker-appen til at hævde, at alt fungerer korrekt.
Da Kubernetes-apps kan implementeres ved hjælp af CLI, skal du muligvis installere K8s-dashboardet, da det ikke er installeret som standard. Installer dashboardet ved at bruge følgende trin.
For at få adgang til dashboardet skal du køre følgende kommando på Power Shell (ikke CMD)
- Kopier det genererede token og kør kubectl proxy.
Hvis du har nået det her, så burde din skærm være fyldt med K8s dashboard. Nu kan du administrere dine apps uden at gøre det hårde arbejde ved at bruge CLI.
Læs også: Sådan installeres Kubernetes på Ubuntu 18
Sådan opretter og administrerer du Kubernetes Cluster
Hvis du har fulgt op her, burde du have installeret Kubernetes på din vært. Følg derefter disse trin for at oprette og udføre enkel administration på din klynge:
Selvom dette kun er et overblik over klyngenoprettelsesprocessen, involverer det mange trin, der involverer flere kommandoer. Her er den officielle dokumentationsvejledning til, hvordan du opretter klynger før implementering. Det bør være din vejledende hånd.
Sådan implementerer du din første applikation ved hjælp af Kubernetes
Den mest almindelige kommando, når du bruger K8s, er kubectl handlingsressource, som giver dig mulighed for at udføre specifikke handlinger som at oprette eller slette en specificeret ressource.
Hvis du sidder fast, kan du bruge –help efter en bestemt underkommando for at få yderligere information.
For eksempel får Kubernetes noder -hjælp. Implementer din første K8s-app ved hjælp af kommandoen kubectl create deployment Kubernetes-bootcamp –image=gcr.io/google-samples/Kubernetes-bootcamp:v1.
Afsluttende ord
Denne vejledning har været en indgang til Kubernetes-teknologi. Du har lært fordelene, funktionerne og arkitekturen ved Kubernetes. Heldigvis har du måske været nødt til at henvise til et par pointer (eksterne ressourcer) for at komme i gang; den har forklaret, hvordan tingene fungerer under motorhjelmen.
Selvom det kan virke overvældende at forstå hele tech-stakken som nybegynder, har dette indlæg været en glat guideline til at komme i gang med K8s. Du skal bruge lidt øvelse for at blive sikker på at bruge denne teknologi, så jeg henviser dig til den officielle Kubernetes-dokumentation som din side-om-side reference. Jo mere øvelse du har, jo hurtigere bliver du ekspert i K8’er.
Tjek derefter Kubernetes tutorials for begyndere at mestre.