Turėdamas savo planuoklių ir valdiklių krūvą, „Kubernetes“ gali atsigauti po nedidelių gedimų, sugedusių mazgų ar programų, sugriuvusių iš jų ankščių. Tačiau jei įvyksta daug avarijų, tai gali būti nieko bendro su infrastruktūra, bet viskas, kas susiję su jūsų programa, kurią „Kubernetes“ gali bandyti paleisti iš naujo ir vėl, tačiau kadangi kaltas kodas, gedimas išliks ir gali net nepastebėti.
Dažniausiai klaidos, kurios nepastebimos, yra tos, kur programos nesutrinka, bet galiausiai panaudoja sistemos išteklius ir kenkia grupėms dėl viso našumo. Tai ypač nemalonūs atvejai, o „Kubernetes Metrics Server“ gali būti naudinga priemonė jiems stebėti.
Šis projektas oficialiai yra „Kubernetes“ projekto dalis, tačiau daugelyje „Kubernetes“ sertifikuotų rajonų jis iš anksto neįgalintas. Jame yra dvi svarbios dalys, kurias verta aptarti „Metrics“ API ir patį „Metrics Server“. Bet pirmiausia pateikime jį savo „Kubernetes“ (K8) klasteriui.
Eksperimentinė „Kubernetes“ sąranka
Nuo 2018 m. Liepos mėn. „Docker“, skirtos „Mac“ ir „Windows“, turi „Kubernetes“ sertifikuotą paties K8 diegimą. Tai padaryti taip pat lengva, kaip įdiegti K8 „Linux“ distributore. Galite pereiti į „Docker“ nustatymus ir jei „Docker“ egzempliorius yra atnaujintas, meniu rasite „Kubernetes“ skirtuką. Tiesiog įjunkite „Kubernetes“ vietoj „Docker Swarm“ ir turėsite vieną mazgo sankaupą, kuri bus parengta eksperimentams.
Toliau mums reikia šiek tiek paprastų programų rinkinio, kuris būtų parengtas ir veiktų mūsų naudojimo atveju. Sukurkite aplanką pavadinimu „Diegimai“, o jame sukurkime nginx-dislokavimas.yaml failus, kuriuose būtų įdiegtos „Nginx“ ankštys be pilietybės.
apiVersion: programos / v1 # versijoms iki 1.9.0 naudoti programas / v1beta2natūra: dislokavimas
metaduomenys:
pavadinimas: nginx-dislokavimas
specifikacija:
selektorius:
matchLabels:
programa: „nginx“
kopijos: 2 # nurodo diegimui paleisti 2 šabloną atitinkančias dėžutes
šablonas:
metaduomenys:
etiketės:
programa: „nginx“
specifikacija:
konteineriai:
- vardas: nginx
vaizdas: nginx: 1.7.9
uostai:
- containerPort: 80
Išsaugokite failą ir tame pačiame kataloge, kuriame yra šis failas, vykdykite komandą:
$ kubectl sukurti -f nginx-dislokavimas.yamlGali tekti palaukti kelias minutes, kad „Kubernetes“ galėtų atsisiųsti konteinerio vaizdus, parūpinti konteinerius ir atlikti įvairią buhalteriją. Tai padarę, ankščių sąrašą galite pamatyti kaip:
$ kubectl gauna ankštis
Kaip matote, mes turime du podo atvejus, kaip .yaml byla buvo paskyrusi.
Dabar, kai turime ką stebėti, turime įjungti „Metrics Server“. Pirmiausia patikrinkite naudojamą „Kubernetes“ versiją. Jei versija yra 1.8 ar daugiau, tada mes vykdytume kitą diegimą ir, jei jis yra 1.7, tada grįšime prie palikimo:
$ kubectl versijaGalite gauti oficialų vaizdą ir pradėti klonuodami šią „GitHub“ atsarginę kopiją, tada saugyklos šakniniame kompiuteryje paleiskite kubectl sukurti -f su atitinkamais .yaml, priklausomai nuo jūsų vykdomos K8 versijos.
$ git klonas https: // github.com / kubernetes-inkubatorius / metrika-serveris.git$ cd metrika-serveris
# Jei naudojate „Kubernetes“ 1 versiją.8 ar daugiau
$ kubectl create -f dislokuoti / 1.8 + /
# Jei versija yra 1.Tada 7
$ kubectl create -f dislokuoti / 1.7 /
Duokite šiek tiek laiko „kubernetėms“ atsisiųsti vaizdus ir paspartinti metrikos serverį. Tai gali užtrukti kelias minutes. Tai atlikę, dabar esate pasirengę paleisti metrikos serverį. Pagrindinė komanda yra įkvėpta viršuje komanda, kuri dažnai vykdoma norint stebėti „Linux“ sistemą. Bet jis turi du variantus, kuriuos reikia patikrinti išteklių panaudojimas skaičiuojant mazgai ir antra įvertinti sunaudotas išteklius dislokuotų ankštys ir. Štai kaip pamatyti šias dvi detales:
$ kubectl viršutinis mazgas$ kubectl viršuje
Galite pamatyti, kiek „Pod“ apmokestina jūsų sistemą atminties ar procesoriaus laiko požiūriu, ir naudodamiesi „Metrics“ API galite nustatyti ir įspėjimus.
Kur jis čia eis?
Metrikos serveryje atsirandantys naudojimo atvejai bus labai svarbūs ateityje „Kubernetes“. Šis projektas vis dar yra 0 versijos.2.x, subrendęs ir integravęsis į pagrindinę „Kubernetes“ architektūrą, jis surinks svarbius duomenis tvarkaraščiui, padėdamas jam efektyviau paskirstyti mazgelius mazgams daug efektyviau.
Panašiai „Horizontal Pod Autoscaler“ turės daug naudos iš projekto ir padės jums išplėsti ar sumažinti, kad programos optimaliai naudotų išteklius.
Literatūra
- „Nginx“ diegimas
- „Kubernetes Metrics“ serveris
- „Metrics“ API dizaino dokumentus galite rasti čia, o informacijos apie „Metrics Server“ galite rasti čia.