Dibe ku hûn hewceyê Kubernetes nebin

Dibe ku hûn hewceyê Kubernetes nebin
Keçik li ser scooter. Xetkirî freepik, Nomad logo ji HashiCorp

Kubernetes gorilla 300 poundî ya orkestrasyona konteynerê ye. Ew di hin pergalên herî mezin ên konteynerê de li cîhanê dixebite, lê biha ye.

Bi taybetî ji bo tîmên piçûktir biha, ku dê gelek dem piştgirî û kelek fêrbûna hişk hewce bike. Ev ji bo tîma me ya çaran pir zêde ye. Ji ber vê yekê me dest bi lêgerîna alternatîfan kir - û em evîndar bûn Nomad.

Tu çi dixwazî

Tîma me piştgirî dide hejmarek karûbarên çavdêrîkirin û analîzkirina performansa hevpar: xalên dawiya API-yê ji bo metrîkên ku di Go-yê de hatine nivîsandin, îxracata Prometheus, parserên têketinê yên wekî Logstash û Gollum, û her weha databasên wekî InfluxDB an Elasticsearch. Her yek ji van karûbaran di konteynera xwe de dimeşe. Em pêdivî bi pergalek hêsan e ku ew hemî bimeşîne.

Me bi navnîşek hewcedariyên ji bo orkestrasyona konteynerê dest pê kir:

  • Li ser gelek makîneyan komek karûbar dimeşîne.
  • Pêşniyara karûbarên xebitandinê.
  • Girêdanên di navbera karûbaran de.
  • Ger karûbar dakeve, otomatîk ji nû ve dest pê bike.
  • Parastina binesaziyê ji hêla tîmek piçûk ve.

Wekî din, tiştên jêrîn dê xweş bin, lê zêdekirinên ne hewce ne:

  • Nîşankirina makîneyên li ser bingeha kapasîteyên wan (mînak, nîşankirina makîneyên bi dîskên bilez ji bo karûbarên I/O yên giran).
  • Qabiliyeta birêvebirina karûbaran ji orkestrator serbixwe (mînak, di dema pêşkeftinê de).
  • Cihek hevpar ji bo parvekirina mîheng û razan.
  • Ji bo metrîk û têketin xala dawî.

Çima Kubernetes ji bo me ne rast e

Gava ku me bi Kubernetes re prototîp kir, me dît ku me qatên mantiqê yên tevlihev ên ku me bi giranî pê ve girêdidin zêde dikin.

Wekî mînakek, Kubernetes bi rêya veavakirina karûbarê çêkirî piştgirî dike ConfigMaps. Hûn dikarin zû tevlihev bibin, nemaze dema ku gelek pelên mîhengê li hev dikin an karûbarên din li podek zêde dikin. Kubernetes (an bêr di vê rewşê de) destûrê dide te ku hûn dînamîk mîhengên derveyî bicîh bikin da ku fikaran ji hev veqetînin. Lê ev encamek di navbera projeya we û Kubernetes de têkiliyek hişk, veşartî pêk tîne. Lêbelê, Helm û ConfigMaps vebijarkên din in, ji ber vê yekê hûn ne hewce ne ku wan bikar bînin. Hûn dikarin bi tenê veavakirinê di wêneya Docker de kopî bikin. Lêbelê, ceribandinek e ku hûn li ser vê rêyê biçin û abstraksyonên nehewce ava bikin ku hûn dikarin paşê poşman bibin.

Wekî din, ekosîstema Kubernetes bi lez pêşve diçe. Ew gelek dem û enerjiyê digire ku meriv bi pratîkên çêtirîn û amûrên herî dawîn re rojane bimîne. Kubectl, minikube, kubeadm, helm, tiller, kops, oc - lîste her diçe û diçe. Dema ku hûn dest pê dikin ne hemî van amûran hewce ne, lê hûn nizanin ku hûn ê hewce bibin, ji ber vê yekê hûn hewce ne ku hûn ji her tiştî haydar bin. Ji ber vê yekê, qursa fêrbûnê pir hişk e.

Dema ku Kubernetes bikar bînin

Di pargîdaniya me de, gelek kes Kubernetes bikar tînin û jê pir kêfxweş in. Van mînakan ji hêla Google an Amazon ve têne rêve kirin, ku çavkaniyên wan hene ku piştgiriyê bidin wan.

Kubernetes pê re tê taybetmendiyên ecêb, ku orkestraya konteynerê di pîvanê de rêvebirintir dike:

  • Bi berfirehî rêveberiya mafên.
  • kontrolkerên Custom mantiqê li komê zêde bike. Vana tenê bernameyên ku bi Kubernetes API re diaxivin in.
  • Autoscaling! Kubernetes dikare karûbaran li gorî daxwazê ​​bi karanîna metrîkên karûbarê û bêyî ku hewcedariya destwerdana desta bike, pîvandin.

Pirs ev e ku hûn bi rastî hewceyê van hemî taybetmendiyan in. Hûn nikarin tenê xwe bispêrin abstractions; divê hûn zanibin ka çi di bin kapê de diqewime.

Tîma me piraniya karûbaran ji dûr ve peyda dike (ji ber girêdana nêzîk bi binesaziya sereke), ji ber vê yekê me nexwest ku koma xweya Kubernetes bilind bikin. Me tenê xwest ku em xizmetê bidin.

Batteries ne tê de

Nomad 20% ji orkestrasyonê ye ku ji% 80 ya hewce peyda dike. Tiştê ku dike ev e ku bicîhkirinan birêve bibe. Nomad bi cihkirinê ve mijûl dibe, di ger xeletiyan de konteyneran ji nû ve dest pê dike... û ew e.

Tevahiya xala Nomad çi dike herî kêm: tu rêveberiya mafên granular an polîtîkayên torê yên dirêjkirî, ev bi taybetî hatiye çêkirin. Van pêkhateyan ji derve têne peyda kirin an jî qet nayên peyda kirin.

Ez difikirim ku Nomad lihevhatina bêkêmasî di navbera karanîna hêsan û bikêrhatî de dîtiye. Ew ji bo karûbarên piçûk, serbixwe baş e. Heke hûn hewceyê bêtir kontrolê hewce ne, hûn ê neçar bibin ku wan bi xwe bilind bikin an nêzîkatiyek cûda bikar bînin. Koçer e tenê orkestrator.

Di derbarê Nomad de tiştê çêtirîn ew e ku ew hêsan e şûna. Bi pratîkî ti girêdanek bi firoşker re tune, ji ber ku fonksiyonên wê bi hêsanî di nav pergalek din de ku karûbaran birêve dibe de têne yek kirin. Ew tenê mîna binaryek birêkûpêk li ser her makîneya komê dimeşîne, ew hemî!

Ekosîstema koçer a ji pêkhateyên bi hev ve girêdayî ye

Hêza koçer a rast ekosîstema wê ye. Ew pir baş bi hilberên din - bi tevahî vebijarkî - yên wekî Sefîr (dikana key-nirx) an Jûra qasê (veşartinên pêvajoyê). Di hundurê pelê Nomad de beşên derxistina daneyan ji van karûbaran hene:

template {
  data = <<EOH
LOG_LEVEL="{{key "service/geo-api/log-verbosity"}}"
API_KEY="{{with secret "secret/geo-api-key"}}{{.Data.value}}{{end}}"
EOH

  destination = "secrets/file.env"
  env         = true
}

Li vir em mifteyê dixwînin service/geo-api/log-verbosity ji Konsul û dema xebatê de em wê li ber guhêrbarek jîngehê radigihînin LOG_LEVEL. Em jî mifteyê pêşkêş dikin secret/geo-api-key ji Vault wek API_KEY. Hêsan lê bi hêz!

Ji ber sadebûna xwe, Nomad bi karûbarên din re bi API-ê re bi hêsanî tê berfireh kirin. Mînakî, nîşaneyên ji bo peywiran têne piştgirî kirin. Em hemî karûbaran bi metrîkan etîket dikin trv-metrics. Bi vî rengî Prometheus dikare bi hêsanî van karûbaran bi riya Konsulê bibîne û dem bi dem xala dawîn kontrol bike /metrics ji bo daneyên nû. Heman tişt dikare were kirin, ji bo nimûne, ji bo têketin, bi kar tînin Lokî.

Gelek mînakên din ên berfirehbûnê hene:

  • Karekî Jenkins bi karanîna çîçekê bimeşînin, û Konsul dema ku veavakirina karûbar diguhezîne veguheztina karê Nomad dişopîne.
  • Ceph pergalek pelê belavkirî li Nomad zêde dike.
  • fabio ji bo hevsengkirina barkirinê.

Ev hemû destûrê dide binesaziyê bi awayekî organîkî pêş bixin bêyî ti girêdanek taybetî bi firoşkarê re.

Hişyariya adil

No sîstem bêkêmahî ye. Ez pêşniyar nakim ku tavilê taybetmendiyên herî nû di hilberînê de bidin nasîn. Bê guman xeletî û taybetmendiyên winda hene, lê heman tişt ji Kubernetes re derbas dibe.

Li gorî Kubernetes, civata Nomad ne ew qas mezin e. Kubernetes jixwe nêzî 75 commit û 000 beşdar hene, dema ku Nomad bi qasî 2000 commit û 14 beşdar hene. Nomad dê zehmet be ku bi leza Kubernetes bişopîne, lê dibe ku ew ne hewce be! Ew pergalek pisportir e, û civata piçûktir jî tê vê wateyê ku li gorî Kubernetes, daxwaza kişandina we pirtir tê dîtin û pejirandin.

Nîqaş

Rêza jêrîn: Kubernetes bikar neynin tenê ji ber ku her kesê din wiya dike. Pêdiviyên xwe bi baldarî binirxînin û kontrol bikin ka kîjan amûr bikêrtir e.

Ger hûn plan dikin ku tonek karûbarên homojen li ser binesaziyek mezin bicîh bikin, wê hingê Kubernetes vebijarkek baş e. Tenê ji tevliheviya zêde û lêçûnên xebitandinê haydar bin. Hin lêçûn dikarin bi karanîna hawîrdorek Kubernetes-ê ya rêvekirî ve werin dûr kirin, wek mînak Google Kubernetes Engine an Amazon EKS.

Ger hûn tenê li orkestratorek pêbawer digerin ku ji bo parastin û berfirehkirinê hêsan e, çima Nomad biceribînin? Dibe ku hûn şaş bimînin ka ev ê we çiqas dûr bigire.

Ger Kubernetes bi otomobîlek ve were berhev kirin, dê Nomad bibe scooter. Carinan hewcedariya we bi tiştek heye û carinan hûn hewceyê tiştek din in. Mafê her duyan jî heye.

Source: www.habr.com

Add a comment