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: v1veids: 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 / v1veids: 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.yamlTā 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ākstisVĀ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
- Pākšu izveidošana
- Kopiju kopu izveide