Kubernetes: ìmọ orisun la ataja-pato

Kaabo, orukọ mi ni Dmitry Krasnov. Fun diẹ sii ju ọdun marun lọ Mo ti n ṣakoso awọn iṣupọ Kubernetes ati ṣiṣe awọn ile-iṣẹ microservice eka. Ni ibẹrẹ ọdun yii, a ṣe ifilọlẹ iṣẹ kan fun ṣiṣakoso awọn iṣupọ Kubernetes ti o da lori Containerum. Gbigba anfani yii, Emi yoo sọ fun ọ kini Kubernetes jẹ ati bi iṣọpọ pẹlu olutaja ṣe yatọ si orisun ṣiṣi.

Lati bẹrẹ pẹlu, kini Kubernetes. Eyi jẹ eto fun iṣakoso awọn apoti lori nọmba nla ti awọn ọmọ-ogun. Láti Gíríìkì, lọ́nà kan, a túmọ̀ rẹ̀ sí “atukọ̀” tàbí “ọ̀gágun.” Ni akọkọ ni idagbasoke nipasẹ Google ati lẹhinna ṣe itọrẹ gẹgẹbi ilowosi imọ-ẹrọ si Cloud Native Computing Foundation, agbari ti kii ṣe ere ti kariaye ti o ṣajọpọ awọn olupilẹṣẹ oludari agbaye, awọn olumulo ipari ati awọn olupese imọ-ẹrọ eiyan.

Kubernetes: ìmọ orisun la ataja-pato

Ṣakoso awọn nọmba nla ti awọn apoti

Bayi jẹ ki a ro ero iru awọn apoti wọnyi jẹ. Eyi jẹ ohun elo pẹlu gbogbo agbegbe rẹ - ni pataki awọn ile-ikawe eyiti eto naa da lori. Gbogbo eyi ni akopọ ninu awọn ile-ipamọ ati gbekalẹ ni irisi aworan ti o le ṣiṣẹ laibikita ẹrọ ṣiṣe, idanwo ati diẹ sii. Ṣugbọn iṣoro kan wa - iṣakoso awọn apoti lori nọmba nla ti awọn ọmọ-ogun jẹ gidigidi soro. Ti o ni idi Kubernetes ti a da.

Aworan eiyan duro fun ohun elo kan pẹlu awọn igbẹkẹle rẹ. Ohun elo naa, awọn igbẹkẹle rẹ, ati aworan eto faili OS wa ni awọn ẹya oriṣiriṣi ti aworan naa, ti a pe ni awọn ipele. Awọn fẹlẹfẹlẹ le tun lo fun awọn apoti oriṣiriṣi. Fun apẹẹrẹ, gbogbo awọn ohun elo ni ile-iṣẹ le lo Layer mimọ Ubuntu. Nigbati o ba n ṣiṣẹ awọn apoti, ko si iwulo lati tọju ọpọlọpọ awọn adakọ ti Layer mimọ kan lori agbalejo naa. Eyi n gba ọ laaye lati mu ibi ipamọ aworan dara si ati ifijiṣẹ.

Nigba ti a ba fẹ ṣiṣe ohun elo kan lati inu eiyan kan, awọn ipele pataki ti wa ni fifẹ lori ara wọn ati pe o ti ṣẹda eto faili agbekọja. Layer gbigbasilẹ ti wa ni gbe lori oke, eyi ti o ti yọ nigbati awọn eiyan duro. Eyi ṣe idaniloju pe nigbati eiyan ba ṣiṣẹ, ohun elo yoo nigbagbogbo ni agbegbe kanna, eyiti ko le yipada. Eleyi ṣe onigbọwọ reproducibility ti awọn ayika lori yatọ si ogun OSes. Boya Ubuntu tabi CentOS, agbegbe yoo ma jẹ kanna nigbagbogbo. Ni afikun, eiyan naa ti ya sọtọ lati ọdọ agbalejo nipa lilo awọn ilana ti a ṣe sinu ekuro Linux. Awọn ohun elo ninu apo eiyan ko rii awọn faili, awọn ilana ti ogun ati awọn apoti agbegbe. Iyasọtọ ti awọn ohun elo lati OS agbalejo n pese afikun aabo ti aabo.

Awọn irinṣẹ lọpọlọpọ lo wa lati ṣakoso awọn apoti lori agbalejo kan. Awọn julọ gbajumo ninu wọn ni Docker. O faye gba o lati pese ni kikun aye ọmọ ti awọn apoti. Sibẹsibẹ, o ṣiṣẹ nikan lori ogun kan. Ti o ba nilo lati ṣakoso awọn apoti kọja ọpọlọpọ awọn ogun, Docker le ṣe apaadi aye fun awọn onimọ-ẹrọ. Ti o ni idi Kubernetes ti a da.

Ibeere fun Kubernetes jẹ deede nitori agbara lati ṣakoso awọn ẹgbẹ ti awọn apoti lori ọpọlọpọ awọn ogun bi iru nkan kan. Gbaye-gbale ti eto n pese aye lati kọ DevOps tabi Awọn iṣẹ Idagbasoke, ninu eyiti a lo Kubernetes lati ṣiṣe awọn ilana ti DevOps pupọ yii.

Kubernetes: ìmọ orisun la ataja-pato

Ṣe nọmba 1. Aṣoju iṣeto ti bi Kubernetes ṣe n ṣiṣẹ

Adaṣiṣẹ ni kikun

DevOps jẹ ipilẹ adaṣe ti ilana idagbasoke. Ni aijọju sọrọ, awọn olupilẹṣẹ kọ koodu ti o gbejade si ibi ipamọ naa. Lẹhinna koodu yii le gba laifọwọyi lẹsẹkẹsẹ sinu eiyan pẹlu gbogbo awọn ile-ikawe, idanwo ati “yiyi” si ipele atẹle - Iṣeto, ati lẹhinna lẹsẹkẹsẹ si iṣelọpọ.

Paapọ pẹlu Kubernetes, DevOps gba ọ laaye lati ṣe adaṣe ilana yii ki o waye pẹlu ko si ikopa lati ọdọ awọn olupilẹṣẹ funrararẹ. Nitori eyi, kikọ naa yarayara ni iyara, nitori olupilẹṣẹ ko ni lati ṣe eyi lori kọnputa rẹ - o kan kọ nkan kan ti koodu, titari koodu naa si ibi ipamọ, lẹhin eyi ti ṣe ifilọlẹ opo gigun ti epo, eyiti o le pẹlu ilana naa. ti ile, idanwo, ati yiyi jade. Ati pe eyi ṣẹlẹ pẹlu gbogbo ifaramọ, nitorinaa idanwo n ṣẹlẹ nigbagbogbo.

Ni akoko kanna, lilo apo eiyan gba ọ laaye lati rii daju pe gbogbo agbegbe ti eto yii yoo tu silẹ sinu iṣelọpọ ni deede ni fọọmu ti o ti ni idanwo. Iyẹn ni, ko si awọn iṣoro bii “awọn ẹya kan wa ninu idanwo, awọn miiran ni iṣelọpọ, ṣugbọn nigbati a ba fi wọn sii, ohun gbogbo ṣubu.” Ati pe niwọn igba ti a ni aṣa si ọna faaji microservice, nigbati dipo ohun elo nla kan awọn ọgọọgọrun ti awọn kekere wa, lati le ṣakoso wọn pẹlu ọwọ, oṣiṣẹ nla ti awọn oṣiṣẹ yoo nilo. Ti o ni idi ti a lo Kubernetes.

Aleebu, Aleebu, Aleebu


Ti a ba sọrọ nipa awọn anfani ti Kubernetes bi pẹpẹ kan, lẹhinna o ni awọn anfani pataki lati oju wiwo ti iṣakoso faaji microservice kan.

  • Ṣiṣakoso awọn ẹda pupọ. Ohun pataki julọ ni ṣiṣakoso awọn apoti kọja ọpọlọpọ awọn ogun. Ni pataki julọ, ṣakoso awọn ẹda ohun elo pupọ ninu awọn apoti bi nkan kan. Ṣeun si eyi, awọn onimọ-ẹrọ ko ni lati ṣe aniyan nipa eiyan kọọkan kọọkan. Ti ọkan ninu awọn apoti ba ṣubu, Kubernetes yoo rii eyi ki o tun bẹrẹ lẹẹkansi.
  • Nẹtiwọọki iṣupọ. Kubernetes tun ni ohun ti a npe ni nẹtiwọọki iṣupọ pẹlu aaye adirẹsi tirẹ. Ṣeun si eyi, podu kọọkan ni adirẹsi tirẹ. Agbọye subpod kan bi ẹyọ igbekale ti o kere ju ti iṣupọ kan ninu eyiti awọn apoti ti ṣe ifilọlẹ taara. Ni afikun, Kubernetes ni iṣẹ ṣiṣe ti o ṣajọpọ iwọntunwọnsi fifuye ati Awari Iṣẹ. Eyi n gba ọ laaye lati yọkuro iṣakoso adiresi IP afọwọṣe ati fi iṣẹ yii ranṣẹ si Kubernetes. Ati pe awọn sọwedowo ilera aifọwọyi yoo ṣe iranlọwọ lati rii awọn iṣoro ati tun awọn ijabọ si awọn adarọ-ese ṣiṣẹ.
  • Isakoso iṣeto ni. Nigbati o ba n ṣakoso nọmba nla ti awọn ohun elo, o nira lati ṣakoso iṣeto ohun elo. Fun idi eyi, Kubernetes ni awọn orisun ConfigMap pataki. Wọn gba ọ laaye lati tọju awọn atunto aarin ati ṣafihan wọn si awọn adarọ-ese nigbati o nṣiṣẹ awọn ohun elo. Ilana yii gba wa laaye lati ṣe iṣeduro iduroṣinṣin ti iṣeto ni o kere ju mẹwa tabi ọgọrun awọn ẹda ohun elo.
  • Awọn iwọn didun igbagbogbo. Awọn apoti jẹ eyiti ko le yipada ati pe nigbati apoti naa ba duro, gbogbo data ti a kọ si eto faili yoo parun. Ṣugbọn diẹ ninu awọn ohun elo tọju data taara lori disk. Lati yanju iṣoro yii, Kubernetes ni iṣẹ iṣakoso ibi ipamọ disk kan - Awọn iwọn didun ti o tẹsiwaju. Ilana yii nlo ibi ipamọ ita fun data ati pe o le gbe ibi ipamọ jubẹẹlo, dina tabi faili, sinu awọn apoti. Ojutu yii ngbanilaaye lati tọju data lọtọ lati ọdọ awọn oṣiṣẹ, eyiti o fipamọ wọn ti awọn oṣiṣẹ kanna ba fọ.
  • Fifuye Iwontunws.funfun. Bi o tilẹ jẹ pe ni Kubernetes a ṣakoso awọn nkan abọtẹlẹ bii Imuṣiṣẹ, StatefulSet, ati bẹbẹ lọ, nikẹhin awọn apoti nṣiṣẹ lori awọn ẹrọ foju deede tabi awọn olupin ohun elo. Wọn ko pe ati pe wọn le ṣubu nigbakugba. Kubernetes yoo rii eyi ati ṣe atunṣe ijabọ inu si awọn ẹda miiran. Ṣugbọn kini lati ṣe pẹlu ijabọ ti o wa lati ita? Ti o ba taara taara ijabọ si ọkan ninu awọn oṣiṣẹ, ti o ba kọlu, iṣẹ naa yoo di ai si. Lati yanju iṣoro yii, Kubernetes ni awọn iṣẹ bii Load Balancer. Wọn ṣe apẹrẹ lati tunto iwọntunwọnsi awọsanma ita laifọwọyi fun gbogbo awọn oṣiṣẹ ninu iṣupọ naa. Oniwọntunwọnsi ita yii ṣe itọsọna ijabọ ita si awọn oṣiṣẹ ati ṣe abojuto ipo wọn funrararẹ. Ti o ba jẹ pe ọkan tabi diẹ sii awọn oṣiṣẹ ko si, a darí ijabọ si awọn miiran. Eyi n gba ọ laaye lati ṣẹda awọn iṣẹ ti o wa ga julọ nipa lilo Kubernetes.

Kubernetes ṣiṣẹ dara julọ nigbati o nṣiṣẹ awọn ile-iṣẹ microservice. O ti wa ni ṣee ṣe lati se awọn eto sinu kilasika faaji, sugbon o jẹ pointless. Ti ohun elo ko ba le ṣiṣẹ lori awọn ẹda pupọ, lẹhinna iyatọ wo ni o ṣe - ni Kubernetes tabi rara?

Ṣii orisun Kubernetes


Orisun ṣiṣi Kubernetes jẹ ohun nla: Mo fi sii ati pe o ṣiṣẹ. O le gbe lọ sori awọn olupin ohun elo tirẹ, lori awọn amayederun tirẹ, fi sori ẹrọ awọn oluwa ati awọn oṣiṣẹ lori eyiti gbogbo awọn ohun elo yoo ṣiṣẹ. Ati ṣe pataki julọ, gbogbo eyi jẹ ọfẹ. Sibẹsibẹ, awọn nuances wa.

  • Akọkọ ni ibeere fun imọ ati iriri ti awọn alakoso ati awọn ẹlẹrọ ti yoo ran ati atilẹyin gbogbo eyi. Níwọ̀n bí oníbàárà náà ti gba òmìnira iṣẹ́ pípé nínú ìdìpọ̀, ó gba ojúṣe fún iṣẹ́ ìdìpọ̀ fúnrarẹ̀. Ati pe o rọrun pupọ lati fọ ohun gbogbo nibi.
  • Awọn keji ni aini ti integrations. Ti o ba ṣiṣẹ Kubernetes laisi pẹpẹ ipalọlọ olokiki olokiki, iwọ kii yoo gba gbogbo awọn anfani ti eto naa. Bii lilo Awọn iwọn didun Iduroṣinṣin ati awọn iṣẹ iwọntunwọnsi fifuye.

Kubernetes: ìmọ orisun la ataja-pato

olusin 2. k8s faaji

Kubernetes lati ataja


Ijọpọ pẹlu olupese awọsanma pese awọn aṣayan meji:

  • Ni akọkọ, eniyan le nirọrun tẹ bọtini “ṣẹda iṣupọ” ki o gba iṣupọ kan ti a ti tunto tẹlẹ ati ṣetan fun lilo.
  • Ni ẹẹkeji, olutaja funrararẹ fi iṣupọ naa sori ẹrọ ati ṣeto iṣọpọ pẹlu awọsanma.

Bi o ṣe ṣẹlẹ nibi. Ẹlẹrọ ti o bẹrẹ iṣupọ naa ṣalaye iye awọn oṣiṣẹ ti o nilo ati pẹlu awọn aye wo (fun apẹẹrẹ, awọn oṣiṣẹ 5, ọkọọkan pẹlu awọn CPU 10, 16 GB ti Ramu ati, sọ, 100 GB ti disk). Lẹhin eyi o ni iraye si iṣupọ ti o ti ṣẹda tẹlẹ. Ni ọran yii, awọn oṣiṣẹ ti o ti gbejade fifuye naa ni a gbe lọ si alabara patapata, ṣugbọn gbogbo ọkọ ofurufu iṣakoso wa labẹ ojuṣe ti olutaja (ti o ba pese iṣẹ naa ni ibamu si awoṣe iṣẹ iṣakoso).

Sibẹsibẹ, eto yii ni awọn alailanfani rẹ. Nitori otitọ pe ọkọ ofurufu iṣakoso wa pẹlu olutaja, olutaja ko fun ni iwọle ni kikun si alabara, ati pe eyi dinku irọrun ni ṣiṣẹ pẹlu Kubernetes. Nigba miiran o ṣẹlẹ pe alabara kan fẹ lati ṣafikun diẹ ninu awọn iṣẹ ṣiṣe kan pato si Kubernetes, fun apẹẹrẹ, ijẹrisi nipasẹ LDAP, ṣugbọn iṣeto ọkọ ofurufu iṣakoso ko gba eyi laaye.

Kubernetes: ìmọ orisun la ataja-pato

Ṣe nọmba 3. Apeere ti iṣupọ Kubernetes lati ọdọ olupese awọsanma

Kini lati yan: ṣiṣi orisun tabi ataja


Nitorinaa, jẹ orisun ṣiṣi silẹ Kubernetes tabi ataja kan pato? Ti a ba gba orisun ṣiṣi Kubernetes, lẹhinna olumulo ṣe ohun ti o fẹ pẹlu rẹ. Ṣugbọn aye nla wa ti iyaworan ararẹ ni ẹsẹ. Pẹlu olutaja o nira sii, nitori pe ohun gbogbo ni a ro ati tunto fun ile-iṣẹ naa. Alailanfani nla julọ ti orisun ṣiṣi Kubernetes ni ibeere fun awọn alamọja. Pẹlu aṣayan olutaja, ile-iṣẹ naa ni ominira lati orififo yii, ṣugbọn yoo ni lati pinnu boya lati sanwo awọn alamọja rẹ tabi olutaja naa.

Kubernetes: ìmọ orisun la ataja-pato

Kubernetes: ìmọ orisun la ataja-pato

O dara, awọn anfani jẹ kedere, awọn konsi ni a tun mọ. Ohun kan jẹ igbagbogbo: Kubernetes yanju ọpọlọpọ awọn iṣoro nipa ṣiṣe adaṣe iṣakoso ti ọpọlọpọ awọn apoti. Ati eyi ti ọkan lati yan, ìmọ orisun tabi ataja - gbogbo eniyan ṣe ara wọn ipinnu.

Nkan naa ti pese sile nipasẹ Dmitry Krasnov, ayaworan oludari ti iṣẹ Containerum ti olupese #CloudMTS

orisun: www.habr.com

Fi ọrọìwòye kun