Kubernetes

Rakenduste juurutamine Kubernetes klastritesse

Rakenduste juurutamine Kubernetes klastritesse

Eelmises artiklis juurutasime Kubernetese klastri koos ühe põhi- ja ühe töösõlmega. Kubernetese klastrid on peamiselt seotud kahe asjaga; Sõlmed ja kaunad. Kaunad on konteinerirakendused, mille soovite klastrisse juurutada, ja sõlmed on üksikud arvutiserverid, mis vastutavad kas klastri haldamise või rakenduste käitamise eest. Asja lihtsustamiseks alustame kodakondsuseta rakendusega ja tutvustame erinevaid mõisteid, nagu sildid ja selektorid, mida kasutatakse kaunade omavahel sidumiseks.

On ka teisi olulisi mõisteid, nagu koopiakomplektid, teenused ja juurutused, mida me selles artiklis õpime.


Traditsiooniline rakenduse juurutamine

Kui vaatate veebirakenduse juurutamiseks traditsioonilist lähenemisviisi, peaksite mastaapsus olema midagi, mida peaksite enne alustamist kaaluma. Kui vajate veebi kasutajaliidest eraldatud andmebaasi, on parem seda teha kohe, mitte hiljem. Kas kavatsete käitada mitut veebirakendust?? Pöördproksiserveri parem konfigureerimine eelnevalt.

Kubernetesega on lähenemine muutunud. Juurutamist saab teha praeguseid vajadusi silmas pidades ja see võib hiljem olla teie ettevõtte kasvades ulatuslik. Konteinerites saate eraldada oma veebiteenuste olulised komponendid, isegi kui need töötavad ühes sõlmes. Hiljem horisontaalselt skaleerides (see tähendab, et lisate oma keskkonda rohkem servereid) peate lihtsalt keerama rohkem konteinereid ja Kubernetes ajastab selle teile sobivatesse sõlmedesse.  Pööratud puhverserver? Selle probleemi lahendamiseks tuleksid Kubernetese teenused.


Kaunad

Esimese sammuna keerutame kauna üles. Selleks vajame YAML-faili, mis määratleks podi erinevad atribuudid.

apVersioon: v1
selline: Pod
metaandmed:
nimi: nginx
spetsifikatsioon:
konteinerid:
- nimi: nginx
pilt: nginx: 1.7.9
sadamad:
- containerPort: 80

Lisage ülaltoodud sisu punktile a kaun.yaml fail ja salvestage see. Ülaltoodud teksti vaadates näete, et lahke meie loodava ressursi a kaun. Panime sellele nimeks nginx, ja pilt on nginx: 1.7.9 mis tähendab vaikimisi, et Kubernetes tõmbab Dockeri jaoturi avalikult saadaolevatelt piltidelt sobiva nginx-pildi.

Suuremahulistes organisatsioonides on K8 sageli konfigureeritud osutama privaatsele registrile, kust ta saab tõmmata sobivad konteineripildid.

Pod-jooksu alustamiseks:

$ kubectl create -f pod.yaml

Kaardile ei pääse väljaspool klastrit. Seda pole veel paljastatud ja see eksisteerib ainult üksiku kaunana. Selle tõelise juurutamise tagamiseks käivitage:

$ kubectl saavad kaunad

Nimega kaunast vabanemiseks nginx, käivitage käsk:

$ kubectl kustutage pod nginx

Lähetused

Ainult ühe toimiva kausta saamine ei ole Kubernetese mõte, ideaalis on see, mida soovime, kui mitu kauba koopiat, mis on sageli planeeritud erinevatele sõlmedele, nii et kui üks või mitu sõlme ebaõnnestuvad, on ülejäänud kaared endiselt olemas lisakoormust.

Pealegi peaks meil arenduse seisukohast olema mingi viis tarkvara uuema versiooniga kaunade levitamiseks ja vanemate kaunade uinumiseks. Juhul, kui on probleem uuema kaunaga, saame selle tagasi keerata, tuues vanemad kaunad tagasi ja kustutades ebaõnnestunud versiooni. Lähetused võimaldavad meil seda teha.

Järgmine on väga levinud viis juurutamise määratlemiseks:

apiVersion: apps / v1beta1
liik: juurutamine
metaandmed:
nimi: nginx-juurutamine
spetsifikatsioon:
koopiad: 2
mall:
metaandmed:
sildid:
rakendus: nginx
spetsifikatsioon:
konteinerid:
- nimi: nginx
pilt: nginx: 1.7.9
sadamad:
- containerPort: 80

Märkate muu hulgas võtmeväärtuste paari, mis on:

sildid:
rakendus:
nginx

Sildid on klastrite haldamisel olulised, kuna need aitavad jälgida paljusid sama ülesandega kaunasid. Kaunad luuakse põhisõlme käsul ja nad suhtlevad põhisõlmega. Siiski vajame ikkagi tõhusat viisi, kuidas nad omavahel rääkida ja meeskonnana koostööd teha.


Teenused

Igal podil on oma sisemine IP-aadress ja selline suhtluskiht nagu Flannel aitab podidel üksteisega suhelda. See IP-aadress muutub aga üsna palju ja lõppude lõpuks on paljude kaunade olemasolu mõte lasta neil ühekordselt kasutada. Kaunad tapetakse ja äratatakse sageli üles.

Küsimus, mis nüüd tekib, on järgmine - kuidas vestlevad esiotsa kaunad tagatipuga, kui asjad on klastris nii dünaamilised?

Teenused tulevad selle keerukuse lahendamiseks pildile. Teenus on veel üks pakend, mis toimib koormuste tasakaalustajana kaunade alamhulga ja ülejäänud Kubernetes-klastri vahel. See seob end kõigi kaunadega, millele on lisatud kindel silt, näiteks andmebaas, ja seejärel paljastab nad ülejäänud klastri.

Näiteks kui meil on andmebaasiteenus koos 10 andmebaasikaunaga, võivad mõned andmebaasikaunad üles tulla või tappa, kuid teenus tagaks, et ülejäänud klaster saaks andmebaasi 'teenuse'. Teenuseid saab kasutada ka kasutajaliidese ülejäänud Interneti kuvamiseks.

Siin on teenuse tüüpiline määratlus.

apVersioon: v1
liik: teenus
metaandmed:
nimi: wordpress-mysql
sildid:
rakendus: wordpress
spetsifikatsioon:
sadamad:
- sadam: 3306
valija:
rakendus: wordpress
aste: mysql
klasterIP: Puudub

Kaunad, millel on märgitud WordPress koos määratud mysql-astmega, on need, mille see teenus võtab kätte ja puutuvad kokku Kubernetesele seadistatud WordPressi veebiserveri kaunadega.


Ettevaatus

Suure tarbijaskonnale suunatud hiiglasliku mitmetasandilise rakenduse juurutamisel on väga ahvatlev kirjutada palju teenuseid (või mikroteenuseid, nagu need on üldtuntud). Ehkki see on enamiku kasutusjuhtumite jaoks elegantne lahendus, võivad asjad kiiresti käest ära minna.

Teenused, nagu kaunad, on altid ebaõnnestumistele. Ainus erinevus on see, et kui teenus ebaõnnestub, muudetakse paljud täiesti funktsionaalsed kaunad kasutuks. Järelikult, kui teil on laialdaselt ühendatud teenuseid (nii sisemisi kui ka väliseid) ja midagi ebaõnnestub, on rikke koha välja selgitamine võimatu.

Rusikareeglina, kui teil on klastri ligikaudne visualiseerimine või kui saate klastri vaatamiseks ja selle mõtestamiseks kasutada sellist tarkvara nagu kokpit, on teie seadistus korras. Päeva lõpuks on Kubernetes mõeldud keerukuse vähendamiseks, mitte selle suurendamiseks.

Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...
Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...
Vulkan Linuxi kasutajatele
Iga uue põlvkonna graafikakaartidega näeme, et mängude arendajad ületavad graafilise truuduse piire ja jõuavad fotorealismile ühe sammu lähemale. Kuid...