
TĂŒdruk skuutriga. Illustratsioon , brĂ€ndi Nomad logo
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 .
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 , 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 . Sa vĂ”id kiiresti segadusse sattuda, eriti mitmete konfiguratsioonifailide ĂŒhendamisel vĂ”i lisateenuste lisamisel podi. Kubernetes (vĂ”i 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 , mis muudavad konteinerite ulatusliku orkestreerimise paremini hallatavaks:
- Detailne .
- lisavad klastrile loogikat. Need on lihtsalt programmid, mis suhtlevad Kubernetes API'ga.
- ! Kubernetes suudab teenuseid vajadusel skaleerida, kasutades teenuse mÔÔdikuid ja ilma kÀsitsi sekkumiseta.
KĂŒsimus on, kas kĂ”ik need funktsioonid on teile tĂ”eliselt vajalikud. Ei saa lihtsalt tugineda abstraktsioonidele; .
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 , 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 (vĂ”tmete-vÀÀrtuste salvestamine) vĂ”i (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 .
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.
- koormuse tasakaalustamiseks.
KÔik see vÔimaldab 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 vÔi .
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
