Kubernetes

Vodič za Kubernetesov replikat

Vodič za Kubernetesov replikat
Kubernetes se često doživljava kao ovo ogromno tijelo međusobno povezanih koncepata poput čvorova i mahuna, usluga, postavljanja itd. Koje je često teško raspetljati. U ovom postu, razotkrijmo polako ključnu apstrakciju koja je ReplicaSet. Započet ćemo stvaranjem malog .yaml datoteku za Kubernetesovu mahunu, koja bi imala oznaku, a zatim stvorila ReplicaSet koja bi osigurala da se određeni broj mahuna s istom oznakom uvijek izvodi u klasteru . To su autori projekata zapravo i namjeravali dok su dizajnirali Kubernetes. Pa krenimo.

Preduvjeti

Prvo što bi vam trebao bit će pristup Kubernetesovom klasteru. Možete ga stvoriti pomoću Minikubea ili koristiti Docker za Windows ili Docker za Mac, a oba se sada isporučuju s jednim čvorom Kubernetesove distribucije koju možete omogućiti u Dockerovim postavkama.

Morali biste imati i neko apriorno znanje o Kubernetesu. Ovdje je stvarno dobro polazište.

Stvaranje mahuna

Tipično stvaramo mahune pomoću yaml datoteke koja određuje koju sliku spremnika koristiti, koje portove izložiti itd. Evo jednostavne datoteke za stvaranje nginx mahune.

apiVersion: v1
vrsta: Pod
metapodaci:
naziv: nginx-1
označiti:
aplikacija: web poslužitelj
specifikacija:
spremnici:
- naziv: nginx
slika: nginx: 1.7.9
luke:
- containerPort: 80

Spremite ga pod imenom nginx-pod.yaml u direktoriju, a zatim iz istog direktorija pokrenite naredbu:

$ kubectl stvori -f ./ nginx-pod.yaml
## Potvrdite da je mahuna kreirana izvođenjem:
$ kubectl dobiti mahune

Primijetit ćete da je jedna mahuna nazvana "Nginx-1" je pokrenut i pokrenut. Ali ne možete skalirati ovu jednu mahunu. Trčanje kubectl stvoriti opet će vam dati pogrešku od naziva nginx-1 ne može se ponovno upotrijebiti.

Kubernetes je dao mogućnost stvaranja mahuna višim apstrakcijama poput Raspoređivanja i ReplicaSets. Koji stvaraju mahune iz datog predloška mahune, navodeći koje slike koristiti, koje portove izlagati u svakom od novih mahuna, itd., Ali ništa previše specifično o jednom grahu. ReplicaSet (i implementacije, također) kreću u stvaranje novih mahuna, dajući svakom novom mahuni jedinstveno ime, kao i nejedinstvenu naljepnicu koja pomaže ReplicaSetu da prati mahune stvorene iz zadanog predloška.

ReplicaSet osigurava da u bilo kojem trenutku određeni broj mahuna određene naljepnice uvijek radi i radi. Ako se, na primjer, čvor sruši, posao je ReplicaSet-a stvoriti više mahuna na drugim čvorovima kako bi nadoknadio gubitak. Da bismo napisali replicaset yaml datoteku, slijedili bismo obrazac sličan pisanju mahune. Imat će api verziju (apps / v1), tip (ReplicaSet) i ime u metapodacima. Na samom replikasetu mogu biti naljepnice, ali zasad ćemo pojednostaviti i dati mu jedinstveno ime moj-replikaset.

Tada trebamo premjestiti iz metapodaci odjeljak na meso materije spec. Ovdje pružamo broj replikacija koji želimo u odjeljku replike. Tada ovom ReplicaSetu dajemo a selektor koji bi se koristio za podudaranje s etiketom, recimo, app na vrijednost, recimo, web poslužitelj, među trenutno pokrenutim mahunama. Ako je tih mahuna manje, stvorit će mahune prema zadanom predlošku i dodati istu oznaku tim novim mahunama. Ako ima više mahuna nego što je potrebno, tada ih se briše.

Najčešći korak je određivanje predloška koji će služiti kao osnova za stvaranje novih mahuna. Ovaj predložak neće imati ime, jer će replicaset stvoriti novo ime za svaki novi stvoreni mahuna. Međutim, na oznaci će biti naljepnice i primijetit ćete da je na istoj naljepnici app = web poslužitelj koji je predložak odabran putem selektor parametar u specifikaciji replikata.

apiVersion: apps / v1
vrsta: ReplicaSet
metapodaci:
ime: moj-replikaset
 
specifikacija:
replike: 3
selektor:
matchLabels:
aplikacija: web poslužitelj
predložak:
metapodaci:
oznake:
aplikacija: web poslužitelj
specifikacija:
spremnici:
- naziv: nginx
slika: nginx: 1.7.9
luke:
- containerPort: 80

Spremite ovu datoteku kao nginx-replicaset.yaml i stvorite replikaset pomoću naredbe:

$ kubectl create -f nginx-replicaset.yaml

Budući da smo prethodno stvorili mahunu s istom oznakom app = web poslužitelj, replikaset bi samo stvorio još dvije mahune. Pomoću naredbe možete navesti sve mahune:

$ kubectl dobiti mahune
IME SPREMNI STATUS VRAĆA DOBU
my-replicaset-nmvt9 1/1 Trčanje 0 9s
my-replicaset-xf9mx 1/1 Trčanje 0 9s
nginx-1 1/1 Trčanje 0 28s

Svaka mahuna imat će svoje jedinstveno ime. Kao i prva mahuna koju smo stvorili imala je ime nginx-1. Možete pokušati izbrisati ovaj pomoću naredbe:

$ kubectl izbriši pod nginx-1
$ kubectl dobiti mahune
 
IME SPREMNI STATUS VRAĆA DOBU
my-replicaset-nmvt9 1/1 Trčanje 0 1m
my-replicaset-pkn4q 1/1 Trčanje 0 22s
my-replicaset-xf9mx 1/1 Trčanje 0 1m

Primijetit ćete da je gotovo trenutno kontroler ReplicaSet stvorio novu mahunu koja zamjenjuje onu koju smo izbrisali. Na taj način osiguravajući da se broj izvodi mahuna s naljepnicom app = web poslužitelj je uvijek 3, kako je navedeno u našem manifestu replicaseta, gore.

Dobivate veliku kontrolu zahvaljujući naljepnicama i selektorima. Dijelove možete dalje širiti na više čvorova pomoću nodeSelectors, koji se koriste za dodjelu određenog broja mahuna na određenim čvorovima.

Ono što replikaseti ne dopuštaju su ažuriranja. Ako je novija verzija vaše aplikacije, recimo, nginx: 1.8 dođe, morat ćete izbrisati ovaj replikaset i stvoriti novi s tom slikom spomenutom u yaml manifestu replikaseta. Tu dobro dolazi koncept implementacije. Uključuje ideju replikacija i proširuje pružanjem dodatne podrške za ažuriranje vaših aplikacija. Sad kad vam se sviđaju replike, možda bi bilo dobro pogledati Kubernetesove implementacije.

Reference

  1. Stvaranje mahuna
  2. Izrada ReplicaSetova
Kako promijeniti pokazivač miša i veličinu, boju i shemu pokazivača na sustavu Windows 10
Pokazivač i pokazivač miša u sustavu Windows 10 vrlo su važni aspekti operativnog sustava. To se može reći i za druge operativne sustave, tako da u is...
Besplatni i otvoreni kodni pokretački programi za razvoj Linux igara
Ovaj će članak pokriti popis besplatnih i open source pokretačkih igara koje se mogu koristiti za razvoj 2D i 3D igara na Linuxu. Brojni su takvi moto...
Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...