Kubernetes

Kubernetes Metrics Server

Kubernetes Metrics Server
Med ett så stort och komplicerat system som Kubernetes kan övervakning ofta bli besvärligt.Övervakning är alltid ett knepigt företag eftersom du å ena sidan inte vill missa kritiska buggar och misslyckanden å andra sidan du inte vill drunkna i ett hav av triviala fel som utlöses inte på grund av din ansökan eller påverkar det i alla fall.

Med sin egen stack med schemaläggare och kontroller kan Kubernetes återhämta sig från mindre fel, noder som misslyckas eller appar som kraschar inifrån sina pods. Men om många kraschar inträffar kan det inte ha något att göra med infrastrukturen utan allt att göra med din app som Kubernetes kan försöka starta om och om igen, men eftersom koden är fel kommer felet att kvarstå och kan till och med gå obemärkt förbi.

Den typ av buggar som går obemärkt för det mesta är de där appar inte kraschar utan hamnar över att använda systemresurser och skada klusterna över all prestanda. Det här är de särskilt otäcka fallen och Kubernetes Metrics Server kan vara ett användbart verktyg för att hålla ett öga på dem.

Projektet är officiellt en del av Kubernetes-projektet men kommer inte föraktiverat i de flesta Kubernetes-certifierade distributioner. Det har två viktiga delar som är värda att diskutera Metrics API och själva Metrics Server. Men låt oss först tillhandahålla det i vårt Kubernetes (K8) -kluster.

En experimentell Kubernetes-installation

Från och med juli 2018 kommer Docker för Mac och Windows båda med en Kubernetes-certifierad implementering av själva K8. Gör det lika enkelt som att installera K8 på en Linux-distro. Du kan gå till Docker-inställningar och om Docker-instansen är uppdaterad hittar du en Kubernetes-flik i menyn. Aktivera bara Kubernetes istället för Docker Swarm så har du ett enda nodkluster igång redo för experiment.

Därefter behöver vi några enkla uppsättningar av applikationer som är igång för vårt användningsfall. Skapa en mapp som heter Deployments och inuti den skapar vi en nginx-distribution.yaml filer som skulle distribuera statslösa Nginx-pods.

apiVersion: apps / v1 # för versioner före 1.9.0 använder appar / v1beta2
typ: Implementering
metadata:
namn: nginx-distribution
spec:
väljare:
matchLabels:
app: nginx
repliker: 2 # berättar för distribution att köra två skivor som matchar mallen
mall:
metadata:
etiketter:
app: nginx
spec:
behållare:
- namn: nginx
bild: nginx: 1.7.9
hamnar:
- containerPort: 80

Spara filen och kör samma kommando i samma katalog som den här filen är:

$ kubectl skapa -f nginx-distribution.yaml

Vi kan behöva vänta några minuter för att låta Kubernetes ladda ner containerbilderna, tillhandahålla behållarna och göra lite annan bokföring. När det är klart kan du se listan med skida som:

$ kubectl få skida

Som du kan se har vi två instanser av skivan, som .yaml-filen hade föreskrivit.

Nu när vi har något att övervaka måste vi aktivera Metrics Server. Kontrollera först vilken version av Kubernetes du kör. Om versionen är 1.8 eller högre skulle vi köra en annan distribution och om den är 1.7 sedan återvänder vi till arvet:

$ kubectl version

Du kan få den officiella bilden och komma igång genom att klona denna GitHub-repo och sedan kör in i förvarets rot kubectl skapa -f med lämpligt .yaml beroende på vilken K8-version du kör.

$ git-klon https: // github.com / kubernetes-inkubator / metrics-server.git
 
$ cd metrics-server
# Om du kör version 1 av Kubernetes.8 eller högre
$ kubectl skapa -f distribuera / 1.8 + /
# Om versionen är 1.7, då
$ kubectl skapa -f distribuera / 1.7 /

Ge kubernetes ett tag att ladda ner bilderna och snurra upp mätningsservern. Det kan ta några minuter. När det är klart är du nu redo att köra mätningsservern. Grundkommandot är inspirerat av topp kommando som ofta körs för att övervaka ett Linux-system. Men det har två varianter en för att kontrollera resursanvändning på beräkningen knutpunkter och andra för att mäta förbrukad resurs av de utplacerade skida och den. Så här ser du dessa två detaljer:

$ kubectl toppnod
$ kubectl toppod

Du kan se hur mycket en pod beskattar ditt system när det gäller minne eller CPU-tid och med hjälp av Metrics API kan du också ställa in varningar enligt.

Vart kommer det att gå härifrån??

De nya användningsfallen från mätarservern kommer att bli avgörande i framtiden för Kubernetes. Detta projekt finns fortfarande i version 0.2.x, när den mognar och integreras i den vanliga Kubernetes-arkitekturen kommer den att samla in viktig data för schemaläggaren, vilket hjälper den att tilldela pods effektivt till noder på ett mycket mer effektivt sätt.

På samma sätt kommer Horizontal Pod Autoscaler att dra stor nytta av projektet och hjälper dig att skala upp eller skala ner så att resurserna används optimalt av applikationerna.

Referenser

  1. Nginx-implementeringar
  2. Kubernetes Metrics Server
  3. Design Docs för Metrics API hittar du här och liknande. Du kan hitta information om Metrics Server här.
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...