Kubernetes

Kubernetes ReplicaSeti õpetus

Kubernetes ReplicaSeti õpetus
Kubernetes on sageli näha seda omavahel seotud mõistete tohutut kogumit, nagu sõlmed ja taskud, teenused, juurutused jne, mida on sageli raske lahti harutada. Selles postituses harutame aeglaselt lahti võtme abstraktsiooni, milleks on ReplicaSet. Alustame väikese loomisega .yaml-fail Kubernetese paki jaoks, millel oleks silt ja seejärel looge ReplicaSet, mis tagaks, et klastris töötab alati kindel arv sama sildiga pode . Seda kavandasid projekti autorid Kubernetese kujundamisel tegelikult. Nii et alustame.

Eeldused

Esimene asi, mida vajate, on juurdepääs Kubernetese klastrile. Võite selle luua Minikube'i abil või kasutada Windowsi Dockerit või Dockerit Macile, mis mõlemad on varustatud ühe sõlme Kubernetese jaotusega, mille saate lubada Dockeri seadetes.

Teil peaks olema ka a priori teadmisi Kubernetesest. Siin on tõesti hea lähtepunkt.

Kaunade loomine

Tavaliselt loome kaunad yaml-faili abil, mis määrab, millist konteineripilti kasutada, milliseid porte paljastada jne. Siin on lihtne fail nginxi podi loomiseks.

apVersioon: v1
selline: Pod
metaandmed:
nimi: nginx-1
silt:
rakendus: veebiserver
spetsifikatsioon:
konteinerid:
- nimi: nginx
pilt: nginx: 1.7.9
sadamad:
- containerPort: 80

Salvestage see nime alla nginx-pod.yaml kataloogis ja seejärel käivitage sama kataloogi sees käsk:

$ kubectl luua -f ./ nginx-pod.yaml
## Veenduge, et pakett on loodud:
$ kubectl saavad kaunad

Märkate, et ühe kauna nimega „Nginx-1” töötab ja töötab. Kuid te ei saa selle ühe kauna mõõtmeid muuta. Jooksmine kubectl luua jälle annab teile nime tõttu vea nginx-1 ei saa uuesti kasutada.

Kubernetes on andnud võimaluse luua kaunad kõrgematele abstraktsioonidele nagu Lähetused ja ReplicaSets. Mis loovad antud pod-mallist kaunad, täpsustades, milliseid pilte kasutada, milliseid porte igas uues kaustas paljastada jne, kuid ühe kauna puhul pole midagi liiga konkreetset. Seejärel jätkab ReplicaSet (ja ka juurutused) uute kaunade loomist, andes igale uuele kaunale ainulaadse nime ja ka unikaalse sildi, mis aitab ReplicaSetil jälgida antud mallist loodud kaunasid.

ReplicaSet tagab, et igal hetkel on kindel arv antud sildi kaunasid alati töökorras. Näiteks kui mõni sõlm langeb, on ReplicaSeti ülesanne luua kaotuste kompenseerimiseks rohkem sõlmi teiste sõlmede vahel. Repicaset yaml-faili kirjutamiseks järgime mustrit, mis sarnaneb kauna kirjutamisega. Sellel on api versioon (rakendused / v1), tüüp (ReplicaSet) ja nimi metaandmetes. Repliketil endal võivad olla sildid, kuid me hoiame asjad praegu lihtsaks ja paneme talle lihtsalt ainulaadse nime minu-replicaset.

Seejärel peame liikuma metaandmed sektsioon aine lihale spetsifikatsioon. Siin pakume jaotises soovitud korduste arvu koopiad. Siis anname selle ReplicaSet a valija mida kasutataks sildi sobitamiseks, ütleme näiteks, rakendus väärtusele, ütleme, veebiserver, praegu töötavate kaunade seas. Kui neid kaunu on vähem, loob see antud malli järgi kaunad ja lisab nendele uutele kaunadele sama sildi. Kui kaunu on rohkem kui vaja, kustutab see mõned.

Malli määramine, mis toimiks uute kaunade loomise alusena, on kõige rohkem seotud samm. Sellel mallil ei ole nime, kuna replicaset loob igale uuele loodud podile uue nime. Sellel on siiski sildid ja võite märgata, et sama silt app = veebiserver et mall on valitud valija parameeter replicaset spec.

apiVersion: apps / v1
liik: ReplicaSet
metaandmed:
nimi: my-replicaset
 
spetsifikatsioon:
koopiad: 3
valija:
matchSildid:
rakendus: veebiserver
mall:
metaandmed:
sildid:
rakendus: veebiserver
spetsifikatsioon:
konteinerid:
- nimi: nginx
pilt: nginx: 1.7.9
sadamad:
- containerPort: 80

Salvestage see fail nimega nginx-replicaset.yaml ja looge replicaset käsu abil:

$ kubectl luua -f nginx-replicaset.yaml

Sest me lõime varem sama sildiga kauna app = veebiserver, replicaset loob lihtsalt veel kaks kaunat. Kõigi kaunade saate loetleda käsuga:

$ kubectl saavad kaunad
NIMI VALMIS STATUS TAASALUSTAB VANUSE
my-replicaset-nmvt9 1/1 töötab 0 9s
my-replicaset-xf9mx 1/1 töötab 0 9s
nginx-1 1/1 jooksmine 0 28s

Kõigil kaunadel on seotud ainulaadne nimi. Nagu ka esimesel meie loodud kaunal oli nimi nginx-1. Võite proovida selle kustutada käsuga:

$ kubectl kustutage pod nginx-1
$ kubectl saavad kaunad
 
NIMI VALMIS STATUS TAASALUSTAB VANUSE
my-replicaset-nmvt9 1/1 Töötab 0 1m
my-replicaset-pkn4q 1/1 töötab 0 22s
my-replicaset-xf9mx 1/1 töötab 0 1m

Märkate, et peaaegu kohe lõi kontroller ReplicaSet uue podi, et asendada see, mille kustutasime. Nii tagades, et töötavate kaunade arv koos sildiga app = veebiserver on alati 3, nagu on täpsustatud meie ülaltoodud replicaset manifestis.

Tänu siltidele ja valijatele saate palju kontrolli. Saate jaotada kausid mitme sõlme vahel, kasutades nodeSelectors, mida kasutatakse teatud sõlmede eraldamiseks teatud sõlmedes.

Mida koopiad ei luba, on värskendused. Kui teie rakenduse uuem versioon on näiteks nginx: 1.8 tuleb, peate selle repliketi kustutama ja looma uue selle pildiga, mida mainitakse replicaseti yaml-manifestis. Siin tuleb kasutusele kontseptsioon juurutamisest. See hõlmab kopeerimiskomplektide ideed ja laieneb, pakkudes täiendavat tuge oma rakenduste värskendamiseks. Nüüd, kui olete paljunduskomplektidega rahul, võib olla hea mõte uurida Kubernetese juurutusi.

Viited

  1. Kaunade loomine
  2. Replikakomplektide loomine
OpenTTD vs Simutrans
Oma transpordisimulatsiooni loomine võib olla lõbus, lõõgastav ja äärmiselt köitev. Sellepärast peate endale meelepärase leidmiseks kindlasti proovima...
OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...