Meitene uz motorollera. IlustrÄcija Freepik, Nomad logotips no Hashi Corp
Kubernetes ir 300 kg konteineru orÄ·estrÄÅ”anas gorilla. Tas darbojas dažÄs no lielÄkajÄm konteineru sistÄmÄm pasaulÄ, taÄu par to ir jÄmaksÄ.
ÄŖpaÅ”i dÄrgi mazÄm komandÄm, kurÄm daudz laika jÄvelta atbalstam un straujai mÄcÄ«Å”anÄs lÄ«knei. MÅ«su Äetru cilvÄku komandai tas ir pÄrÄk daudz. TÄpÄc mÄs sÄkÄm meklÄt alternatÄ«vas - un iemÄ«lÄjÄmies KlejotÄju.
Ko tu gribi
MÅ«su komanda uztur vairÄkus tipiskus veiktspÄjas uzraudzÄ«bas un analÄ«zes pakalpojumus: API galapunktus metrikÄm, kas rakstÄ«tas programmÄ Go, Prometheus eksportÄÅ”anu, žurnÄlu parsÄtÄjus, piemÄram, Logstash un Gollum, kÄ arÄ« tÄdas datu bÄzes kÄ InfluxDB vai Elasticsearch. Katrs no Å”iem pakalpojumiem darbojas savÄ konteinerÄ. Mums ir nepiecieÅ”ama vienkÄrÅ”a sistÄma, lai tas viss darbotos.
MÄs sÄkÄm ar konteineru orÄ·estrÄÅ”anas prasÄ«bu sarakstu:
Pakalpojumu kopas palaiÅ”ana daudzÄs iekÄrtÄs.
PÄrskats par darbÄ«bas pakalpojumiem.
Attiecības starp pakalpojumiem.
AutomÄtiska restartÄÅ”ana, ja pakalpojums avarÄ.
InfrastruktÅ«ras uzturÄÅ”ana nelielÄ komandÄ.
TurklÄt Å”Ädas lietas bÅ«tu jauki, bet ne obligÄti papildinÄjumi:
MarÄ·ÄÅ”anas maŔīnas pÄc to iespÄjÄm (piemÄram, marÄ·ÄÅ”anas maŔīnas ar Ätriem diskiem smagiem I/O pakalpojumiem).
IespÄja vadÄ«t pakalpojumus neatkarÄ«gi no organizatora (piemÄram, izstrÄdes laikÄ).
KopÄ«ga vieta, kur kopÄ«got konfigurÄcijas un noslÄpumus.
Metrikas un žurnÄlu beigu punkts.
KÄpÄc Kubernetes nav priekÅ” mums
Veidojot prototipu ar Kubernetes, mÄs pamanÄ«jÄm, ka sÄkÄm pievienot arvien sarežģītÄkus loÄ£ikas slÄÅus, uz kuriem mÄs netieÅ”i paļÄvÄmies.
PiemÄram, Kubernetes atbalsta iebÅ«vÄtÄs pakalpojumu konfigurÄcijas, izmantojot ConfigMaps. JÅ«s varat Ätri apjukt, it Ä«paÅ”i, apvienojot vairÄkus konfigurÄcijas failus vai pievienojot podam papildu pakalpojumus. Kubernetes (vai stÅ«re Å”ajÄ gadÄ«jumÄ) ļauj dinamiski ievadÄ«t ÄrÄjÄs konfigurÄcijas problÄmu noŔķirÅ”anai. Bet tas noved pie cieÅ”as un tumÅ”as saiknes starp jÅ«su projektu un Kubernetes. TomÄr Helm un ConfigMaps nav obligÄtas, tÄpÄc jums tÄs nav jÄizmanto. Varat vienkÄrÅ”i kopÄt konfigurÄciju uz Docker attÄlu. TomÄr ir vilinoÅ”i iet Å”o ceļu un veidot nevajadzÄ«gas abstrakcijas, kuras vÄlÄk varÄtu nožÄlot.
TurklÄt Kubernetes ekosistÄma strauji attÄ«stÄs. Ir nepiecieÅ”ams daudz laika un enerÄ£ijas, lai bÅ«tu informÄts par labÄko praksi un jaunÄkajiem rÄ«kiem. Kubectl, minikube, kubeadm, helm, tiller, kops, oc - sarakstu var turpinÄt un turpinÄt. Ne visi Å”ie rÄ«ki ir nepiecieÅ”ami, lai sÄktu darbu, taÄu jÅ«s nezinÄt, kas jums bÅ«s nepiecieÅ”ams, tÄpÄc jums ir jÄzina viss. Å Ä« iemesla dÄļ mÄcÄ«Å”anÄs lÄ«kne ir diezgan stÄva.
Kad lietot Kubernetes
Daudzi cilvÄki mÅ«su uzÅÄmumÄ izmanto Kubernetes un ir diezgan apmierinÄti ar to. Å os gadÄ«jumus pÄrvalda Google vai Amazon, kuriem ir pietiekami atbalsta resursi.
Kubernetes nÄk ar pÄrsteidzoÅ”as funkcijas, kas padara lielapjoma konteineru orÄ·estrÄÅ”anu vieglÄk pÄrvaldÄmu:
MÅ«su komanda lielÄko daļu pakalpojumu sniedz attÄlinÄti (jo ir cieÅ”s savienojums ar pamatinfrastruktÅ«ru), tÄpÄc mÄs negribÄjÄm izveidot savu Kubernetes klasteru. MÄs tikai gribÄjÄm sniegt pakalpojumus.
Baterijas nav iekļautas
Nomad ir 20% orÄ·estrÄÅ”ana, kas nodroÅ”ina 80% no nepiecieÅ”amÄ. Viss, ko tas dara, ir izvietoÅ”anas pÄrvaldÄ«ba. Nomad rÅ«pÄjas par izvietoÅ”anu, kļūdu gadÄ«jumÄ restartÄ konteinerus... un viss.
Visa Nomad bÅ«tÄ«ba ir tÄ, ko tas dara. minimums: nav smalkas tiesÄ«bu pÄrvaldÄ«bas vai uzlabotas tÄ«kla politikas, tik Ä«paÅ”i iecerÄts. Å Ä«s sastÄvdaļas tiek nodroÅ”inÄtas ÄrÄji vai netiek nodroÅ”inÄtas vispÄr.
Es domÄju, ka Nomad ir atradis perfektu kompromisu starp lietoÅ”anas Ärtumu un lietderÄ«bu. Tas ir piemÄrots maziem, neatkarÄ«giem pakalpojumiem. Ja jums ir nepiecieÅ”ama lielÄka kontrole, jums tie bÅ«s jÄpaaugstina paÅ”am vai jÄizmanto cita pieeja. nomads ir tikko orÄ·estrÄtÄjs.
Pats labÄkais par Nomad ir tas, ka tas ir vienkÄrÅ”i aizstÄt. Praktiski nav pÄrdevÄja bloÄ·ÄÅ”anas, jo tÄ funkcijas ir viegli integrÄtas jebkurÄ citÄ sistÄmÄ, kas pÄrvalda pakalpojumus. Tas darbojas tÄpat kÄ parasts binÄrs katrÄ klastera maŔīnÄ, tas arÄ« viss!
BrÄ«vi savienota nomadu ekosistÄma
Nomad patiesais spÄks ir tÄ ekosistÄmÄ. Tas ļoti labi integrÄjas ar citiem - pilnÄ«gi izvÄles - produktiem, piemÄram, Konsuls (atslÄgas vÄrtÄ«bu veikals) vai VelvÄt (noslÄpumu apstrÄde). Nomad failÄ ir sadaļas datu iegÅ«Å”anai no Å”iem pakalpojumiem:
Å eit mÄs lasÄm atslÄgu service/geo-api/log-verbosity no Consul un darba gaitÄ to attÄlojam ar vides mainÄ«go LOG_LEVEL. MÄs piedÄvÄjam arÄ« atslÄgu secret/geo-api-key no Vault as API_KEY. VienkÄrÅ”i, bet spÄcÄ«gi!
VienkÄrŔības dÄļ Nomad ir viegli paplaÅ”inÄms ar citiem pakalpojumiem, izmantojot API. PiemÄram, tiek atbalstÄ«tas darba atzÄ«mes. MÄs atzÄ«mÄjam visus pakalpojumus ar metriku ar tagu trv-metrics. TÄdÄ veidÄ Prometheus viegli atrod Å”os pakalpojumus, izmantojot Consul, un periodiski pÄrbauda galapunktu /metrics jauniem datiem. To paÅ”u var izdarÄ«t, piemÄram, baļķiem, izmantojot Loki.
Ir daudz citu paplaÅ”inÄÅ”anas piemÄru:
Palaidiet Dženkinsa darbu, izmantojot ÄÄ·i, un konsuls seko lÄ«dzi Nomad uzdevumam, kas tiek pÄrdalÄ«ts, kad mainÄs pakalpojuma konfigurÄcija.
Neviena sistÄma nav ideÄla. Es neiesaku jums nekavÄjoties ieviest jaunÄkÄs funkcijas ražoÅ”anÄ. Protams, ir kļūdas un trÅ«kstoÅ”as āāfunkcijas, taÄu tas pats attiecas uz Kubernetes.
SalÄ«dzinot ar Kubernetes, Nomad kopiena nav tik liela. Kubernetes jau ir aptuveni 75 000 apÅemÅ”anos un 2000 lÄ«dzautoru, savukÄrt Nomad ir aptuveni 14 000 saistÄ«bu un 300 atbalstÄ«tÄju. Nomadam bÅ«s grÅ«ti tikt lÄ«dzi Kubernetes Ätrumam, bet tas var arÄ« nebÅ«t vajadzÄ«gs! TÄ ir specializÄtÄka sistÄma, un mazÄka kopiena arÄ« nozÄ«mÄ, ka jÅ«su piesaistes pieprasÄ«jums, visticamÄk, tiks pamanÄ«ts un pieÅemts nekÄ Kubernetes.
Kopsavilkums
LÄ«dzÅemÅ”anai: neizmantojiet Kubernetes tikai tÄpÄc, ka to dara visi citi. RÅ«pÄ«gi izvÄrtÄjiet savas prasÄ«bas un pÄrbaudiet, kurÅ” rÄ«ks ir izdevÄ«gÄks.
Ja plÄnojat izvietot daudz viendabÄ«gu pakalpojumu liela mÄroga infrastruktÅ«rÄ, Kubernetes ir labs risinÄjums. VienkÄrÅ”i Åemiet vÄrÄ papildu sarežģītÄ«bu un darbÄ«bas izmaksas. No dažÄm izmaksÄm var izvairÄ«ties, izmantojot pÄrvaldÄ«tu Kubernetes vidi, piemÄram, Google Kubernetes dzinÄjs vai Amazon EX.
Ja jÅ«s vienkÄrÅ”i meklÄjat stabilu orÄ·estrÄtÄju, kuru ir viegli uzturÄt un paplaÅ”inÄms, kÄpÄc gan nepamÄÄ£inÄt Nomad? JÅ«s varat bÅ«t pÄrsteigts, cik tÄlu tas jÅ«s aizvedÄ«s.
Ja Kubernetes ir kÄ automaŔīna, tad Nomad ir skrejritenis. ReizÄm vajag vienu un reizÄm otru. Abiem ir tiesÄ«bas pastÄvÄt.