Kubernetes: çavkaniya vekirî li hember firoşkar-taybet

Silav, navê min Dmitry Krasnov e. Zêdetirî pênc sal in ku ez komikên Kubernetes îdare dikim û mîmarên mîkroxizmetên tevlihev ava dikim. Di destpêka vê salê de, me karûbarek ji bo birêvebirina komên Kubernetes li ser bingeha Containerum da destpêkirin. Ji vê fersendê îstifade dikim, ez ê ji we re bibêjim Kubernetes çi ye û çawa entegrasyona bi firoşkarek re ji çavkaniya vekirî cûda dibe.

Ji bo destpêkê, çi ye Kubernetes. Ev pergalek ji bo birêvebirina konteynerên li ser hejmareke mezin a mêvandar e. Ji Yewnanî, bi awayê, ew wekî "pîlot" an "pîlot" tê wergerandin. Bi eslê xwe ji hêla Google ve hatî pêşve xistin û dûv re wekî tevkariya teknolojiyê ji Weqfa Cloud Native Computing, rêxistinek ne-qezenc a navneteweyî ya ku pêşdebirên pêşeng ên cîhanê, bikarhênerên dawîn û pêşkêşkerên teknolojiya konteynerê tîne cem hev.

Kubernetes: çavkaniya vekirî li hember firoşkar-taybet

Hejmarek mezin konteyneran îdare bikin

Naha em fêr bibin ka ev çi celeb konteynir in. Ev serîlêdanek bi tevahiya hawîrdora xwe re ye - nemaze pirtûkxaneyên ku bername pê ve girêdayî ye. Hemî ev di arşîvan de têne pak kirin û di forma wêneyek ku dikare bêyî pergala xebitandinê, ceribandin û hêj bêtir were xebitandin têne pêşkêş kirin. Lê pirsgirêkek heye - birêvebirina konteyneran li ser hejmareke mezin ji mêvandaran pir dijwar e. Ji ber vê yekê Kubernetes hate afirandin.

Wêneyek konteynerek serîlêdanek plus girêdayîbûna wê nîşan dide. Serlêdan, girêdanên wê, û wêneya pergala pelê ya OS-ê di beşên cihêreng ên wêneyê de, ku jê re tê gotin qatan, cih digirin. Layer dikarin ji bo konteynerên cûda ji nû ve werin bikar anîn. Mînakî, hemî serîlêdanên di pargîdaniyek de dibe ku qata bingehîn a Ubuntu bikar bînin. Dema ku konteyneran dimeşîne, ne hewce ye ku pir kopiyên yek qatek bingehîn li ser mêvandar were hilanîn. Ev dihêle hûn hilanînê û radestkirina wêneyê xweşbîn bikin.

Dema ku em dixwazin serîlêdanek ji konteynerek bimeşînin, qatên pêwîst li ser hev têne danîn û pergalek pelê ya sergirtî pêk tê. Qatek tomarkirinê li jorê tê danîn, ku gava ku konteynir disekine tê rakirin. Ev piştrast dike ku dema ku konteynir dimeşîne, serîlêdan dê her gav xwedan heman hawîrdorê be, ku nayê guhertin. Ev ji nû ve hilberîna jîngehê li ser OS-yên mêvandar ên cihêreng garantî dike. Ma ew Ubuntu an CentOS be, jîngeh dê her gav yek be. Digel vê yekê, konteynir bi karanîna mekanîzmayên ku di kernel Linux-ê de hatine çêkirin ji mêvandarê veqetandî ye. Serlêdanên di konteynerê de pelan, pêvajoyên mêvandar û konteynerên cîran nabînin. Ev veqetandina serîlêdanan ji OS-ya mêvandar pêvek ewlehiyê peyda dike.

Ji bo birêvebirina konteynerên li ser mêvandar gelek amûr hene. Ya herî populer ji wan Docker e. Ew dihêle hûn çerxa jiyana tevahî ya konteyneran peyda bikin. Lêbelê, ew tenê li ser yek mêvandar dixebite. Heke hûn hewce ne ku konteyneran li ser gelek mêvandaran îdare bikin, Docker dikare jiyanê ji endezyaran re bike dojeh. Ji ber vê yekê Kubernetes hate afirandin.

Daxwaza Kubernetes bi rastî ji ber şiyana birêvebirina komên konteyneran li ser gelek mêvandar wekî celebek yekane ye. Popularîteya pergalê fersendê dide avakirina DevOps an Operasyonên Pêşveçûnê, ku tê de Kubernetes tê bikar anîn da ku pêvajoyên vê DevOps-ê bimeşîne.

Kubernetes: çavkaniya vekirî li hember firoşkar-taybet

Figure 1. Nûnertiya şematîkî ya ku Kubernetes çawa dixebite

automation Full

DevOps bi bingehîn xweseriya pêvajoya pêşkeftinê ye. Bi gelemperî, pêşdebir koda ku li depoyê tê barkirin dinivîsin. Dûv re ev kod dikare tavilê di konteynerek bi hemî pirtûkxaneyan re bixweber were berhev kirin, were ceribandin û "derxe" qonaxa paşîn - Staging, û dûv re tavilê berbi Hilberînê.

Bi Kubernetes re, DevOps destûrê dide we ku hûn vê pêvajoyê otomatîk bikin da ku ew hema hema bêyî tevlêbûna pêşdebiran bixwe çêbibe. Ji ber vê yekê, avahî bi girîngî bileztir e, ji ber ku pêşdebir ne hewce ye ku vê yekê li ser komputera xwe bike - ew bi tenê perçeyek kodê dinivîse, kodê diavêje depoyê, piştî ku boriyê dest pê dike, ku dikare pêvajoyê bihewîne. avakirina, ceribandin û avêtinê. Û ev yek bi her peywirê re dibe, ji ber vê yekê ceribandin bi domdarî diqewime.

Di heman demê de, karanîna konteynerek dihêle hûn pê ewle bin ku tevahiya hawîrdora vê bernameyê dê tam bi forma ku tê ceribandin di hilberînê de were berdan. Ango, dê pirsgirêkên mîna "di ceribandinê de hin guherto hebûn, yên din di hilberînê de hebûn, lê gava ku me ew saz kirin, her tişt ket." Û ji ber ku îro meyla me ber bi mîmariya mîkroxizmetê ve heye, dema ku li şûna yek serîlêdana mezin bi sedan piçûk hene, ji bo ku wan bi destan birêve bibin, dê xebatkarek mezin a karmendan hewce bike. Ji ber vê yekê em Kubernetes bikar tînin.

Pros, pro, pros


Ger em li ser avantajên Kubernetes wekî platformek biaxivin, wê hingê ew ji hêla birêvebirina mîmariya mîkro-xizmetê ve xwediyê avantajên girîng e.

  • Birêvebirina kopiyên pirjimar. Tişta herî girîng birêvebirina konteyneran li ser gelek mêvandaran e. Ya girîngtir, kopiyên serîlêdanê yên pirjimar di konteyneran de wekî saziyek yekane rêve bibin. Bi saya vê yekê, endezyar neçar in ku ji her konteynerek kesane xeman bikin. Ger yek ji konteyneran têk bibe, Kubernetes dê vê bibîne û ji nû ve dest pê bike.
  • Tora komê. Kubernetes di heman demê de xwedan torgilokek komê ye ku cîhê navnîşana xwe heye. Bi saya vê, her pod navnîşana xwe heye. Subpod wekî yekîneya avahîsaziya herî kêm a komek ku tê de konteynir rasterast têne avêtin tê fêm kirin. Digel vê yekê, Kubernetes xwedan fonksiyonek e ku balansek barkirinê û Vedîtina Karûbarê yek dike. Ev dihêle hûn ji rêveberiya navnîşana IP-ya desta xilas bibin û vî karî ji Kubernetes re bişînin. Û kontrolên tenduristiyê yên otomatîkî dê alîkariya tespîtkirina pirsgirêkan bikin û seyrûseferê berbi potên xebatê vegerînin.
  • birêvebirina veavakirina. Dema ku hejmareke mezin ji serîlêdanan birêve dibin, birêvebirina veavakirina serîlêdanê dijwar dibe. Ji bo vê armancê, Kubernetes çavkaniyên taybetî yên ConfigMap hene. Ew dihêlin ku hûn mîhengan bi navendî hilînin û dema ku serîlêdanan dimeşînin wan li ser podan derxînin. Ev mekanîzma rê dide me ku em bi kêmî ve deh an sed kopiyên serîlêdanê de hevgirtina veavakirinê garantî bikin.
  • Volumes Persistent. Konteyner bi xwezayê neguhêrbar in û dema ku konteynir were sekinandin, hemî daneyên ku li pergala pelan hatine nivîsandin dê werin hilweşandin. Lê hin sepan daneyan rasterast li ser dîskê hilînin. Ji bo çareserkirina vê pirsgirêkê, Kubernetes xwedan fonksiyonek rêveberiya hilanînê ya dîskê ye - Volumes Persistent. Ev mekanîzma hilanîna derveyî ji bo daneyan bikar tîne û dikare hilanîna domdar, blok an pelê, veguhezîne konteyneran. Ev çareserî dihêle hûn daneyan ji karkeran veqetînin, ku heke van heman karkeran hilweşînin wan xilas dike.
  • Balansa barkirinê. Her çend di Kubernetes de em saziyên razber ên mîna Deployment, StatefulSet, hwd. îdare dikin, di dawiyê de konteynir li ser makîneyên virtual yên birêkûpêk an serverên hardware têne xebitandin. Ew ne bêkêmasî ne û dikarin her gav bikevin. Kubernetes dê vê yekê bibîne û seyrûsefera navxweyî berbi kopiyên din vegerîne. Lê bi seyrûsefera ku ji derve tê çi bikin? Ger hûn bi tenê seyrûseferê bi yek ji karkeran re rêve bikin, heke ew têk bibe, dê karûbar neberdest bibe. Ji bo çareserkirina vê pirsgirêkê, Kubernetes karûbarên mîna Load Balancer heye. Ew hatine sêwirandin ku bixweber hevsengek ewrê ya derveyî ji bo hemî xebatkarên di komê de mîheng bikin. Ev balanserê derve seyrûsefera derve ji karkeran re araste dike û rewşa wan bixwe dişopîne. Ger yek an çend xebatkar neberdest bibin, seyrûsefer ji yên din re tê vegerandin. Ev dihêle hûn bi karanîna Kubernetes karûbarên pir berdest biafirînin.

Kubernetes dema ku mîmarên mîkroxizmetê dimeşîne çêtirîn dixebite. Dibe ku pergalê di mîmariya klasîk de bicîh bikin, lê bêwate ye. Ger serîlêdanek nikaribe li ser gelek kopiyan bixebite, wê hingê ew çi cûdahiyê dike - li Kubernetes an na?

Çavkaniya vekirî ya Kubernetes


Çavkaniya vekirî Kubernetes tiştek mezin e: Min ew saz kir û ew dixebite. Hûn dikarin wê li ser serverên xweya hardware, li ser binesaziya xwe bicîh bikin, master û xebatkaran saz bikin ku dê hemî serîlêdan li ser wan bixebitin. Û ya herî girîng, ev hemî belaş e. Lêbelê, nuans hene.

  • Ya yekem daxwaza zanîn û ezmûna rêveber û endezyarên ku dê van hemîyan bi cih bikin û piştgirî bikin. Ji ber ku xerîdar di komê de azadiya tevahî çalakiyê distîne, ew bixwe berpirsiyariya performansa komê digire. Û ew pir hêsan e ku her tiştî li vir bişkînin.
  • Ya duyemîn jî nebûna entegrasyonê ye. Ger hûn Kubernetes bêyî platformek virtualîzasyona populer dimeşînin, hûn ê hemî feydeyên bernameyê negirin. Mîna ku karûbarên Berdewam û Balansa Bergiriyê bikar bînin.

Kubernetes: çavkaniya vekirî li hember firoşkar-taybet

jimar 2. mîmariya k8s

Kubernetes ji vendor


Yekbûnek bi pêşkêşkerek ewr re du vebijark peyda dike:

  • Pêşîn, mirov dikare bi tenê li ser bişkoka "komê biafirîne" bikirtîne û komek ji berê ve hatî mîheng kirin û ji bo karanîna amade ye bistîne.
  • Ya duyemîn, firoşkar bixwe komê saz dike û entegrasyonê bi ewr re saz dike.

Li vir çawa dibe. Endezyarê ku komê dest pê dike diyar dike ku ew çend karker û bi kîjan pîvanan hewce dike (mînak, 5 karker, her yek bi 10 CPU, 16 GB RAM û, bêje, 100 GB dîskek). Piştî vê yekê ew bigihîje koma ku berê hatî çêkirin. Di vê rewşê de, karkerên ku bar li ser têne destpêkirin bi tevahî ji xerîdar re têne veguheztin, lê tevahiya balafira rêveberiyê di bin berpirsiyariya firoşker de dimîne (heke karûbar li gorî modela karûbarê birêvebirî were peyda kirin).

Lêbelê, vê planê kêmasiyên xwe hene. Ji ber vê yekê ku balafira rêveberiyê bi firoşker re dimîne, firoşkar bi tevahî gihîştina xerîdar nade, û ev di xebata bi Kubernetes re nermbûnê kêm dike. Carinan diqewime ku xerîdarek dixwaze hin fonksiyonên taybetî li Kubernetes zêde bike, mînakî, pejirandina bi LDAP-ê, lê veavakirina balafira rêveberiyê rê nade vê yekê.

Kubernetes: çavkaniya vekirî li hember firoşkar-taybet

Wêne 3. Nimûne komek Kubernetes ji pêşkêşkerek ewr

Çi hilbijêrin: çavkaniya vekirî an firoşkar


Ji ber vê yekê, Kubernetes çavkaniya vekirî an firoşkarê taybetî ye? Ger em Kubernetes çavkaniya vekirî bigirin, wê hingê bikarhêner tiştê ku ew dixwaze bi wê re dike. Lê şansek mezin heye ku xwe li lingê xwe biteqîne. Bi firoşkar re ew dijwartir e, ji ber ku her tişt ji bo pargîdaniyê tête fikirîn û mîheng kirin. Kêmasiya herî mezin a çavkaniya vekirî Kubernetes hewcedariya pisporan e. Bi vebijarkek firoşkar re, pargîdanî ji vê serêşê xilas dibe, lê ew ê neçar bimîne ku biryarê bide ka dê pisporên xwe an firoşker bide.

Kubernetes: çavkaniya vekirî li hember firoşkar-taybet

Kubernetes: çavkaniya vekirî li hember firoşkar-taybet

Belê, erênî diyar in, nebaş jî têne zanîn. Tiştek domdar e: Kubernetes bi otomatîkkirina rêveberiya gelek konteyneran gelek pirsgirêkan çareser dike. Û kîjan hilbijêre, çavkaniya vekirî an firoşkar - her kes biryara xwe dide.

Gotar ji hêla Dmitry Krasnov, mîmarê sereke yê karûbarê Containerum ya pêşkêşvanê #CloudMTS ve hatî amadekirin.

Source: www.habr.com

Add a comment