O le ma nilo Kubernetes

O le ma nilo Kubernetes
Ọmọbinrin lori ẹlẹsẹ kan. Àpèjúwe freepik, Nomad logo lati XaasiCorp

Kubernetes ni 300-iwon gorilla ti eiyan orchestration. O ṣiṣẹ ni diẹ ninu awọn eto eiyan ti o tobi julọ ni agbaye, ṣugbọn o jẹ gbowolori.

Paapa gbowolori fun awọn ẹgbẹ kekere, eyiti yoo nilo akoko atilẹyin pupọ ati ọna ikẹkọ giga. Eyi ti pọ ju fun ẹgbẹ wa ti mẹrin. Nitorina a bẹrẹ si wa awọn ọna miiran - o si ṣubu ni ifẹ pẹlu Nomad.

Kin o nfe

Ẹgbẹ wa ṣe atilẹyin nọmba kan ti ibojuwo iṣẹ ṣiṣe ti o wọpọ ati awọn iṣẹ itupalẹ: Awọn aaye ipari API fun awọn metiriki ti a kọ sinu Go, awọn okeere Prometheus, awọn parsers log gẹgẹbi Logstash ati Gollum, bakanna bi awọn apoti isura infomesonu gẹgẹbi InfluxDB tabi Elasticsearch. Olukuluku awọn iṣẹ wọnyi nṣiṣẹ ninu apoti tirẹ. A nilo eto ti o rọrun lati jẹ ki gbogbo rẹ ṣiṣẹ.

A bẹrẹ pẹlu atokọ ti awọn ibeere fun orchestration eiyan:

  • Nṣiṣẹ ṣeto awọn iṣẹ lori ọpọlọpọ awọn ẹrọ.
  • Akopọ ti nṣiṣẹ awọn iṣẹ.
  • Awọn ọna asopọ laarin awọn iṣẹ.
  • Tun bẹrẹ laifọwọyi ti iṣẹ naa ba lọ silẹ.
  • Itọju ohun elo nipasẹ ẹgbẹ kekere kan.

Ni afikun, awọn nkan wọnyi yoo dara, ṣugbọn kii ṣe awọn afikun ti o nilo:

  • Awọn ẹrọ fifi aami si ti o da lori awọn agbara wọn (fun apẹẹrẹ, awọn ẹrọ fifi aami si pẹlu awọn disiki yara fun awọn iṣẹ I/O ti o wuwo).
  • Agbara lati ṣiṣe awọn iṣẹ ni ominira ti orchestrator (fun apẹẹrẹ, lakoko idagbasoke).
  • Ibi ti o wọpọ lati pin awọn atunto ati awọn aṣiri.
  • Ipari fun awọn metiriki ati awọn akọọlẹ.

Kini idi ti Kubernetes ko tọ fun wa

Bi a ṣe ṣe afọwọkọ pẹlu Kubernetes, a ṣe akiyesi pe a n ṣafikun awọn fẹlẹfẹlẹ eka ti imọ-jinlẹ ti o pọ si ti a gbarale pupọ.

Gẹgẹbi apẹẹrẹ, Kubernetes ṣe atilẹyin awọn atunto iṣẹ ti a ṣe sinu nipasẹ ConfigMaps. O le yara ni idamu, paapaa nigbati o ba dapọ awọn faili iṣeto ni ọpọ tabi ṣafikun awọn iṣẹ afikun si adarọ-ese kan. Kubernetes (tabi àṣíborí ninu ọran yii) ngbanilaaye lati ṣe adaṣe awọn atunto ita lati ya awọn ifiyesi lọtọ. Ṣugbọn eyi ṣe abajade ni wiwọ, idapọmọra ti o farapamọ laarin iṣẹ akanṣe rẹ ati Kubernetes. Sibẹsibẹ, Helm ati ConfigMaps jẹ awọn aṣayan afikun, nitorinaa o ko ni lati lo wọn. O le daakọ iṣeto ni irọrun sinu aworan Docker. Bibẹẹkọ, o jẹ idanwo lati lọ si ọna yii ki o kọ awọn abstraction ti ko wulo ti o le banujẹ nigbamii.

Ni afikun, ilolupo ilolupo Kubernetes n dagba ni iyara. Yoo gba akoko pupọ ati agbara lati duro ni imudojuiwọn pẹlu awọn iṣe ti o dara julọ ati awọn irinṣẹ tuntun. Kubectl, minikube, kubeadm, Helm, tiller, kops, oc - atokọ naa tẹsiwaju ati siwaju. Kii ṣe gbogbo awọn irinṣẹ wọnyi ni a nilo nigbati o ba bẹrẹ, ṣugbọn iwọ ko mọ ohun ti iwọ yoo nilo, nitorinaa o nilo lati mọ ohun gbogbo. Nitori eyi, ọna ẹkọ jẹ ga julọ.

Nigbati lati lo Kubernetes

Ninu ile-iṣẹ wa, ọpọlọpọ eniyan lo Kubernetes ati pe wọn dun pupọ pẹlu rẹ. Awọn iṣẹlẹ wọnyi jẹ iṣakoso nipasẹ Google tabi Amazon, ti o ni awọn orisun lati ṣe atilẹyin fun wọn.

Kubernetes wa pẹlu iyanu awọn ẹya ara ẹrọ, eyiti o jẹ ki orchestration apoti ni iwọn diẹ sii ni iṣakoso:

  • Alaye isakoso ẹtọ.
  • Awọn olutona aṣa fi kannaa si awọn iṣupọ. Iwọnyi jẹ awọn eto lasan ti o sọrọ si Kubernetes API.
  • Autoscaling! Kubernetes le ṣe iwọn awọn iṣẹ lori ibeere nipa lilo awọn metiriki iṣẹ ati laisi nilo ilowosi afọwọṣe.

Ibeere naa jẹ boya o nilo gbogbo awọn ẹya wọnyi gaan. O ko le kan gbekele lori abstractions; iwọ yoo ni lati wa ohun ti n ṣẹlẹ labẹ hood.

Ẹgbẹ wa n pese ọpọlọpọ awọn iṣẹ latọna jijin (nitori asopọ isunmọ si awọn amayederun akọkọ), nitorinaa a ko fẹ lati gbe iṣupọ Kubernetes tiwa ga. A kan fẹ lati pese awọn iṣẹ.

Awọn batiri ko si

Nomad jẹ 20% ti orchestration ti o pese 80% ti ohun ti o nilo. Gbogbo ohun ti o ṣe ni ṣakoso awọn imuṣiṣẹ. Nomad ṣe abojuto awọn imuṣiṣẹ, tun bẹrẹ awọn apoti ni ọran ti awọn aṣiṣe… ati pe iyẹn ni.

Gbogbo aaye ti Nomad ni ohun ti o ṣe o kere ju: ko si granular awọn ẹtọ isakoso tabi o gbooro sii nẹtiwọki imulo, eyi jẹ apẹrẹ pataki. Awọn paati wọnyi ni a pese ni ita tabi rara rara.

Mo ro pe Nomad ti rii adehun pipe laarin irọrun ti lilo ati iwulo. O dara fun awọn iṣẹ kekere, ominira. Ti o ba nilo iṣakoso diẹ sii, iwọ yoo ni lati gbe wọn soke funrararẹ tabi lo ọna ti o yatọ. Nomad ni o kan akọrin.

Ohun ti o dara julọ nipa Nomad ni pe o rọrun rọpo. Ni iṣe ko si asopọ si ataja, nitori awọn iṣẹ rẹ ni irọrun ṣepọ si eyikeyi eto miiran ti o ṣakoso awọn iṣẹ. O kan nṣiṣẹ bi alakomeji deede lori gbogbo ẹrọ ti o wa ninu iṣupọ, iyẹn ni gbogbo!

Nomad ilolupo ti loosely pelu irinše

Agbara gidi ti Nomad ni ilolupo eda abemi. O ṣepọ daradara daradara pẹlu miiran - iyan patapata - awọn ọja bii Konsi (itaja iye-bọtini) tabi Ile ifinkan pamo (aṣiri ilana). Ninu faili Nomad awọn apakan wa fun yiyo data jade lati awọn iṣẹ wọnyi:

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
}

Nibi ti a ti ka awọn bọtini service/geo-api/log-verbosity lati Consul ati ṣafihan rẹ si oniyipada ayika lakoko iṣẹ LOG_LEVEL. A tun ṣafihan bọtini naa secret/geo-api-key lati ifinkan bi API_KEY. Rọrun ṣugbọn lagbara!

Nitori irọrun rẹ, Nomad jẹ irọrun extensible pẹlu awọn iṣẹ miiran nipasẹ API. Fun apẹẹrẹ, awọn afi fun awọn iṣẹ-ṣiṣe ni atilẹyin. A fi aami si gbogbo awọn iṣẹ pẹlu awọn metiriki trv-metrics. Ni ọna yii Prometheus le ni irọrun wa awọn iṣẹ wọnyi nipasẹ Consul ati lorekore ṣayẹwo aaye ipari /metrics fun titun data. Bakanna le ṣee ṣe, fun apẹẹrẹ, fun awọn akọọlẹ, lilo Loki.

Ọpọlọpọ awọn apẹẹrẹ miiran ti extensibility:

  • Ṣiṣe iṣẹ Jenkins kan nipa lilo kio kan, ati Consul ṣe abojuto atunkọ iṣẹ Nomad nigbati iṣeto iṣẹ ba yipada.
  • Ceph ṣe afikun eto faili ti o pin si Nomad.
  • fabio fun fifuye iwontunwosi.

Gbogbo eyi gba laaye organically se agbekale amayederun laisi eyikeyi asopọ pataki si ataja.

Ikilọ ododo

Ko si eto ni pipe. Emi ko ṣeduro lẹsẹkẹsẹ ṣafihan awọn ẹya tuntun sinu iṣelọpọ. Dajudaju awọn aṣiṣe wa ati awọn ẹya ti o padanu, ṣugbọn kanna kan si Kubernetes.

Ti a ṣe afiwe si Kubernetes, agbegbe Nomad ko tobi to. Kubernetes ti ni nipa awọn iṣẹ ṣiṣe 75 ati awọn oluranlọwọ 000, lakoko ti Nomad ni nipa awọn iṣẹ ṣiṣe 2000 ati awọn oluranlọwọ 14. Nomad yoo ni akoko lile lati tọju iyara Kubernetes, ṣugbọn boya ko ni lati! O jẹ eto amọja diẹ sii, ati agbegbe ti o kere julọ tun tumọ si pe ibeere fa rẹ le ṣe akiyesi ati gba, ni akawe si Kubernetes.

Akopọ

Laini isalẹ: Maṣe lo Kubernetes nitori gbogbo eniyan miiran n ṣe. Ṣe ayẹwo awọn ibeere rẹ ni pẹkipẹki ati ṣayẹwo iru irinṣẹ wo ni anfani diẹ sii.

Ti o ba gbero lati ran toonu kan ti awọn iṣẹ isokan sori awọn amayederun iwọn-nla, lẹhinna Kubernetes jẹ aṣayan ti o dara. Kan ṣe akiyesi idiju ti a ṣafikun ati awọn idiyele iṣẹ. Diẹ ninu awọn idiyele le yago fun nipa lilo agbegbe Kubernetes ti iṣakoso bii Ẹrọ Kubernetes Google tabi Amazon EKS.

Ti o ba kan n wa akọrin ti o gbẹkẹle ti o rọrun lati ṣetọju ati pe o ṣee ṣe, kilode ti o ko gbiyanju Nomad? O le jẹ iyalẹnu bawo ni eyi yoo ṣe gba ọ.

Ti Kubernetes ba ṣe afiwe si ọkọ ayọkẹlẹ kan, Nomad yoo jẹ ẹlẹsẹ kan. Nigba miiran o nilo ohun kan ati nigba miiran o nilo miiran. Awọn mejeeji ni ẹtọ lati wa.

orisun: www.habr.com

Fi ọrọìwòye kun