Kubernetes

Kubernetes ReplicaSet apmācība

Kubernetes ReplicaSet apmācība
Kubernetes bieži tiek uzskatīts par šo milzīgo savstarpēji saistīto jēdzienu kopumu, piemēram, mezglus un pākstis, pakalpojumus, izvietojumus utt., Kurus bieži ir grūti atšķetināt. Šajā amatā lēnām atšķetināsim galveno abstrakciju, kas ir ReplicaSet. Mēs sāksim ar mazu izveidošanu .yaml fails Kubernetes pākstim, kuram būtu etiķete, un pēc tam izveidojiet ReplicaSet, kas nodrošinātu, ka klasterī vienmēr darbojas noteikts skaits pākšu ar tādu pašu etiķeti . Tas bija tas, ko projekta autori faktiski bija iecerējuši, izstrādājot Kubernetes. Tātad sāksim.

Priekšnoteikumi

Pirmā lieta, kas jums būs nepieciešama, būs piekļuve Kubernetes kopai. Varat to izveidot, izmantojot Minikube, vai izmantot Docker for Windows vai Docker for Mac, kuriem abiem tagad ir viens mezglu Kubernetes izplatījums, kuru varat iespējot Docker iestatījumos.

Jums vajadzētu būt arī a priori zināšanām par Kubernetes. Šeit ir patiešām labs sākumpunkts.

Pākšu izveidošana

Parasti mēs izveidojam pākstis, izmantojot yaml failu, kurā norādīts, kādu konteinera attēlu izmantot, kuras ostas atklāt utt. Šeit ir vienkāršs fails, lai izveidotu nginx pod.

apiVersion: v1
veids: Pod
metadati:
nosaukums: nginx-1
etiķete:
lietotne: tīmekļa serveris
spec:
konteineri:
- nosaukums: nginx
attēls: nginx: 1.7.9
ostas:
- containerPort: 80

Saglabājiet to zem nosaukuma nginx-pod.yaml direktorijā un pēc tam no tā paša direktorija palaidiet komandu:

$ kubectl izveidot -f ./ nginx-pod.yaml
## Pārbaudiet, vai pāksts ir izveidots, palaižot:
$ kubectl iegūst pākstis

Jūs ievērosiet, ka nosaukts viens pāksts “Nginx-1” ir izveidota un darbojas. Bet jūs nevarat mērogot šo vienu pāksti. Skriešana kubectl izveidot atkal radīs kļūdu kopš nosaukuma nginx-1 vairs nevar izmantot atkārtoti.

Kubernetes ir devis iespēju izveidot pākstis augstākām abstrakcijām, piemēram, Izvietošana un ReplicaSets. Kuras izveido pākstis no dotās pākšu veidnes, norādot, kādus attēlus izmantot, kādus portus atklāt katrā no jaunajām pākstīm utt., Bet nekas nav pārāk specifisks par vienu pāksti. Pēc tam ReplicaSet (un arī Izvietojumi) izveido jaunas pākstis, piešķirot katrai jaunai pākšamai unikālu nosaukumu, kā arī ne unikālu etiķeti, kas palīdz ReplicaSet sekot pākstīm, kas tika izveidotas no dotās veidnes.

ReplicaSet nodrošina, ka jebkurā brīdī ir izveidots un darbojas noteikts skaits noteiktas etiķetes pākšu. Ja, piemēram, mezgls iet uz leju, ReplicaSet uzdevums ir izveidot vairāk pākstu citos mezglos, lai kompensētu zaudējumus. Lai rakstītu replicaset yaml failu, mēs ievērosim modeli, kas līdzīgs pākšu rakstīšanai. Tam būs api versija (progr / v1), veids (ReplicaSet) un nosaukums metadatos. Uz paša replicaset var būt etiķetes, taču pagaidām mēs to darīsim vienkārši un piešķirsim tam unikālu nosaukumu my-replicaset.

Tad mums ir jāpārvietojas no metadati sadaļa matērijas gaļai spec. Šajā sadaļā mēs norādām vēlamo atkārtojumu skaitu kopijas. Tad mēs piešķiram šim ReplicaSet a selektors ko izmantotu etiķetes saskaņošanai, teiksim, lietotne uz vērtību, teiksim, tīmekļa serveris, starp pašlaik darbojas pākstis. Ja šo pākšu ir mazāk, tas izveidos pākstis atbilstoši dotajai veidnei un pievienos to pašu etiķeti šīm jaunajām pākstīm. Ja pākšu ir vairāk nekā nepieciešams, tas dažus izdzēš.

Veidnes norādīšana, kas darbotos kā pamats jaunu pākšu izveidošanai, ir visvairāk iesaistītais solis. Šai veidnei nebūs nosaukuma, jo replicaset katram jaunajam izveidotajam podam izveidos jaunu nosaukumu. Tomēr būs etiķetes, un jūs varat pamanīt, ka tā pati etiķete app = tīmekļa serveris ka veidne ir atlasīta, izmantojot selektors parametrs replicaset spec.

apiVersion: progr / v1
veids: ReplicaSet
metadati:
nosaukums: my-replicaset
 
spec:
kopijas: 3
atlasītājs:
spēles etiķetes:
lietotne: tīmekļa serveris
veidne:
metadati:
etiķetes:
lietotne: tīmekļa serveris
spec:
konteineri:
- nosaukums: nginx
attēls: nginx: 1.7.9
ostas:
- containerPort: 80

Saglabājiet šo failu kā nginx-replicaset.yaml un izveidojiet replicaset, izmantojot komandu:

$ kubectl izveidot -f nginx-replicaset.yaml

Tā kā mēs iepriekš izveidojām pāksti ar tādu pašu etiķeti app = tīmekļa serveris, kopija tikai izveidotu vēl divas pākstis. Visas komandas var uzskaitīt, izmantojot komandu:

$ kubectl iegūst pākstis
VĀRDS GATAVS STATUSS ATKĀRTOTI VECUMS
my-replicaset-nmvt9 1/1 Darbojas 0 9s
my-replicaset-xf9mx 1/1 Darbojas 0 9s
nginx-1 1/1 Darbojas 0 28s

Katrai no pākstīm būs saistīts unikāls nosaukums. Tāpat kā pašam pirmajam mūsu izveidotajam pākstim bija nosaukums nginx-1. Jūs varat mēģināt izdzēst šo, izmantojot komandu:

$ kubectl izdzēst pod nginx-1
$ kubectl iegūst pākstis
 
VĀRDS GATAVS STATUSS ATKĀRTOTI VECUMS
my-replicaset-nmvt9 1/1 Darbojas 0 1m
my-replicaset-pkn4q 1/1 Darbojas 0 22s
my-replicaset-xf9mx 1/1 Darbojas 0 1m

Jūs ievērosiet, ka kontrolieris ReplicaSet gandrīz uzreiz izveidoja jaunu pogu, lai aizstātu to, kuru mēs izdzēsām. Tādējādi nodrošinot, ka darbojas pākšu skaits ar etiķeti app = tīmekļa serveris vienmēr ir 3, kā norādīts mūsu kopiju manifestā iepriekš.

Pateicoties etiķetēm un atlasītājiem, jūs saņemat lielu kontroli. Jūs varat tālāk izplatīt pākstis vairākos mezglos, izmantojot nodeSelectors, kurus izmanto, lai piešķirtu noteiktu pākšu skaitu noteiktiem mezgliem.

Tas, ko kopijas neatļauj, ir atjauninājumi. Ja jaunāka jūsu lietotnes versija, teiksim, nginx: 1.8 nāk, jums būs jāizdzēš šis replikets un jāizveido jauns ar šo attēlu, kas minēts replicaset yaml manifestā. Šeit ir noderīga izvietošanas koncepcija. Tas ietver ideju par kopijām un paplašina, nodrošinot papildu atbalstu jūsu lietotņu atjaunināšanai. Tagad, kad jums ir ērti kopēt kopijas, var būt laba ideja izpētīt Kubernetes izvietojumus.

Atsauces

  1. Pākšu izveidošana
  2. Kopiju kopu izveide
Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...
AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...