Kubernetes

Kubernetes Metrics Server

Kubernetes Metrics Server
Med et så stort og komplisert system som Kubernetes, kan overvåking ofte bli plagsom.Overvåking er alltid en vanskelig virksomhet fordi du på den ene siden ikke vil gå glipp av kritiske feil og feil, på den andre siden vil du ikke drukne i et hav av trivielle feil som utløses, ikke på grunn av søknaden din eller påvirker den det inn uansett.

Med sin egen bunke med planleggere og kontrollere, kan Kubernetes gjenopprette fra mindre feil, noder som mislykkes eller apper som krasjer fra podene sine. Men hvis det oppstår mange krasjer, kan det ikke ha noe å gjøre med infrastrukturen, men alt å gjøre med appen din, som Kubernetes kan prøve å starte på nytt om og om igjen, men siden koden er feil, vil feilen vedvare og til og med gå ubemerket.

Den typen feil som ikke blir lagt merke til de fleste ganger, er de der apper ikke krasjer, men ender med å bruke systemressurser og skade klyngene over all ytelse. Dette er de spesielt stygge tilfellene, og Kubernetes Metrics Server kan være et nyttig verktøy for å holde et øye med dem.

Prosjektet er offisielt en del av Kubernetes-prosjektet, men kommer ikke forhåndsaktivert i de fleste Kubernetes-sertifiserte distribusjoner. Den har to viktige deler som er verdt å diskutere Metrics API og selve Metrics Server. Men la oss først klargjøre det på Kubernetes (K8) -klyngen.

Et eksperimentelt Kubernetes-oppsett

Fra og med juli 2018 kommer Docker for Mac og Windows begge med en Kubernetes-sertifisert implementering av selve K8. Gjør det så enkelt som å installere K8 på en Linux-distro. Du kan gå til Docker-innstillinger, og hvis Docker-forekomsten er oppdatert, finner du en Kubernetes-fane i menyen. Bare aktiver Kubernetes i stedet for Docker Swarm, og du vil ha en enkelt nodeklynge klar og klar for eksperimenter.

Deretter trenger vi noen enkle applikasjoner som er i gang for brukssaken. Lag en mappe som heter Deployments, og la oss lage en i den nginx-distribusjon.yaml filer som vil distribuere statsløse Nginx-pods.

apiVersion: apps / v1 # for versjoner før 1.9.0 bruker apper / v1beta2
snill: Implementering
metadata:
navn: nginx-distribusjon
spesifikasjon:
velger:
matchLabels:
app: nginx
replikaer: 2 # forteller distribusjon å kjøre 2 pods som samsvarer med malen
mal:
metadata:
etiketter:
app: nginx
spesifikasjon:
containere:
- navn: nginx
bilde: nginx: 1.7.9
porter:
- containerPort: 80

Lagre filen, og kjør kommandoen i samme katalog som denne filen er:

$ kubectl oppretter -f nginx-distribusjon.yaml

Vi må kanskje vente noen minutter på å la Kubernetes laste ned containerbildene, klargjøre containerne og gjøre litt annen bokføring. Når det er gjort kan du se listen over bøtter som:

$ kubectl få pods

Som du kan se, har vi to forekomster av pod, som .yaml-filen hadde foreskrevet.

Nå som vi har noe å overvåke, må vi aktivere Metrics Server. Sjekk først versjonen av Kubernetes du kjører. Hvis versjonen er 1.8 eller over vil vi kjøre en annen distribusjon, og hvis den er 1.7 så tyr vi tilbake til arven:

$ kubectl versjon

Du kan få det offisielle bildet og komme i gang ved å klone denne GitHub-repoen, og deretter kjører du inn i depotets rot kubectl create -f med det aktuelle .yaml avhengig av K8-versjonen du kjører.

$ git klon https: // github.no / kubernetes-inkubator / metrics-server.git
 
$ cd metrics-server
# Hvis du kjører Kubernetes versjon 1.8 eller høyere
$ kubectl create -f deploy / 1.8 + /
# Hvis versjonen er 1.7, da
$ kubectl create -f deploy / 1.7 /

Gi kubernetes en stund til å laste ned bildene og snurre opp beregningsserveren. Det kan ta noen minutter. Når det er gjort, er du nå klar til å kjøre beregningsserveren. Den grunnleggende kommandoen er inspirert av topp kommando som ofte kjøres for å overvåke et Linux-system. Men den har to varianter en for å sjekke ressursutnyttelse på beregningen noder og andre for å måle ressursforbruk av de utplasserte belger og. Slik ser du disse to detaljene:

$ kubectl toppnode
$ kubectl topp pod

Du kan se hvor mye en pod beskatter systemet når det gjelder minne eller CPU-tid, og ved hjelp av Metrics API kan du også konfigurere varsler i henhold til.

Hvor vil det gå herfra?

De nye brukssakene fra beregningsserveren kommer til å være avgjørende i fremtiden til Kubernetes. Dette prosjektet er fortsatt i versjon 0.2.x, når den modnes og blir integrert i den vanlige Kubernetes-arkitekturen, samler den viktige data for planleggeren, og hjelper den med å tildele puter til noder på en mye mer effektiv måte.

Tilsvarende vil Horizontal Pod Autoscaler ha stor nytte av prosjektet og vil hjelpe deg med å skalere opp eller ned, slik at ressursene brukes optimalt av applikasjonene.

Referanser

  1. Nginx-implementeringer
  2. Kubernetes Metrics Server
  3. Design Docs for Metrics API finner du her og lignende. Du finner informasjon om Metrics Server her.
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...
Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...