Kubernetes

Kubernetes ReplicaSet Vadnica

Kubernetes ReplicaSet Vadnica
Kubernetes pogosto obravnavajo kot ogromno skupino medsebojno povezanih konceptov, kot so vozlišča in pods, storitve, razmestitve itd., Ki jih je pogosto težko razvozlati. V tem prispevku počasi razkrijmo ključno abstrakcijo, ki je ReplicaSet. Začeli bomo z ustvarjanjem majhnega .yaml datoteko za Kubernetesov pod, na katerem bi bila oznaka, in nato ustvari ReplicaSet, ki bi zagotovil, da se v gruči vedno izvaja določeno število pods z isto oznako . To so dejansko nameravali avtorji projektov, ko so oblikovali Kubernetes. Začnimo torej.

Pogoji

Prva stvar, ki bi jo potrebovali, bo dostop do grozda Kubernetes. Lahko ga ustvarite z uporabo Minikube ali uporabite Docker za Windows ali Docker za Mac, ki sta zdaj na voljo z enim vozliščem Kubernetesova distribucija, ki jo lahko omogočite v nastavitvah Dockerja.

Prav tako bi morali imeti nekaj a priori znanja o Kubernetesu. Tu je res dobro izhodišče.

Ustvarjanje strokov

Običajno ustvarjamo pods z datoteko yaml, ki določa, katero sliko vsebnika uporabiti, katera vrata izpostaviti itd. Tukaj je preprosta datoteka za ustvarjanje pod nginx.

apiVersion: v1
vrsta: Pod
metapodatki:
ime: nginx-1
nalepka:
aplikacija: spletni strežnik
specifikacija:
posode:
- ime: nginx
slika: nginx: 1.7.9
vrata:
- containerPort: 80

Shranite ga pod imenom nginx-pod.yaml v imeniku in nato v istem imeniku zaženite ukaz:

$ kubectl ustvari -f ./ nginx-pod.yaml
## Preverite, ali je pod ustvarjen z zagonom:
$ kubectl dobite stroke

Opazili boste, da je en strok z imenom “Nginx-1” deluje in deluje. Ampak tega enega stroka ne morete prilagoditi. Tek kubectl ustvariti spet vam bo dal napako od imena nginx-1 ni mogoče ponovno uporabiti.

Kubernetes je dal možnost ustvarjanja strokov višjim abstrakcijam, kot je Razmestitve in ReplicaSets. Kateri ustvarijo stroke iz dane predloge stroka, ki določajo, katere slike naj se uporabijo, katera vrata naj se razkrijejo v vsakem od novih strokov itd., Vendar nič preveč natančno o enem stroku. Nato ReplicaSet (in tudi razmestitve) ustvarite nove stroke, tako da vsakemu novemu stroku daste edinstveno ime in neenotno oznako, ki ReplicaSetu pomaga slediti strokom, ki so bili ustvarjeni iz dane predloge.

ReplicaSet zagotavlja, da je v danem trenutku določeno število strokov dane nalepke vedno vklopljeno in deluje. Če na primer vozlišče pade, je naloga ReplicaSet-a, da v drugih vozliščih ustvari več podov, da nadomesti izgubo. Če želite napisati kopijo datoteke yaml, bi sledili vzorcu, podobnemu pisanju stroka. Imel bo različico api (apps / v1), tip (ReplicaSet) in ime v metapodatkih. Na samem replikasetu so lahko nalepke, vendar bomo za zdaj stvari olajšali in mu dali samo edinstveno ime my-replicaset.

Nato se moramo premakniti metapodatki oddelek za meso snovi spec. Tukaj v razdelku navedemo število ponovitev, ki jih želimo replike. Nato damo tej ReplicaSet a izbirnik ki bi se uporabil za ujemanje z oznako, recimo, app na vrednost, recimo, spletni strežnik, med trenutno delujočimi stroki. Če je teh strokov manj, bo ustvaril stroke v skladu z dano predlogo in tem novim strokom dodal isto oznako. Če je strokov več, kot je zahtevano, jih nekaj izbriše.

Določitev predloge, ki bi služila kot osnova za ustvarjanje novih strokov, je najbolj vključen korak. Ta predloga ne bo imela imena, saj bo replicaset ustvaril novo ime za vsak nov ustvarjen pod. Vendar bodo nalepke imele nalepke in opazite, da ima ista nalepka app = spletni strežnik da je predloga izbrana prek izbirnik parameter v spec. nabora replikacij.

apiVersion: apps / v1
vrsta: ReplicaSet
metapodatki:
ime: moj-replikaset
 
specifikacija:
replike: 3
izbirnik:
matchLabels:
aplikacija: spletni strežnik
predloga:
metapodatki:
nalepke:
aplikacija: spletni strežnik
specifikacija:
posode:
- ime: nginx
slika: nginx: 1.7.9
vrata:
- containerPort: 80

Shranite to datoteko kot nginx-replicaset.yaml in z ukazom ustvarite nabor kopij:

$ kubectl ustvari -f nginx-replicaset.yaml

Ker smo prej ustvarili strok z isto oznako app = spletni strežnik, replikaset bi ustvaril samo še dva pods. Vse ukaze lahko navedete z ukazom:

$ kubectl dobite stroke
IME PRIPRAVLJENO STANJE ZAVARUJE STAROST
my-replicaset-nmvt9 1/1 teče 0 9s
my-replicaset-xf9mx 1/1, ki teče 0 9s
nginx-1 1/1 Tek 0 28s

Vsak od strokov bo imel svoje edinstveno ime. Tako kot prvi pod, ki smo ga ustvarili, je imel ime nginx-1. To lahko poskusite izbrisati z ukazom:

$ kubectl izbriši pod nginx-1
$ kubectl dobite stroke
 
IME PRIPRAVLJENO STANJE ZAVARUJE STAROST
my-replicaset-nmvt9 1/1 Tek 0 1m
my-replicaset-pkn4q 1/1, ki teče 0 22s
my-replicaset-xf9mx 1/1 Tek 0 1m

Opazili boste, da je krmilnik ReplicaSet skoraj v trenutku ustvaril nov pod, ki je nadomestil tistega, ki smo ga izbrisali. Tako zagotovimo, da je število tekočih strokov z nalepko app = spletni strežnik je vedno 3, kot je določeno v našem manifestu replikaset zgoraj.

Zahvaljujoč nalepkam in izbirnikom imate veliko nadzora. Stroke lahko nadalje razširite na več vozlišč z uporabo nodeSelectors, ki se uporabljajo za dodelitev določenega števila strokov na določenih vozliščih.

Posnetki kopij ne dovoljujejo posodobitev. Če je novejša različica vaše aplikacije, recimo nginx: 1.Če pride 8, boste morali to kopijo kopij izbrisati in ustvariti novo s sliko, omenjeno v manifestu yaml replike. Tu je priročen koncept uvajanja. Vključuje idejo ponovnih naborov in razširitev z zagotavljanjem dodatne podpore za posodabljanje vaših aplikacij. Zdaj, ko ste zadovoljni z nabori replik, je morda dobro, da si ogledate razmestitve Kubernetes.

Reference

  1. Ustvarjanje strokov
  2. Ustvarjanje kompletov ReplicaSet
Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...
Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...
Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...