Kubernetes

Kubernetes Metrics Server

Kubernetes Metrics Server
Med et så stort og kompliceret system som Kubernetes kan overvågning ofte blive besværlig.Overvågning er altid en vanskelig forretning, fordi du på den ene side ikke vil gå glip af kritiske fejl og fejl på den anden side, og du vil ikke drukne i et hav af trivielle fejl, der udløses ikke på grund af din applikation eller påvirker det alligevel.

Med sin egen stak planlæggere og controllere kan Kubernetes gendanne fra mindre fejl, knudepunkter, der fejler, eller apps, der går ned fra deres pods. Men hvis der sker mange nedbrud, har det muligvis ikke noget med infrastrukturen at gøre, men alt at gøre med din app, som Kubernetes kan forsøge at genstarte igen og igen, men da koden er skyld, vil fejlen fortsætte og kan endda gå ubemærket hen.

Den slags fejl, der går ubemærket hen for de fleste gange, er dem, hvor apps ikke går ned, men ender med at bruge systemressourcer og skade klyngerne over al ydeevne. Dette er de særligt ubehagelige tilfælde, og Kubernetes Metrics Server kan være et nyttigt værktøj til at holde øje med dem.

Projektet er officielt en del af Kubernetes-projektet, men kommer ikke forudaktiveret i de fleste Kubernetes-certificerede distroer. Det har to vigtige dele, der er værd at diskutere Metrics API og selve Metrics Server. Men lad os først give det til vores Kubernetes (K8) klynge.

En eksperimentel Kubernetes-opsætning

Fra juli 2018 kommer Docker til Mac og Windows begge med en Kubernetes-certificeret implementering af selve K8. Gør det så nemt som at installere K8 på en Linux-distro. Du kan gå til Docker-indstillinger, og hvis Docker-forekomsten er opdateret, finder du en Kubernetes-fane i menuen. Aktivér bare Kubernetes i stedet for Docker Swarm, og du vil have en enkelt node-klynge klar og klar til eksperimenter.

Derefter har vi brug for nogle enkle sæt applikationer, der er i gang til vores brugssag. Opret en mappe kaldet Implementeringer, og inden i den skal vi oprette en nginx-implementering.yaml filer, der vil distribuere statsløse Nginx-bælg.

apiVersion: apps / v1 # til versioner før 1.9.0 brug apps / v1beta2
art: Implementering
metadata:
navn: nginx-implementering
spec:
vælger:
matchLabels:
app: nginx
replikaer: 2 # fortæller implementering at køre 2 bælg, der matcher skabelonen
skabelon:
metadata:
etiketter:
app: nginx
spec:
containere:
- navn: nginx
billede: nginx: 1.7.9
porte:
- containerPort: 80

Gem filen, og kør kommandoen i samme bibliotek, hvor denne fil er:

$ kubectl oprette -f nginx-implementering.yaml

Vi bliver muligvis nødt til at vente et par minutter for at lade Kubernetes downloade containerbillederne, klargøre containerne og lave lidt anden bogføring. Når det er gjort, kan du se listen over bælg som:

$ kubectl få bælg

Som du kan se, har vi to forekomster af bælgen, som .yaml-filen havde ordineret.

Nu hvor vi har noget at overvåge, er vi nødt til at aktivere Metrics Server. Kontroller først den version af Kubernetes, du kører. Hvis versionen er 1.8 eller derover, kører vi en anden implementering, og hvis den er 1.7 så tyr vi tilbage til arven:

$ kubectl version

Du kan få det officielle billede og komme i gang ved at klone denne GitHub-repo og derefter inde i lagerets rod køre kubectl oprette -f med det relevante .yaml afhængigt af den K8-version, du kører.

$ git klon https: // github.com / kubernetes-inkubator / metrics-server.git
 
$ cd metrics-server
# Hvis du kører version 1 af Kubernetes.8 eller højere
$ kubectl create -f deploy / 1.8 + /
# Hvis versionen er 1.7, derefter
$ kubectl create -f deploy / 1.7 /

Giv kubernetes et stykke tid til at downloade billederne og spin metrics-serveren op. Det kan tage et par minutter. Når det er gjort, er du nu klar til at køre metrics-serveren. Den grundlæggende kommando er inspireret af top kommando, der ofte køres for at overvåge et Linux-system. Men det har to varianter, en til kontrol af ressourceudnyttelse på computeren noder og for det andet at måle forbrugt ressource af de indsatte bælg og. Sådan ser du disse to detaljer:

$ kubectl øverste knude
$ kubectl top pod

Du kan se, hvor meget en pod beskatter dit system med hensyn til hukommelse eller CPU-tid, og ved hjælp af Metrics API kan du også konfigurere alarmer i henhold til.

Hvor vil det gå herfra?

De nye brugssager fra metrics serveren vil være afgørende i fremtiden for Kubernetes. Dette projekt er stadig i version 0.2.x, når den modnes og integreres i den almindelige Kubernetes-arkitektur, samler den vigtige data til planlæggeren, hvilket hjælper det med at allokere pods effektivt til noder på en meget mere effektiv måde.

Ligeledes vil Horizontal Pod Autoscaler have stor gavn af projektet og vil hjælpe dig med at skalere op eller ned, så ressourcerne bruges optimalt af applikationerne.

Referencer

  1. Nginx-implementeringer
  2. Kubernetes Metrics Server
  3. Design Docs til Metrics API kan findes her og lignende. Du kan finde oplysninger om Metrics Server her.
Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...
Top Oculus App Lab-spil
Hvis du er Oculus-headset-ejer, skal du være opmærksom på sideloading. Sideladning er processen med at installere ikke-butiksindhold på dit headset. S...
Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...