Jums var nebūt vajadzīgas Kubernetes

Jums var nebūt vajadzīgas Kubernetes
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:

Jautājums ir, vai jums tieŔām ir vajadzīgas visas Ŕīs funkcijas. Jūs nevarat paļauties tikai uz abstrakcijām; tev jānoskaidro, kas notiek zem pārsega.

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:

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
}

Å 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.
  • Ceph pievieno Nomad izplatÄ«to failu sistēmu.
  • fabio slodzes lÄ«dzsvaroÅ”anai.

Tas viss ļauj organiski attÄ«stÄ«t infrastruktÅ«ru bez Ä«paÅ”as atsauces uz pārdevēju.

Godīgs brīdinājums

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.

Avots: www.habr.com

Pievieno komentāru