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: v1selline: 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 / v1liik: 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.yamlSest me lõime varem sama sildiga kauna app = veebiserver, replicaset loob lihtsalt veel kaks kaunat. Kõigi kaunade saate loetleda käsuga:
$ kubectl saavad kaunadNIMI 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
- Kaunade loomine
- Replikakomplektide loomine