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: v1vrsta: 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 / v1vrsta: 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.yamlKer 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 strokeIME 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
- Ustvarjanje strokov
- Ustvarjanje kompletov ReplicaSet