Kubernetes

Výukový program Kubernetes ReplicaSet

Výukový program Kubernetes ReplicaSet
Kubernetes je často považovaný za toto obrovské množstvo vzájomne prepojených konceptov, ako sú uzly a pody, služby, nasadenia atď., Ktoré je často ťažké rozmotať. V tomto príspevku pomaly rozlúštime kľúčovú abstrakciu, ktorou je ReplicaSet. Začneme vytvorením malého .yaml súbor pre pod Kubernetes, ktorý by mal štítok a potom vytvoril ReplicaSet, ktorý by zabezpečil, že v klastri bude vždy bežať určitý počet toboliek s rovnakým štítkom . To je to, čo autori projektu vlastne zamýšľali, keď navrhovali Kubernetes. Takže začnime.

Predpoklady

Prvá vec, ktorú by ste potrebovali, bude prístup do klastra Kubernetes. Môžete si ich vytvoriť pomocou Minikube alebo použiť Docker pre Windows alebo Docker pre Mac, ktoré sú teraz dodávané s jednou uzlovou distribúciou Kubernetes, ktorú môžete povoliť v nastaveniach Dockeru.

Tiež by ste potrebovali a priori znalosti o Kubernetes. Tu je skutočne dobrý východiskový bod.

Vytváranie podov

Spravidla vytvárame pody pomocou súboru yaml, ktorý určuje, aký obrázok kontajnera sa má použiť, ktoré porty majú byť vystavené atď. Tu je jednoduchý súbor na vytvorenie modulu nginx.

apiVersion: v1
druh: Pod
metadáta:
meno: nginx-1
štítok:
aplikácia: webový server
spec:
kontajnery:
- meno: nginx
obrázok: nginx: 1.7.9
prístavy:
- containerPort: 80

Uložte to pod menom nginx-pod.yaml v adresári a potom z rovnakého adresára spustite príkaz:

$ kubectl create -f ./ nginx-pod.yaml
## Overte, či je pod vytvorený spustením:
$ kubectl získať struky

Všimnete si, že bol pomenovaný jeden pod „Nginx-1“ je v prevádzke. Nemôžete však škálovať tento jediný pod. Beží kubectl vytvoriť znova sa zobrazí chyba od názvu nginx-1 nie je možné znova použiť.

Kubernetes dal možnosť vytvárať pody vyšším abstrakciám ako Nasadenia a ReplicaSets. Ktoré vytvárajú pody z danej šablóny podu, ktoré určujú, ktoré obrázky sa majú použiť, aké porty majú byť vystavené v každom z nových podov atď., Ale nič konkrétne o jednom podu. Sada ReplicaSet (a tiež nasadenia) potom pokračuje vytváraním nových podov, pričom každému novému podu dáva jedinečný názov a nejedinečný štítok, ktorý pomáha ReplicaSet sledovať pody, ktoré boli vytvorené z danej šablóny.

ReplicaSet zaisťuje, že v danom okamihu bude vždy funkčný určitý počet podov daného štítku. Ak napríklad uzol spadne, úlohou programu ReplicaSet je vytvoriť viac podov v iných uzloch, aby sa vyrovnala strata. Pri písaní súboru YAML s replikou sme postupovali podľa vzoru podobného písaniu modulu. Bude mať verziu api (aplikácie / v1), typ (ReplicaSet) a meno v metadátach. Samotná replika môže mať na sebe štítky, ale zatiaľ to zjednodušíme a iba jej dáme jedinečný názov moja-replika.

Potom sa musíme pohnúť z metadáta oddiel k mäsu z hmoty špec. Tu uvádzame počet replikácií, ktoré požadujeme v tejto časti repliky. Potom dáme tejto ReplicaSet a selektor ktoré by sa použili na priradenie štítku, povedzme, aplikácia na hodnotu, povedzme, webový server, medzi momentálne bežiacimi modulmi. Ak je týchto podov menej, vytvorí sa pody podľa danej šablóny a k týmto novým podom sa pridá rovnaký štítok. Ak existuje viac toboliek, ako je požadované, niekoľko z nich sa odstráni.

Najdôležitejším krokom je zadanie šablóny, ktorá by slúžila ako základ pre vytváranie nových podov. Táto šablóna nebude mať názov, pretože replikaset vytvorí nový názov pre každý nový vytvorený pod. Vôľa bude mať štítky a môžete si všimnúť, že rovnaký štítok app = webserver šablóna je vybraná cez selektor parameter v špecifikácii repliky.

apiVersion: apps / v1
druh: ReplicaSet
metadáta:
meno: moja-replicaset
 
spec:
repliky: 3
selektor:
matchLabels:
aplikácia: webový server
šablóna:
metadáta:
štítky:
aplikácia: webový server
spec:
kontajnery:
- meno: nginx
obrázok: nginx: 1.7.9
prístavy:
- containerPort: 80

Uložte tento súbor ako nginx-replicaset.yaml a vytvorte repliku pomocou príkazu:

$ kubectl create -f nginx-replicaset.yaml

Pretože sme predtým vytvorili pod s rovnakým štítkom app = webserver, replicaset by len vytvoril ďalšie dva pody. Všetky pody môžete vypísať pomocou príkazu:

$ kubectl získať struky
STAV NÁZOV PRIPRAVENÝ NARODENÝ VEK
my-replicaset-nmvt9 1/1 Beh 0 9 s
my-replicaset-xf9mx 1/1 Beh 0 9 s
nginx-1 1/1 Beh 0 28s

Každý z podov bude mať jedinečný názov. Ako úplne prvý pod, ktorý sme vytvorili, mal názov nginx-1. Môžete skúsiť vymazať tento pomocou príkazu:

$ kubectl vymazať pod nginx-1
$ kubectl získať struky
 
STAV NÁZOV PRIPRAVENÝ NARODENÝ VEK
my-replicaset-nmvt9 1/1 Beh 0 1m
my-replicaset-pkn4q 1/1 Beh 0 22 s
my-replicaset-xf9mx 1/1 Beh 0 1m

Všimnete si, že ovládač ReplicaSet takmer okamžite vytvoril nový pod, ktorý nahradil ten, ktorý sme vymazali. Tým sa zabezpečí, že počet bežiacich podov, s označením app = webserver je vždy 3, ako je uvedené v našom manifeste repliky vyššie.

Vďaka štítkom a selektorom získate veľkú kontrolu. Lusky môžete ďalej rozložiť na viac uzlov pomocou nodeSelectors, ktoré sa používajú na pridelenie určitého počtu toboliek na určité uzly.

Čo však replikačné sady neumožňujú, sú aktualizácie. Ak máte novšiu verziu svojej aplikácie, povedzme nginx: 1.8 príde, budete musieť odstrániť túto repliku a vytvoriť novú s tým obrázkom uvedeným v manifeste yaml repliky. Tu prichádza vhod koncept nasadenia. Zahŕňa myšlienku replík a rozširuje sa o ďalšiu podporu pri aktualizácii vašich aplikácií. Teraz, keď vám vyhovujú repliky, môže byť dobrý nápad pozrieť sa do nasadení Kubernetes.

Referencie

  1. Vytváranie podov
  2. Vytváranie replík
Hry Najlepšie hry na hranie s ručným sledovaním
Najlepšie hry na hranie s ručným sledovaním
Oculus Quest nedávno predstavil skvelú myšlienku ručného sledovania bez ovládačov. Vďaka stále sa zvyšujúcemu počtu hier a aktivít, ktoré vykonávajú p...
Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...
Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...