Hørte meget om Kubernetes, men er ikke sikker på, hvad de er?
Contents
Hvad er Kubernetes?
Kubernetes er et open source værktøj, der tager sig af containerorkestrering. Det automatiserer containerdistribution, kontinuerlig skalering og afskalering, containerbelastningsafbalancering osv.
Google har oprindeligt udviklet Kubernetes på Go programmeringssprog.
I øjeblikket er det markedsleder inden for orkestrering af containere. Kubernetes er en ideel platform til hosting af mikroserviceapplikationer, der skalerer dynamisk. Når du arbejder på et produktionsmiljø, er Kubernetes den mest foretrukne og sikrere platform til containerorkestrering.
Fordi du i et produktionsmiljø forventer du nul nedetid, skal din klynge altid være i gang.
Med Google Cloud Platform (GCP) kan du starte Kubernetes med få klik. Det understøttes af andre cloud-udbydere, også som AWS og Azure. Og der er flere administrerede Kubernetes-platforme tilgængelige.
Hvorfor Kubernetes?
Tidligere var en kamp mellem udviklere og testere en almindelig ting.
Miljøerne plejede at være forskellige for dem; hvad der fungerede på udviklerens system kørte ikke på testersystemet.
Nu hvor de fleste organisationer bruger containere, opstår de problemer, der vises på grund af forskelle i miljøet, ikke længere.
Men at organisere og køre flere containere er heller ikke en let opgave. Når du arbejder på dynamiske applikationer og skalerer op / ned, er antallet af containere en regelmæssig ting. At udføre sådanne opgaver manuelt kan være kompliceret og risikabelt. Derfor kræves et containerorkestreringsværktøj, og det er derfor, Kubernetes er nødvendigt.
Kubernetes-funktioner
Der er masser, men følgende er nogle af de bedste.
# Automatisk emballering af skraldespand
Kubernetes pakker din applikation, og den placerer automatisk containere baseret på deres krav og de tilgængelige ressourcer
# Serviceopdagelse og belastningsbalancering
Kubernetes tildeler containere automatisk deres IP-adresser og et DNS-navn til containerne, der kører logiske operationer. Load Balancing-funktion er også til stede mellem sæt containere.
# Opbevaring Orkestrering
Kubernetes monterer automatisk det valgte lagringssystem. Det kan enten være lokal opbevaring eller en offentlig skyudbyder som AWS.
# Selvheling
Hver gang Kubernetes indser, at en af dine containere er slået fejl, vil den genstarte den beholder på egen hånd også oprette en ny container i stedet for den nedbrudte. I tilfælde af at din node mislykkes, vil containerne, der kører på den knude, komme i gang på en anden kørende knude i klyngen.
# Vandret skalering
Du kan skalere dine applikationer hurtigt op og ned med en simpel kommando. Den enkle kommando kan køres på CLI eller gennem Kubernetes instrumentbræt. Automatisk skalering er også mulig, baseret på CPU-brug, vil dine containere automatisk blive opskaleret eller skaleret ned.
# Automatisk tilbagestilling og udrulning
Hver gang der er en opdatering til din applikation, ruller Kubernetes gradvist disse ændringer og opdateringer til applikationen eller dens konfigurationer. Ikke alle tilfælde opdateres på samme tid, hvilket sikrer, at der er stor tilgængelighed. Hvis noget går galt, vil Kubernetes rulle tilbage, der ændrer sig straks.
Kubernetes terminologier
Før du får dine hænder beskidte, skal du kende et par terminologier, der bruges i Kubernetes regelmæssigt.
# Pod
Det repræsenterer en eller flere containere, der kører i en klynge.
# Service
En abstrakt måde at få adgang til pod / applikation.
Det bruges til at fjerne navnekollision i en klynge. Det understøtter flere virtuelle klynger på den samme fysiske klynge.
# Knudepunkt
Kubernetes arbejdsmaskine.
# Klynge
Består af en gruppe noder, der kører containeret applikationer på Kubernetes.
# Annotation
En etiket til lagring af data krævet af ressourcer.
# Volumen
Det er datakataloget, der er i pod-adgang.
# ReplicaSet
Flere kopier af løbende bælg.
# Etiket
At give et navn til Kubernetes-objekter, så de kan identificeres på tværs af systemet.
# Kubelet
Det er en agent, der kører på hver knude og kontrollerer, om containerne kører i bælterne.
# Kubectl
Kommandolinjeprogram til at interagere med Kubernetes API-serveren.
# Kube-proxy
Netværksproxy, der indeholder alle netværksregler på hver knude i klyngen.
Kubernetes og Docker
Nu tænker du måske, hvordan Kubernetes er anderledes end Docker. Udtrykket Kubernetes vs. Docker kan være vildledende.
Docker er en platform, der pakker OS, biblioteker og applikationer inde i en container. Lad mig fortælle dig, at Docker gør det samme, som det er beregnet til at gøre i Kubernetes. Men når du arbejder med bare Docker, er alt manuelt. Du skal starte og stoppe containere manuelt. Men med Kubernetes bliver alt automatisk.
Kubernetes kan planlægge bælg, der har containere, Kubelet fortæller derefter Docker at starte eller stoppe containere. Kubelet i Kubernetes er ansvarlig for at overvåge disse containere og indsamle deres oplysninger om masternoden. Så den grundlæggende forskel er i stedet for at admin fyre fortæller Docker hvad de skal gøre, i Kubernetes, det hele er automatiseret.
Der er et andet værktøj, der bruges til containerorkestrering, er Docker Swarm. Så hvad er forskellen mellem dem?
Kubernetes vs. Docker Swarm
Kubernetes | Docker Swarm |
Installation er kompleks | Installation er enkel |
Større Open source-community | Mindre samfund sammenlignet med Kubernetes |
Kan nemt orkestrere 100s containere | God til orkestrering af 10-20 containere |
Kubernetes Dashboard leverer GUI | Intet GUI |
Understøtter automatisk skalering | Understøtter ikke automatisk skalering |
Understøtter rullende opdateringer med automatisk rollback | Understøtter rullende opdateringer, men ikke automatisk rollback |
Logning og overvågning tilgængelig indbygget | Har brug for 3. part som ELK til logning og overvågning |
Kan dele volumen med containere i samme pod | Kan dele lydstyrken med enhver beholder i klyngen |
Konklusion
Jeg håber, at du nu har en grundlæggende forståelse af, hvad der er Kubernetes, og hvordan det hjælper. Hvis du går ind i DevOps eller tænker at komme ind, så vil jeg foreslå at tage dette fantastisk Udemy-kursus for at lære Kubernetes.