VÔib-olla ei vaja sa Kubernetes't.

VÔib-olla ei vaja sa Kubernetes't.
TĂŒdruk skuutriga. Illustratsioon freepik, brĂ€ndi Nomad logo HashiCorp

Kubernetes on 300-kilone gorilla konteinerite orkestreerimiseks. See töötab mĂ”nedes maailma suurimates konteinerisĂŒsteemides, kuid see on kulukas.

Eriti kallis vÀikestele meeskondadele, kellel tuleb kulutada palju aega hooldusele ja jÀrsule ÔppekÔverale. Meie neljaliikmelise meeskonna jaoks on see liiga suur kulu. SeetÔttu hakkasime otsima alternatiive ja armusime Nomad.

Mida soovime

Meie meeskond toetab mitmeid tĂŒĂŒpilisi teenuseid jĂ€lgimiseks ja jĂ”udluse analĂŒĂŒsiks: API lĂ”pp-punktid mÔÔtmete jaoks, kirjutatud Go-s, Prometheuse eksport, logifailide parsijad nagu Logstash ja Gollum, samuti andmebaasid, nagu InfluxDB vĂ”i Elasticsearch. IgaĂŒks neist teenustest töötab oma konteineris. Meile on vajalik lihtne sĂŒsteem, et kĂ”ik see töökorras hoida.

Alustasime konteinerite orkestreerimise nÔuete loendiga:

  • Teenuste komplekti kĂ€ivitamine paljude masinate peal.
  • KĂ€ivitatud teenuste ĂŒlevaade.
  • Teenuste omavahelised suhted.
  • Automaatne taaskĂ€ivitamine, kui teenus kukkub.
  • Infrastruktuuri haldamine vĂ€ikese meeskonna poolt.

Lisaks oleks jÀrgmised asjad meeldivad, kuid mitte kohustuslikud tÀiendused:

  • Masinate mĂ€rgistamine nende vĂ”imaluste jĂ€rgi (nĂ€iteks kiirete ketastega masinate mĂ€rgistamine intensiivseks I/O teenuseks).
  • Teenuste kĂ€ivitamise vĂ”imalus sĂ”ltumatult orkestreerijast (nĂ€iteks arendamise ajal).
  • Ühine koht konfiguratsioonide ja saladuste jagamiseks.
  • MÔÔtmete ja logide lĂ”pp-punkt.

Miks Kubernetes meile ei sobi

Kubernetesega prototĂŒĂŒpi luues mĂ€rkisime, et hakkasime lisama ĂŒha keerukamaid loogika-kihti, millele pĂ”himĂ”tteliselt toetuma hakkasime.

NĂ€iteks toetab Kubernetes teenuste sisseehitatud konfiguratsioone lĂ€bi ConfigMaps. Sa vĂ”id kiiresti segadusse sattuda, eriti mitmete konfiguratsioonifailide ĂŒhendamisel vĂ”i lisateenuste lisamisel podi. Kubernetes (vĂ”i helm antud juhul) vĂ”imaldab see dĂŒnaamiliselt rakendada vĂ€liseid konfiguratsioone huvide lahutamiseks. Kuid see toob kaasa tugeva varjatud sĂ”ltuvuse teie projekti ja Kubernetes'i vahel. Siiski on Helm ja ConfigMaps lisavĂ”imalused, seega ei ole nende kasutamine kohustuslik. VĂ”ite lihtsalt kopeerida konfiguratsiooni Docker'i pildile. Siiski tundub ahvatlev minna seda teed ja luua tarbetuid abstraktsioone, millest pĂ€rast vĂ”ite kahetseda.

Lisaks areneb Kubernetes'i ökosĂŒsteem kiiresti. Parimate praktikate ja uusimate tööriistadega kursis pĂŒsimiseks kulub palju aega ja energiat. Kubectl, minikube, kubeadm, helm, tiller, kops, oc – nimekiri jĂ€tkub ja jĂ€tkub. Alustamiseks ei ole kĂ”iki neid tööriistu kindlasti vaja, kuid te ei tea, mis vĂ”ib vajalikuks osutuda, seega tuleb kĂ”igega kursis olla. Selle tĂ”ttu on Ă”ppimiskĂ”ver ĂŒsna jĂ€rsk.

Millal kasutada Kubernetes'i

Meie ettevÔttes kasutavad paljud Kubernetes'i ja on sellega tÀiesti rahul. Need instantsid on Google'i vÔi Amazon'i halduses, kellel on piisavalt ressursse toetamiseks.

Kubernetes tuleb koos imelike funktsioonidega, mis muudavad konteinerite ulatusliku orkestreerimise paremini hallatavaks:

KĂŒsimus on, kas kĂ”ik need funktsioonid on teile tĂ”eliselt vajalikud. Ei saa lihtsalt tugineda abstraktsioonidele; te peate Ă”ppima, mis toimub masina all.

Meie meeskond pakub enamikku teenustest kaugelt (tÀnu tihedale seondumisele pÔhisisese infrastruktuuriga), seega ei soovinud me tÔsta oma Kubernetes'i klastrit. Soovisime lihtsalt teenuseid pakkuda.

Patareid ei kuulu komplekti

Nomad on 20% orkestreerimist, mis annab 80% vajalikust. KÔik, mida ta teeb, on rakenduste haldamine. Nomad hoolitseb rakenduste eest, kÀivitab konteinerid tÔrgete korral uuesti
 ja see on kÔik.

Nomadi kogu mĂ”te on see, mida ta teeb minimaalselt: mitte mingit detailset Ă”iguste haldust vĂ”i laiendatud vĂ”rgu poliitikaid, nii on see spetsiaalselt kavandatud. Need komponendid on saadaval vĂ€ljastpoolt vĂ”i ei ole ĂŒldse saadaval.

Arvan, et Nomad on leidnud ideaalse kompromissi kasutusmugavuse ja kasulikkuse vahel. See sobib hĂ€sti vĂ€ikestele, iseseisvatele teenustele. Kui on vajalik rohkem kontrolli, tuleb need ise ĂŒles seada vĂ”i kasutada teistsugust lĂ€henemist. Nomad on lihtsalt orkestrator.

Parim asi Nomadi juures on see, et see on lihtne asendada. Tarnija seotust praktiliselt ei ole, kuna selle funktsioone on lihtne integreerida kĂ”ikidesse teistesse teenuste haldamiseks mĂ”eldud sĂŒsteemidesse. See töötab lihtsalt nagu iga teine binaar iga masinas klastris, ja sellega ongi kĂ”ik!

Nomadi ökosĂŒsteem koosneb nĂ”rgalt seotud komponentidest

Nomadi tĂ”eline jĂ”ud peitub selle ökosĂŒsteemis. See integreerub vĂ€ga hĂ€sti teiste — tĂ€iesti valikuliste — toodetega, nagu nĂ€iteks Consul (vĂ”tmete-vÀÀrtuste salvestamine) vĂ”i Vault (salajaste andmete töötlemine). Nomadi failis on andmete vĂ€ljavĂ”tmiseks nende teenuste jaoks sektsioonid:

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
}

Siin loeme vÔtme service/geo-api/log-verbosity Consulist ja töötamise ajal esindame seda keskkonnamuutujana LOG_LEVEL. Samuti esitame vÔtme secret/geo-api-key Vaultist kui API_KEY. Lihtne, aga vÔimas!

Oma lihtsuse tĂ”ttu on Nomad kergesti laiendatav teiste teenuste kaudu API. NĂ€iteks toetatakse ĂŒlesannete jaoks silte. Me mĂ€rkime kĂ”ik teenused, millel on mÔÔdikud, siltidega trv-metrics. Nii leiab Prometheus need teenused hĂ”lpsasti ĂŒles Consuli kaudu ja kontrollib aeg-ajalt lĂ”pp-punkti /metrics uusima teabe olemasolu osas. Sama saab teha ka logide jaoks, kasutades Loki.

On palju teisi laiendatavuse nÀiteid:

  • Jenkins'i ĂŒlesande kĂ€ivitamine hook'i abil, ja Consul jĂ€lgib Nomadi ĂŒlesande uuesti kĂ€ivitamist teenuse konfiguratsiooni muutmisel.
  • Ceph lisab Nomadi jaotatud failisĂŒsteemi.
  • fabio koormuse tasakaalustamiseks.

KÔik see vÔimaldab loodud infrastruktuuri sujuvalt arendada ilma erilist seotust omamata.

Aus hoiatus

Ükski sĂŒsteem ei ole tĂ€iuslik. Ei soovita kohe kasutada kĂ”ige uuemaid funktsioone tootmises. Muidugi, seal on vigu ja puuduvad funktsioonid, kuid sama kehtib ka Kubernetes'i kohta.

Kubernetesiga vĂ”rreldes ei ole Nomadi kogukond nii suur. Kubernetesel on juba umbes 75 000 commit'i ja 2000 kaastöötajat, samas kui Nomadil on umbes 14 000 commit'i ja 300 kaastöötajat. Nomadil on raske pĂŒsida ja mitte jÀÀda Kubernetesest maha, kuid vĂ”ib-olla ei olegi see vajalik! See on spetsialiseeritud sĂŒsteem ja vĂ€iksem kogukond tĂ€hendab ka seda, et teie pull-request'i mĂ€rgatakse ja aktsepteeritakse tĂ”enĂ€olisemalt, vĂ”rreldes Kubernetesega.

Elulookirjeldus

KokkuvÔte: Àrge kasutage Kubernetes'e ainult sellepÀrast, et kÔik teised seda teevad. Hinnake hoolikalt oma nÔudeid ja vaadake, milline tööriist on soodsam.

Kui plaanite suurtes infrastruktuurides massiliselt homogeenseid teenuseid juurutada, siis Kubernetes on hea valik. Lihtsalt pidage meeles tÀiendavat keerukust ja tegevuskulusid. MÔningaid kulusid saab vÀltida, kasutades hallatud Kubernetes keskkonda, nagu Google Kubernetes Engine vÔi Amazon EKS.

Kui otsite lihtsalt usaldusvÀÀrset orkestratiivit, mis oleks lihtne hooldada ja skaleeritav, miks mitte proovida Nomadi? Te vĂ”ite ĂŒllatuda, kui kaugele see teid viib.

Kui vĂ”rrelda Kubernetes't autoga, siis Nomad on mootorratas. MĂ”nikord vajate ĂŒhte, mĂ”nikord teist. MĂ”lemad on Ă”igustatud.

Allikas: habr.com

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster