Efallai na fydd angen Kubernetes arnoch chi

Efallai na fydd angen Kubernetes arnoch chi
Merch ar sgwter. Darlun freepik, Nomad logo o HashiCorp

Kubernetes yw'r gorila 300-punt o offeryniaeth cynhwysydd. Mae'n gweithio yn rhai o'r systemau cynwysyddion mwyaf yn y byd, ond mae'n ddrud.

Yn arbennig o ddrud i dimau llai, a fydd angen llawer o amser cymorth a chromlin ddysgu serth. Mae hyn yn ormod o orbenion i’n tîm o bedwar. Felly dechreuon ni chwilio am ddewisiadau eraill - a syrthio mewn cariad â nhw Nomad.

Beth ydych chi eisiau

Mae ein tîm yn cefnogi nifer o wasanaethau monitro a dadansoddi perfformiad cyffredin: pwyntiau terfyn API ar gyfer metrigau a ysgrifennwyd yn Go, Prometheus exports, parsers log megis Logstash a Gollum, yn ogystal â chronfeydd data fel InfluxDB neu Elasticsearch. Mae pob un o'r gwasanaethau hyn yn rhedeg yn ei gynhwysydd ei hun. Mae angen system syml arnom i gadw'r cyfan i fynd.

Dechreuon ni gyda rhestr o ofynion ar gyfer offeryniaeth cynwysyddion:

  • Rhedeg set o wasanaethau ar lawer o beiriannau.
  • Trosolwg o redeg gwasanaethau.
  • Cysylltiadau rhwng gwasanaethau.
  • Ailgychwyn yn awtomatig os bydd y gwasanaeth yn mynd i lawr.
  • Cynnal a chadw seilwaith gan dîm bach.

Yn ogystal, bydd y pethau canlynol yn braf, ond nid yn ychwanegiadau gofynnol:

  • Peiriannau tagio yn seiliedig ar eu galluoedd (er enghraifft, peiriannau tagio gyda disgiau cyflym ar gyfer gwasanaethau I/O trwm).
  • Y gallu i redeg gwasanaethau yn annibynnol ar y cerddor (er enghraifft, yn ystod datblygiad).
  • Lle cyffredin i rannu ffurfweddiadau a chyfrinachau.
  • Diweddbwynt ar gyfer metrigau a logiau.

Pam nad yw Kubernetes yn iawn i ni

Wrth i ni brototeipio gyda Kubernetes, fe wnaethom sylwi ein bod yn ychwanegu haenau cynyddol gymhleth o resymeg yr oeddem yn dibynnu'n fawr arnynt.

Er enghraifft, mae Kubernetes yn cefnogi ffurfweddiadau gwasanaeth adeiledig trwy Mapiau Ffurfwedd. Gallwch chi ddrysu'n gyflym, yn enwedig wrth gyfuno sawl ffeil ffurfweddu neu ychwanegu gwasanaethau ychwanegol at god. Kubernetes (neu llyw yn yr achos hwn) yn eich galluogi i weithredu ffurfweddau allanol yn ddeinamig i wahanu pryderon. Ond mae hyn yn arwain at gyplu tynn, cudd rhwng eich prosiect a Kubernetes. Fodd bynnag, mae Helm a ConfigMaps yn opsiynau ychwanegol, felly nid oes rhaid i chi eu defnyddio. Yn syml, gallwch chi gopïo'r ffurfweddiad i ddelwedd y Docker. Fodd bynnag, mae'n demtasiwn dilyn y llwybr hwn ac adeiladu tyniadau diangen y byddwch efallai'n difaru yn ddiweddarach.

Yn ogystal, mae ecosystem Kubernetes yn datblygu'n gyflym. Mae'n cymryd llawer o amser ac egni i gael y wybodaeth ddiweddaraf am yr arferion gorau a'r offer diweddaraf. Kubectl, minikube, kubeadm, helm, tiller, kops, oc - mae'r rhestr yn mynd ymlaen ac ymlaen. Nid oes angen yr holl offer hyn pan fyddwch chi'n cychwyn, ond nid ydych chi'n gwybod beth fydd ei angen arnoch chi, felly mae angen i chi fod yn ymwybodol o bopeth. Oherwydd hyn, mae'r gromlin ddysgu yn eithaf serth.

Pryd i ddefnyddio Kubernetes

Yn ein cwmni, mae llawer o bobl yn defnyddio Kubernetes ac yn eithaf hapus ag ef. Rheolir yr achosion hyn gan Google neu Amazon, sydd â'r adnoddau i'w cefnogi.

Daw Kubernetes gyda nodweddion anhygoel, sy'n gwneud offeryniaeth cynhwysydd ar raddfa yn fwy hylaw:

  • Manwl rheoli hawliau.
  • Rheolyddion personol ychwanegu rhesymeg i'r clwstwr. Yn syml, mae'r rhain yn rhaglenni sy'n siarad ag API Kubernetes.
  • Graddio awtomatig! Gall Kubernetes raddio gwasanaethau ar alw gan ddefnyddio metrigau gwasanaeth a heb fod angen ymyrraeth â llaw.

Y cwestiwn yw a oes gwir angen yr holl nodweddion hyn arnoch chi. Ni allwch ddibynnu ar dyniadau yn unig; bydd yn rhaid i chi ddarganfod beth sy'n digwydd o dan y cwfl.

Mae ein tîm yn darparu'r rhan fwyaf o wasanaethau o bell (oherwydd y cysylltiad agos â'r prif seilwaith), felly nid oeddem am godi ein clwstwr Kubernetes ein hunain. Roeddem ni eisiau darparu gwasanaethau.

Batris heb eu cynnwys

Nomad yw 20% o'r offeryniaeth sy'n darparu 80% o'r hyn sydd ei angen. Y cyfan y mae'n ei wneud yw rheoli gosodiadau. Mae Nomad yn gofalu am osodiadau, yn ailgychwyn cynwysyddion rhag ofn y bydd gwallau ... a dyna ni.

Holl bwynt Nomad yw'r hyn y mae'n ei wneud lleiafswm: dim rheoli hawliau gronynnog neu polisïau rhwydwaith estynedig, mae hwn wedi'i ddylunio'n arbennig. Darperir y cydrannau hyn yn allanol neu ddim o gwbl.

Rwy'n credu bod Nomad wedi dod o hyd i'r cyfaddawd perffaith rhwng rhwyddineb defnydd a defnyddioldeb. Mae'n dda ar gyfer gwasanaethau bach, annibynnol. Os oes angen mwy o reolaeth arnoch, bydd yn rhaid i chi eu codi eich hun neu ddefnyddio dull gwahanol. Mae Nomad yn yn unig cerddorfa.

Y peth gorau am Nomad yw ei fod yn hawdd disodli. Nid oes bron unrhyw gysylltiad â'r gwerthwr, gan fod ei swyddogaethau'n hawdd eu hintegreiddio i unrhyw system arall sy'n rheoli gwasanaethau. Mae'n rhedeg fel deuaidd rheolaidd ar bob peiriant yn y clwstwr, dyna i gyd!

Ecosystem nomad o gydrannau sydd wedi'u cyplysu'n llac

Cryfder gwirioneddol Nomad yw ei ecosystem. Mae'n integreiddio'n dda iawn â chynhyrchion eraill - cwbl ddewisol - fel Conswl (storfa gwerth allweddol) neu Bwlch (cyfrinachau prosesu). Y tu mewn i ffeil Nomad mae adrannau ar gyfer tynnu data o'r gwasanaethau hyn:

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
}

Yma rydym yn darllen yr allwedd service/geo-api/log-verbosity gan Gonswl ac wrth weithio rydym yn ei amlygu i newidyn amgylchedd LOG_LEVEL. Rydym hefyd yn cyflwyno'r allwedd secret/geo-api-key o Vault fel API_KEY. Syml ond pwerus!

Oherwydd ei symlrwydd, mae'n hawdd estyn Nomad gyda gwasanaethau eraill trwy API. Er enghraifft, cefnogir tagiau ar gyfer tasgau. Rydym yn tagio pob gwasanaeth gyda metrigau trv-metrics. Fel hyn gall Prometheus ddod o hyd i'r gwasanaethau hyn yn hawdd trwy Gonswl a gwirio'r pwynt terfyn o bryd i'w gilydd /metrics am ddata newydd. Gellir gwneud yr un peth, er enghraifft, ar gyfer logiau, gan ddefnyddio Loki.

Mae llawer o enghreifftiau eraill o estynadwyedd:

  • Rhedeg swydd Jenkins gan ddefnyddio bachyn, ac mae Conswl yn monitro adleoli swydd Nomad pan fydd cyfluniad y gwasanaeth yn newid.
  • Mae Ceph yn ychwanegu system ffeiliau ddosbarthedig i Nomad.
  • Fabio ar gyfer cydbwyso llwyth.

Mae hyn i gyd yn caniatáu datblygu seilwaith yn organig heb unrhyw gysylltiad arbennig â'r gwerthwr.

Rhybudd teg

Nid oes unrhyw system yn berffaith. Nid wyf yn argymell cyflwyno'r nodweddion mwyaf newydd i'r cynhyrchiad ar unwaith. Wrth gwrs mae yna fygiau a nodweddion coll, ond mae'r un peth yn wir am Kubernetes.

O'i gymharu â Kubernetes, nid yw cymuned y Nomadiaid mor fawr â hynny. Mae gan Kubernetes eisoes tua 75 o ymrwymiadau a 000 o gyfranwyr, tra bod gan Nomad tua 2000 o ymrwymiadau a 14 o gyfranwyr. Bydd Nomad yn cael amser caled yn cadw i fyny â chyflymder Kubernetes, ond efallai nad oes rhaid iddo! Mae'n system fwy arbenigol, ac mae'r gymuned lai hefyd yn golygu bod eich cais tynnu yn fwy tebygol o gael ei sylwi a'i dderbyn, o'i gymharu â Kubernetes.

Crynodeb

Gwaelod llinell: Peidiwch â defnyddio Kubernetes dim ond oherwydd bod pawb arall yn ei wneud. Gwerthuswch eich gofynion yn ofalus a gwiriwch pa offeryn sydd fwyaf buddiol.

Os ydych chi'n bwriadu defnyddio tunnell o wasanaethau homogenaidd ar seilwaith ar raddfa fawr, yna mae Kubernetes yn opsiwn da. Byddwch yn ymwybodol o'r cymhlethdod ychwanegol a'r costau gweithredu. Gellir osgoi rhai costau trwy ddefnyddio amgylchedd Kubernetes a reolir megis Peiriant Google Kubernetes neu Amazon EKS.

Os ydych chi'n chwilio am gerddorfawr dibynadwy sy'n hawdd ei gynnal ac yn estynadwy, beth am roi cynnig ar Nomad? Efallai y byddwch chi'n synnu pa mor bell y bydd hyn yn mynd â chi.

Os cymharir Kubernetes â char, sgwter fyddai Nomad. Weithiau mae angen un peth arnoch chi ac weithiau mae angen un arall arnoch chi. Mae gan y ddau hawl i fodoli.

Ffynhonnell: hab.com

Ychwanegu sylw