Kubernetes: sous louvri vs espesifik machann

Bonjou, non mwen se Dmitry Krasnov. Pou plis pase senk ane mwen te administre gwoup Kubernetes ak bati achitekti mikwosèvis konplèks. Nan kòmansman ane sa a, nou te lanse yon sèvis pou jere gwoup Kubernetes ki baze sou Containerum. Pran opòtinite sa a, mwen pral di w kisa Kubernetes ye ak ki jan entegrasyon ak yon machann diferan de sous louvri.

Pou kòmanse, ki sa ki Kubernetes. Sa a se yon sistèm pou jere resipyan sou yon gwo kantite lame. Soti nan grèk, an reyalite, yo tradui l kòm "pilòt" oswa "timonier". Okòmansman te devlope pa Google epi answit bay kòm yon kontribisyon teknoloji nan Cloud Native Computing Foundation, yon òganizasyon entènasyonal san bi likratif ki rasanble dirijan devlopè nan mond lan, itilizatè final yo ak founisè teknoloji veso yo.

Kubernetes: sous louvri vs espesifik machann

Jere yon gwo kantite resipyan

Koulye a, kite a konnen ki kalite resipyan sa yo ye. Sa a se yon aplikasyon ak tout anviwònman li yo - sitou bibliyotèk yo sou ki pwogram nan depann. Tout bagay sa a se pake nan achiv ak prezante nan fòm lan nan yon imaj ki ka kouri kèlkeswa sistèm nan fonksyone, teste ak plis ankò. Men, gen yon pwoblèm - jere resipyan sou yon gwo kantite lame se trè difisil. Se poutèt sa Kubernetes te kreye.

Yon imaj veso reprezante yon aplikasyon plis depandans li yo. Aplikasyon an, depandans li yo, ak imaj sistèm dosye OS yo sitiye nan diferan pati nan imaj la, sa yo rele kouch. Kouch yo ka reyitilize pou diferan resipyan. Pou egzanp, tout aplikasyon nan yon konpayi ta ka itilize kouch debaz Ubuntu. Lè w ap kouri kontenè, pa gen okenn nesesite pou estoke plizyè kopi yon sèl kouch debaz sou lame a. Sa a pèmèt ou optimize depo imaj ak livrezon.

Lè nou vle kouri yon aplikasyon ki soti nan yon veso, kouch ki nesesè yo sipèpoze youn sou lòt epi yo fòme yon sistèm fichye kouvri. Yo mete yon kouch anrejistreman sou tèt, ki retire lè veso a sispann. Sa a asire ke lè veso a kouri, aplikasyon an ap toujou gen menm anviwònman an, ki pa ka chanje. Sa a garanti repwodiksyon anviwònman an sou diferan OS lame. Kit se Ubuntu oswa CentOS, anviwònman an ap toujou menm jan an. Anplis de sa, veso a izole nan lame a lè l sèvi avèk mekanis ki bati nan nwayo Linux la. Aplikasyon nan yon veso pa wè dosye, pwosesis lame a ak resipyan vwazen yo. Izolasyon aplikasyon sa a soti nan OS lame a bay yon kouch sekirite adisyonèl.

Gen anpil zouti ki disponib pou jere resipyan sou yon lame. Ki pi popilè nan yo se Docker. Li pèmèt ou bay sik lavi konplè nan resipyan yo. Sepandan, li travay sèlman sou yon sèl lame. Si ou bezwen jere resipyan atravè plizyè lame, Docker ka fè lavi mò pou enjenyè yo. Se poutèt sa Kubernetes te kreye.

Demann pou Kubernetes se jisteman akòz kapasite nan jere gwoup resipyan sou plizyè lame kòm yon kalite yon sèl antite. Popilarite sistèm nan bay opòtinite pou konstwi DevOps oswa Operasyon Devlopman, kote Kubernetes yo itilize pou kouri pwosesis DevOps sa a.

Kubernetes: sous louvri vs espesifik machann

Figi 1. Reprezantasyon chematik ki jan Kubernetes travay

Otomatik konplè

DevOps se fondamantalman automatisation nan pwosesis devlopman. Apeprè pale, devlopè yo ekri kòd ki telechaje nan depo a. Lè sa a, kòd sa a ka otomatikman kolekte imedyatman nan yon veso ak tout bibliyotèk yo, teste ak "woule soti" nan pwochen etap la - Etap, ak Lè sa a imedyatman nan Pwodiksyon.

Ansanm ak Kubernetes, DevOps pèmèt ou otomatize pwosesis sa a pou ke li rive ak nòmalman pa gen okenn patisipasyon nan men devlopè yo tèt yo. Akòz sa a, bati a se siyifikativman pi vit, depi pwomotè a pa oblije fè sa sou òdinatè li - li tou senpleman ekri yon moso nan kòd, pouse kòd la nan repozitwa a, apre yo fin ki tiyo a te lanse, ki ka gen ladan pwosesis la. nan konstriksyon, tès, ak woule soti. Epi sa rive ak chak komèt, kidonk tès yo fèt kontinyèlman.

An menm tan an, lè l sèvi avèk yon veso pèmèt ou asire w ke tout anviwònman an nan pwogram sa a pral lage nan pwodiksyon egzakteman nan fòm nan ki li te teste. Sa vle di, pa pral gen pwoblèm tankou "te gen kèk vèsyon nan tès la, lòt moun nan pwodiksyon, men lè nou enstale yo, tout bagay tonbe." Epi depi jodi a nou gen yon tandans nan achitekti mikwosèvis, lè olye de yon gwo aplikasyon gen plizyè santèn ti, yo nan lòd yo administre yo manyèlman, yon anplwaye gwo anplwaye yo pral mande. Se poutèt sa nou itilize Kubernetes.

Avantaj, avantaj, avantaj


Si nou pale sou avantaj ki genyen nan Kubernetes kòm yon platfòm, Lè sa a, li gen avantaj enpòtan nan pwen de vi nan jere yon achitekti mikwosèvis.

  • Jere plizyè kopi. Bagay ki pi enpòtan an se jere resipyan atravè plizyè lame. Sa ki pi enpòtan, jere plizyè kopi aplikasyon nan resipyan kòm yon sèl antite. Mèsi a sa a, enjenyè yo pa bezwen enkyete sou chak veso endividyèl. Si youn nan veso yo aksidan, Kubernetes pral wè sa a epi rekòmanse li ankò.
  • Cluster rezo. Kubernetes tou gen yon sa yo rele rezo gwoup ak espas adrès pwòp li yo. Mèsi a sa a, chak gous gen adrès pwòp li yo. Yon subpod konprann kòm inite estriktirèl minimòm nan yon gwoup kote resipyan yo lanse dirèkteman. Anplis de sa, Kubernetes gen fonksyonalite ki konbine yon balans chaj ak Dekouvèt Sèvis. Sa a pèmèt ou debarase m de jesyon adrès IP manyèl epi delege travay sa a nan Kubernetes. Ak chèk sante otomatik yo pral ede detekte pwoblèm ak redireksyon trafik nan gous k ap travay.
  • Jesyon konfigirasyon. Lè w ap jere yon gwo kantite aplikasyon, li vin difisil pou jere konfigirasyon aplikasyon an. Pou rezon sa a, Kubernetes gen resous espesyal ConfigMap. Yo pèmèt ou sere konfigirasyon santralman epi ekspoze yo nan gous lè w ap kouri aplikasyon yo. Mekanis sa a pèmèt nou garanti konsistans nan konfigirasyon an nan omwen dis oswa yon santèn kopi aplikasyon.
  • Komèsan ki pèsistan. Kontenè yo natirèlman imuiabl epi lè veso a sispann, tout done ki ekri nan sistèm dosye a pral detwi. Men, gen kèk aplikasyon pou estoke done dirèkteman sou disk. Pou rezoud pwoblèm sa a, Kubernetes gen yon fonksyonalite jesyon depo disk - Persistent Volumes. Mekanis sa a sèvi ak depo ekstèn pou done epi li ka transfere depo ki pèsistan, blòk oswa dosye, nan resipyan. Solisyon sa a pèmèt ou estoke done separeman de travayè yo, ki sove yo si travayè sa yo menm kraze.
  • Load Balancer. Menmsi nan Kubernetes nou jere antite abstrè tankou Deployment, StatefulSet, elatriye, finalman resipyan yo kouri sou machin vityèl regilye oswa sèvè pyès ki nan konpitè. Yo pa pafè epi yo ka tonbe nenpòt ki lè. Kubernetes pral wè sa a epi redireksyon trafik entèn nan lòt kopi. Men, kisa pou fè ak trafik ki soti deyò? Si ou senpleman dirije trafik nan youn nan travayè yo, si li fè aksidan, sèvis la ap vin pa disponib. Pou rezoud pwoblèm sa a, Kubernetes gen sèvis tankou Load Balancer. Yo fèt otomatikman konfigirasyon yon balanse nwaj ekstèn pou tout travayè nan gwoup la. Balansè ekstèn sa a dirije trafik ekstèn nan travayè yo epi kontwole estati yo tèt li. Si youn oswa plizyè travayè vin pa disponib, trafik yo redireksyone sou lòt moun. Sa a pèmèt ou kreye sèvis ki trè disponib lè l sèvi avèk Kubernetes.

Kubernetes travay pi byen lè w ap kouri achitekti mikwosèvis. Li posib aplike sistèm nan nan achitekti klasik, men li se initil. Si yon aplikasyon pa ka kouri sou plizyè kopi, ki diferans li fè - nan Kubernetes oswa ou pa?

Sous louvri Kubernetes


Sous louvri Kubernetes se yon gwo bagay: mwen enstale li epi li travay. Ou ka deplwaye li sou sèvè pyès ki nan konpitè pwòp ou yo, sou pwòp enfrastrikti ou, enstale mèt ak travayè sou ki tout aplikasyon yo pral kouri. Ak pi enpòtan, tout bagay sa yo gratis. Sepandan, gen nuans.

  • Premye a se demann pou konesans ak eksperyans administratè ak enjenyè ki pral deplwaye ak sipòte tout bagay sa yo. Depi kliyan an resevwa libète konplè nan aksyon nan gwoup la, li pote responsablite pou pèfòmans nan gwoup la tèt li. Epi li trè fasil kraze tout bagay isit la.
  • Dezyèm lan se mank de entegrasyon. Si ou kouri Kubernetes san yon platfòm Virtualization popilè, ou p ap jwenn tout benefis ki genyen nan pwogram nan. Tankou lè l sèvi avèk volim pèsistan ak sèvis balans chaj.

Kubernetes: sous louvri vs espesifik machann

Figi 2. k8s achitekti

Kubernetes soti nan vandè a


Entegrasyon ak yon founisè nwaj bay de opsyon:

  • Premyèman, yon moun ka tou senpleman klike sou "kreye gwoup" bouton an epi jwenn yon gwoup ki deja konfigirasyon ak pare pou itilize.
  • Dezyèmman, machann nan tèt li enstale gwoup la epi li mete kanpe entegrasyon ak nwaj la.

Ki jan sa rive isit la. Enjenyè ki kòmanse gwoup la presize konbyen travayè li bezwen ak ki paramèt (pa egzanp, 5 travayè, yo chak ak 10 CPU, 16 GB RAM ak, di, 100 GB disk). Apre sa, li jwenn aksè nan gwoup la deja fòme. Nan ka sa a, travayè yo sou ki chaj la te lanse yo konplètman transfere nan kliyan an, men tout avyon an jesyon rete anba responsablite nan vandè a (si sèvis la bay dapre modèl sèvis jere).

Sepandan, konplo sa a gen dezavantaj li yo. Akòz lefèt ke avyon an jesyon rete ak vandè a, vandè a pa bay aksè konplè a kliyan an, e sa diminye fleksibilite nan travay ak Kubernetes. Pafwa li rive ke yon kliyan vle ajoute kèk fonksyonalite espesifik nan Kubernetes, pou egzanp, otantifikasyon atravè LDAP, men konfigirasyon avyon an jesyon pa pèmèt sa a.

Kubernetes: sous louvri vs espesifik machann

Figi 3. Egzanp yon gwoup Kubernetes ki soti nan yon founisè nwaj

Ki sa yo chwazi: sous louvri oswa machann


Se konsa, èske Kubernetes sous louvri oswa vandè espesifik? Si nou pran sous louvri Kubernetes, Lè sa a, itilizatè a fè sa li vle ak li. Men, gen yon gwo chans tire tèt ou nan pye a. Avèk vandè a li pi difisil, paske tout bagay se panse deyò ak configuré pou konpayi an. Dezavantaj nan pi gwo nan sous louvri Kubernetes se kondisyon an pou espesyalis. Avèk yon opsyon machann, konpayi an libere nan tèt fè mal sa a, men li pral oblije deside si yo peye espesyalis li yo oswa machann la.

Kubernetes: sous louvri vs espesifik machann

Kubernetes: sous louvri vs espesifik machann

Oke, avantaj yo evidan, dezavantaj yo konnen tou. Yon bagay se konstan: Kubernetes rezoud yon anpil nan pwoblèm nan otomatize jesyon an nan anpil resipyan. Ak ki youn pou chwazi, sous louvri oswa machann - tout moun pran pwòp desizyon yo.

Atik la te prepare pa Dmitry Krasnov, dirijan achitèk nan sèvis Containerum nan founisè a #CloudMTS.

Sous: www.habr.com

Add nouvo kòmantè