Kom godt i gang med Kubernetes: En introduktion for begyndere

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.

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:

  • Automatiserede udrulninger, skalering og tilbagerulninger – K8s robotiserer at skabe dit specificerede antal replikaer, distribuere dem på tværs af passende (mest passende) hardware og omplanlægge containere, hvis en node er på nedetid. Du kan øjeblikkeligt skalere dine replikaer baseret på efterspørgslen eller skiftende behov som dit CPU-forbrug.
  • Tjenesteopdagelse, belastningsstabilisering og netværksadgang – Kubernetes tilbyder en unik netværksløsning, herunder intern serviceopdagelse og afsløring af offentlige containere.
  • Applikationer med og uden stat – I de tidlige dage fokuserede K8s hovedsageligt på statsløse containere. Efterhånden som teknologien udvikler sig på tværs af mange fronter, rummer den nu indbyggede objekter, der repræsenterer statelige applikationer. Ratificeret, enhver applikation kan køre på Kubernetes.
  • Lagerregulering – Uanset om du er på et lokalt filsystem, netværksshare eller i skyen, giver Kubernetes (abstrakt) vedvarende lagring til applikationer, der kører på containere. Og abstraktionen giver dig mulighed for at definere lagerkrav uanset den underliggende infrastruktur. Selvom det er uden for rammerne af denne artikel, fungerer den gennem principper som vedvarende volumen (PV), persistent volume claim (PVC), lagerklasser og volumen-plugins.
  • Deklarativ tilstand – K8s bruger Yet Ain’t Markup Language (YAML) filer, kaldet objektmanifester, til at specificere ønskede tilstande for din klynge. Manifesterne dikterer, hvordan din klynge ser ud, inklusive, men ikke begrænset til, de ønskede applikationsforekomster og netværksregler, blandt andre konfigurationer. Når du anvender manifester, håndterer K8s automatisk alle tilstandsovergange – du behøver ikke at skrive scripts for at gøre dette.
  • Flere arbejdsmiljøer – Du er ikke begrænset til at bruge Kubernetes i skyen eller din udviklerarbejdsstation. Næsten hver distribution er tilgængelig for at matche din specifikke brugssituation. Hold øje med de store cloud-teknologiudbydere som Amazon Web Services, Google Cloud og Microsoft Azure. Du vil indse, at de alle tilbyder administrerede Kubernetes-tjenester, mens enkeltknudedistributioner som Minikube og K3s er tilgængelige til lokal brug.
  • Super Extensivity – K8s er en samling af mange funktioner. Som om det ikke er nok, kan du accelerere dens muligheder med udvidelser. Du kan bygge brugerdefinerede objekttyper, operatører og controllere for at strømline dine arbejdsbelastninger.
  •   Hvordan kan du få din indbakke tilbage på din iPad

    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.

  • API-server
    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ægger
    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.
  • Controller Manager
    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.
  • osv
    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:

  • Kubelet
    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.
      Sådan beskytter du dit smarthome mod angreb

    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.

  • Container køretid
    Denne sektion kører containere. For eksempel kan du bruge Docker, rkt eller conatinered lidt mere om, hvordan containere fungerer sektion.
  • Kube-proxy
    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.

  • Åbn kontrolpanelet.
  • Klik på programmer fra venstre panel.
  • På siden med program og funktioner skal du klikke på `Slå Windows-funktioner til eller fra.`
  • Vælg Hyper-V og Hypervisor funktioner til Windows.
  • Vælg derefter ok i dette trin; din maskine bør genstarte for at aktivere de nye indstillinger.
  • 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.

      Sådan indtastes nul før et tal i Excel

    Installation af Kubernetes

    Docker GUI giver dig mulighed for at konfigurere indstillinger, installere og aktivere Kubernetes. Følg disse trin for at installere K8s.

  • Højreklik på Docker-bakkeikonet og vælg egenskaber.
  • Vælg “Indstillinger” fra rullemenuen efter at have klikket på “Egenskaber”.
  • I venstre panel skal du vælge ‘Kubernetes’ og klikke på ‘Anvend’.
  • 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.

  • Download YAML-konfigurationen.
  • Implementer applikationen ved hjælp af denne kode: . Kubectl anvende -f .recommended.yaml.
  • Bekræft, at alt er indstillet korrekt af: kubectl.exe get -f .recommended.yaml.txt.
  • For at få adgang til dashboardet skal du køre følgende kommando på Power Shell (ikke CMD)

  • Kør følgende kode ((kubectl -n kube-system beskriver hemmelig standard | vælg-streng “token:”) – del “+”)[1]
    • Kopier det genererede token og kør kubectl proxy.
  • Åbn dette link i din browser.
  • Klik på ‘Token’ og indsæt dit token her.
  • Log ind.
  • 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:

  • Konfigurer netværk – Her skal du konfigurere netværk mellem klynge noder; give dem mulighed for at kommunikere med hinanden.
  • Konfigurer klyngegodkendelse – Opret godkendelses- og autorisationsmekanismer for klyngeadgang.
  • Opsætning af masterkomponenter; involverer API-server, skemalægger og controllermanager.
  • Forbind arbejdernoder – Forbind arbejdernoder til klyngen ved hjælp af konfigurationsfiler, der leveres af klyngeopsætningsprocessen.
  • Implementer tilføjelser – Du kan installere udvidelser for at forbedre klyngens funktionalitet.
  • Administrer arbejdsbelastninger – Det er tid for dig at implementere dine apps.
  • 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.