Zvinodikanwa zvekugadzira application muKubernetes

Nhasi ndinoronga kutaura nezve manyorerwo ekunyorera uye chii chinodiwa kuti application yako ishande nemazvo muKubernetes. Kuitira kuti pasave nemusoro nekushandisa, kuti urege kugadzira uye kuvaka chero "makororo" akaitenderedza - uye zvese zvinoshanda nenzira yaidiwa naKubernetes pachayo.

Ichi chidzidzo chikamu che "Slurm Night Chikoro paKubernetes" Iwe unogona kuona yakavhurika theoretical hurukuro dzeChikoro chemanheru paYouTube, yakaunganidzwa kuita playlist. Kune avo vanoda mameseji kwete vhidhiyo, isu takagadzirira chinyorwa ichi.

Zita rangu ndiPavel Selivanov, iye zvino ndiri mutungamiri weDevOps anotungamira paMail.ru Cloud Solutions, tinoita makore, tinoita manejimendi kubernetes zvichingodaro. Mabasa angu zvino anosanganisira rubatsiro mukusimudzira, kuburitsa makore aya, kuburitsa maapplication atinonyora uye kugadzira zvakananga maturusi atinopa vashandisi vedu.

Zvinodikanwa zvekugadzira application muKubernetes

Ndanga ndichiita DevOps, ndinofunga kwekupedzisira, zvichida, makore matatu. Asi, musimboti, ndanga ndichiita zvinoitwa neDevOps kweanenge makore mashanu izvozvi. Izvi zvisati zvaitika, ndainyanya kubatanidzwa mune zvinhu zve admin. Ndakatanga kushanda naKubernetes kare-kare - pamwe makore mana apfuura kubva pandakatanga kushanda nayo.

Kazhinji, ndakatanga apo Kubernetes yaiva shanduro 1.3, zvichida, uye zvichida 1.2 - ichiri mucheche. Ikozvino haisisiri muhucheche - uye zviri pachena kuti pane kudiwa kukuru mumusika kune mainjiniya angade kukwanisa kuita Kubernetes. Uye makambani ane kudiwa kwakanyanya kwevanhu vakadaro. Naizvozvo, kutaura zvazviri, hurukuro iyi yakaonekwa.

Kana tikataura maererano nehurongwa hwezvandichataura, zvinoita seizvi, mumabhuraketi pakanyorwa kuti (TL;DR) - β€œkurebesa; usaverenge". Mharidzo yangu nhasi ichave ine zvinyorwa zvisingaperi.

Zvinodikanwa zvekugadzira application muKubernetes

Muchokwadi, ini pachangu handifarire mharidzo dzakadaro kana dzichiitwa, asi iyi inyaya yekuti pandakanga ndichigadzirira iyi mharidzo, ini handina kunyatsoziva nzira yekuronga ruzivo urwu zvakasiyana.

Nekuti, kazhinji, ruzivo urwu ndi "ctrl + c, ctrl+v", kubva, pakati pezvimwe zvinhu, Wiki yedu muchikamu cheDevOps, patakanyora zvinodiwa kune vanogadzira: "varume, kuti titange application yenyu mukati Kubernetes, Zvinofanira kuva seizvi. "

Ndosaka mharidzo yakazova rondedzero yakakura kudaro. Ndine hurombo. Ndichaedza kutaura nepandinogona napo kuti zvisabhowa kana zvichiita.

Zvatichatarisa zvino:

  • aya ndiwo, kutanga, matanda (mapepa ekunyorera?), zvokuita navo muKubernetes, zvokuita navo, zvavanofanira kuva;
  • zvekuita nemagadzirirwo muKubernetes, ndedzipi dzakanakisa uye dzakaipisisa nzira dzekugadzirisa application yeKubernetes;
  • Ngatitaurei pamusoro pekuti macheki ekuwanika ndeapi mune zvese, kuti anofanirwa kutaridzika sei;
  • ngatitaurei pamusoro pekuti kudzima kwenyasha chii;
  • ngatitaure nezvezviwanikwa zvakare;
  • Ngatibatei pamusoro pechinyorwa chekuchengetedza data zvakare;
  • uye pakupedzisira ini ndichakuudza kuti izwi iri risinganzwisisike gore-rekuzvarwa application chii. Cloudnativeness, sechirevo chezwi iri.

Logs

Ini ndinopa zano kutanga nematanda - nenzvimbo idzi matanda dzinoda kusundidzirwa muKubernetes. Iye zvino watanga application muKubernetes. Zvinoenderana neiyo classics, aimbove maapplication aigara achinyora matanda pane imwe nzvimbo mufaira. Zvakaipa zvikumbiro zvakanyora matanda kune faira mudhairekitori remba remugadziri akatanga application. Zvishandiso zvakanaka zvakanyora matanda kune faira kumwe kunhu mukati /var/log.

Zvinodikanwa zvekugadzira application muKubernetes

Saizvozvo, kuenderera mberi, vatariri vakanaka vaive nezvimwe zvinhu zvakagadziridzwa muzvivakwa zvavo izvo matanda aya aigona kutenderera - yakafanana rsyslog, iyo inotarisa pamatanda aya uye kana chimwe chinhu chikaitika kwavari, pane akawanda acho, inogadzira backup makopi, inoisa matanda ipapo. , inodzima mafaira ekare, inopfuura vhiki, mwedzi mitanhatu uye zvimwe zvakawanda. Muchirevo, isu tinofanirwa kuve nekupa kuitira kuti nekuda kwekuti application inonyora matanda, nzvimbo iri pamasevha ekugadzira (kurwa maseva?) haina kupera. Uye, maererano, kugadzirwa kwese hakuna kumira nekuda kwematanda.

Apo patinotamira kunyika yeKubernetes uye tichimhanya chinhu chimwe chete ikoko, chinhu chokutanga chaunogona kuteerera ndechokuti vanhu, sezvavakanyora matanda mufaira, vanoramba vachinyora.

Zvinoitika kuti kana tikataura nezve Kubernetes, iyo nzvimbo yakakodzera yekunyora matanda kumwe kubva kune docker mudziyo kungonyora iwo kubva pachikumbiro kuenda kune inonzi Stdout/Stderr, ndiko kuti, yakajairwa kubuda nzizi dzeiyo inoshanda sisitimu, the standard error output . Iyi ndiyo yakanyanya kurongeka, yakapusa uye ine musoro nzira yekuisa matanda musimboti muDocker uye kunyanya muKubernetis. Nekuti kana application yako ikanyora matanda kuStdout/Stderr, saka zviri kuDocker uye Kubernetes yekuwedzera-pakusarudza zvekuita nematanda aya. Docker ichaita neyakagadzika kuvaka mafaera ayo akakosha muJSON fomati.

Pano mubvunzo unomuka, chii chauchazotevera nematanda aya? Nzira iri nyore yakajeka, isu tine kugona kuita kubectl logs uye tarisa matanda aya e "pods" aya. Asi, pamwe, iyi haisi sarudzo yakanaka - chimwe chinhu chinoda kuitwa nematanda.

Parizvino, ngatitaurei panguva imwe chete, sezvo takabata musoro wematanda, pamusoro pechinhu chakadai sematanda anofanira kutaridzika. Ndiko kuti, izvi hazvishande zvakananga kuKubernetes, asi patinotanga kufunga nezve chekuita nematanda, zvingava zvakanaka kufunga nezvazvo zvakare.

Isu tinoda imwe mhando yechishandiso, nenzira ine hushamwari, iyo inotora matanda aya ayo docker yedu inoisa mumafaira ayo uye atumire kumwe kunhu. Kakawanda, isu tinowanzo kuvhura imwe mhando yemumiriri mukati meKubernetes muchimiro cheDaemonSet - muunganidzi welogi, anongoudzwa kuti matanda anounganidzwa naDocker anowanikwa. Uye mumiriri uyu anounganidza anongozvitora, pamwe nekuzvipatsanura munzira, pamwe anozvipfumisa neimwe meta-ruzivo uye, pakupedzisira, anoatumira kunochengeterwa kumwe kunhu. Kusiyana kwakatogoneka ipapo. Iyo inonyanya kuzivikanwa ndeye Elasticsearch, kwaunogona kuchengeta matanda uye iwe unogona nyore kuatora kubva ipapo. Zvadaro, uchishandisa chikumbiro, uchishandisa Kibana, semuenzaniso, kuvaka magirafu kubva kwavari, kuvaka zviziviso zvichibva pazviri, zvichingodaro.

Pfungwa inonyanya kukosha, ini ndinoda kuidzokorora zvakare, ndeyekuti mukati Docker, kunyanya mukati meKubernetes, kuchengeta matanda ako mufaira ipfungwa yakaipa kwazvo.

Nekuti chekutanga, zvakaoma kuwana matanda mukati memudziyo mufaira. Iwe unofanira kutanga wapinda mumudziyo, ugoita imomo, uye wozotarisa matanda. Chinhu chinotevera ndechekuti kana iwe uine matanda mufaira, saka midziyo inowanzove ine minimalist nharaunda uye hapana zvekushandisa izvo zvinowanzodiwa kune yakajairika basa nematanda. Vavige, vatarise, vavhure mune zvinyorwa zvekunyora. Nguva inotevera kana isu tine matanda mufaira mukati memudziyo, kana mudziyo uyu ukabviswa, unonzwisisa, matanda anofa pamwe chete nawo. Saizvozvo, chero kutangazve kwemudziyo zvinoreva kuti hapasisina matanda. Zvekare, sarudzo yakaipa.

Uye poindi yekupedzisira ndeyekuti mukati memidziyo unowanzo uine application yako uye ndizvozvo - kazhinji ndiyo yega maitiro ari kushanda. Iko hakuna kutaura zvachose nezve chero maitiro angatenderedza mafaera nematanda ako. Kana matanda angotanga kunyorwa kune faira, izvi zvinoreva kuti, ndiregerereiwo, isu tichatanga kurasikirwa sevha yekugadzira. Nekuti, chekutanga, iwo akaoma kuwana, hapana anovatevera, uyezve hapana anoadzora - saizvozvo, iyo faira inokura nekusingaperi kusvika nzvimbo iri paserver yangopera. Naizvozvo, ndinotaura zvakare kuti kupinda muDocker, kunyanya muKubernetes, kune faira ipfungwa yakaipa.

Pfungwa inotevera, pano ndinoda kutaura pamusoro peizvi zvakare - sezvo tiri kubata pamusoro penyaya yematanda, zvingava zvakanaka kutaura pamusoro pekuti matanda anofanira kutarisa sei kuitira kuti zvive nyore kushanda nawo. Sezvandakataura, musoro wacho hauna hukama zvakananga neKubernetes, asi unonyatsoenderana nemusoro weDevOps. Pamusoro wekusimudzira tsika uye hushamwari pakati pemadhipatimendi maviri akasiyana - Dev uye Ops, kuitira kuti munhu wese agadzikane.

Izvi zvinoreva kuti, nhasi, matanda anofanira kunyorwa muJSON fomati. Kana iwe uine imwe isinganzwisisike application yako, iyo inonyora matanda mumhando dzisinganzwisisiki nokuti iwe unoisa imwe mhando yekudhinda kana chimwe chinhu chakadaro, zvino ndiyo nguva yeGoogle imwe mhando yegadziriro, imwe yemhando yekuputira inokubvumira kushandisa matanda akajairika; gonesa maparamita ekutema muJSON ipapo, nekuti JSON iri nyore fomati, kupatsanura kuri nyore.

Kana JSON yako isingashande zvinoenderana nemamwe maitiro, hapana anoziva chii, saka nyora matanda mufomati inogona kupepetwa. Pano, pane kudaro, zvakakosha kufunga nezve chokwadi chekuti, semuenzaniso, kana iwe uchimhanyisa boka remidziyo kana uchingogadzirisa nenginx, uye imwe neimwe ine yayo yekutema matanda, zvino zvinoita sekunge zvichange zvisingakuomere iwe. vatsanangure. Nekuti kune yega yega nginx muenzaniso iwe unofanirwa kunyora yako parser, nekuti ivo vanonyora matanda zvakasiyana. Zvekare, zvingangove zvakakodzera kufunga nezve kuve nechokwadi chekuti ese aya nginx zviitiko aive neyakafanana yekugadzika matanda uye vakanyora matanda avo ese zvakanyatsofanana. Izvo zvinoshanda kune zvachose maapplication ese.

Mukupedzisira, ini ndodawo kuwedzera mafuta kumoto uyo, zvakanaka, akawanda-line fomati matanda anofanira kudzivirirwa. Heino chinhu, kana iwe wakamboshanda nevanotora matanda, saka kazhinji iwe wakaona izvo zvavanokuvimbisa, kuti vanogona kushanda nematanda emitsara yakawanda, kuziva maitiro ekuaunganidza, zvichingodaro. Muchokwadi, mumaonero angu, hapana muunganidzi mumwechete nhasi anogona kuunganidza akawanda-line matanda kazhinji, zvizere uye pasina zvikanganiso. Nenzira yemunhu, kuitira kuti zvive nyore uye zvisina kukanganisa.

Zvinodikanwa zvekugadzira application muKubernetes

Asi stack trace inogara yakawanda-line matanda uye maitiro ekuzvidzivirira. Mubvunzo uri pano ndewekuti danda rekodhi rechiitiko, uye stactrace haisi iro danda. Kana isu tikaunganidza matanda toaisa kumwe kuElasticsearch tobva tadhirowa magirafu kubva kwavari, kuvaka mamwe mishumo yezviitwa zvemushandisi pane yako saiti, zvino kana iwe ukawana stack trace, zvinoreva kuti chimwe chinhu chisingatarisirwi chiri kuitika. Uye zvine musoro kurodha otomatiki stack trace kumwe kunhu mune system inogona kuvatevera.

Iyi isoftware (iyo yakafanana Sentry) inogadzirwa kuti ishande ne stack trace. Inogona kukasika kugadzira otomatiki mabasa, kugovera kune mumwe munhu, yambiro kana stacttraces ikaitika, mapoka aya stacttraces nemhando imwe, zvichingodaro. Muchidimbu, hazvina musoro kuti titaure nezve stactraces kana tichitaura nezve matanda, nekuti izvi, shure kwezvose, zvinhu zvakasiyana zvine zvinangwa zvakasiyana.

Kugadziriswa

Tevere tinotaura nezve kumisikidzwa muKubernetes: zvekuita nayo uye kuti maapplication ari mukati meKubernetes anofanira kugadziridzwa sei. Kazhinji, ini ndinowanzo taura kuti Docker haisi yemidziyo. Wese munhu anoziva kuti Docker ndeyemidziyo, kunyangwe avo vasina kushanda neDocker zvakanyanya. Ndinodzokorora, Docker haisi yemidziyo.

Docker, mumaonero angu, ndeye zviyero. Uye kune zviyero zvezvese zvese: zviyero zvekuvaka application yako, zviyero zvekuisa application yako.

Zvinodikanwa zvekugadzira application muKubernetes

Uye chinhu ichi - takachishandisa kare, chakazonyanya kufarirwa nekuuya kwemidziyo - chinhu ichi chinodaidzwa kuti ENV (zvakatipoteredza) zvinosiyana, ndiko kuti, nharaunda dzakasiyana dziri musystem yako yekushandisa. Iyi kazhinji inzira yakanaka yekumisikidza application yako, nekuti kana uine maapplication muJAVA, Python, Go, Perl, Mwari ngaasadaro, uye vese vanogona kuverenga iyo dhatabhesi host, mushandisi wedhatabhesi, dhatabhesi password variables, saka zvakanaka. Iwe une maapplication mumitauro mina yakasiyana yakagadziridzwa muhurongwa hwedhatabhesi nenzira imwechete. Hapasisina ma configs akasiyana.

Zvese zvinogona kugadzirwa uchishandisa ENV siyana. Kana tichitaura nezve Kubernetes, pane nzira huru yekuzivisa ENV zvinosiyana mukati chaimo Deployment. Saizvozvo, kana isu tichitaura nezve data yakavanzika, saka isu tinokwanisa pakarepo kusundira zvakavanzika data kubva kune ENV variables (passwords kune dhatabhesi, nezvimwewo) muchivande, gadzira chakavanzika cluster uye tiratidze mune ENV tsananguro muDeployment kuti isu tisiri kuzivisa zvakananga. kukosha kwekusiyana uku, uye kukosha kweiyi database password variable ichaverengwa kubva pachivande. Aya ndiwo maitiro eKubernetes akajairwa. Uye iyi ndiyo yakanyanya kunaka sarudzo yekumisa maapplication ako. Kungori padanho rekodhi, zvakare izvi zvinoshanda kune vanogadzira. Kana iwe uri maDevOps, unogona kubvunza: β€œVarume, ndapota dzidzisai application yenyu kuverenga nharaunda dzakasiyana. Uye isu tose tichafara. "

Kana munhu wese mukambani akaverenga akafanana ane mazita akasiyana siyana, saka zvakanaka. Kuti zvirege kuitika kuti vamwe vakamirira dheta repostgres, vamwe vakamirira zita re database, vamwe vakamirira chimwe chinhu, vamwe vakamirira dbn yeimwe rudzi, kuitira kuti, maererano naizvozvo, pane kufanana.

Dambudziko rinouya kana uine akawanda nharaunda akasiyana zvekuti unongovhura Deployment - uye kune mazana mashanu mitsara yezvakatipoteredza zvinosiyana. Mune ino kesi, iwe wangove kunze kwemamiriro ekunze akasiyana - uye iwe hauchadi kuzvitambudza iwe pachako. Muchiitiko ichi, zvingava zvine musoro kutanga kushandisa configs. Kureva, dzidzisa application yako kushandisa configs.

Mubvunzo chete ndewekuti configs hazvisi izvo zvaunofunga. Config.pi haisi gadziriro iri nyore kushandisa. Kana imwe gadziriso mune yako fomati, neimwe nzira ine chipo - iyi zvakare haisi iyo config yandinoreva.

Zvandiri kutaura ndezvekumisikidzwa mumafomati anogamuchirwa, kureva kuti, muyero wakanyanya kufarirwa ndeye .yaml mwero. Zviri pachena kuti rinoverengwa sei, rinoverengwa nevanhu, zvakajeka kuti rinoverengwa sei kubva mukushandiswa.

Saizvozvo, mukuwedzera kune YAML, iwe unogona zvakare, semuenzaniso, kushandisa JSON, kupatsanura kuri nyore seYAML maererano nekuverenga kumisikidzwa yekushandisa kubva ipapo. Zvinotonyanya kunetsa kuti vanhu vaverenge. Iwe unogona kuedza iyo fomati, a la ini. Izvo zvakaringana kuverenga, kubva pakuona kwevanhu, asi zvingave zvisingaite kuti uzvigadzirise otomatiki, mupfungwa yekuti kana iwe uchizoda kugadzira yako configs, iyo ini fomati inogona kunge yatove isingaite kugadzira.

Asi chero zvipi zvazvo, chero fomati yaunosarudza, poindi ndeyekuti kubva kune Kubernetes maonero zviri nyore. Iwe unogona kuisa yako yese config mukati meKubernetes, muConfigMap. Uye wobva watora iyi configmap woikumbira kuti iiswe mukati mepod yako mune imwe dhairekitori, uko application yako ichaverenga gadziriso kubva pane iyi configmap sekunge ingori faira. Izvi, kutaura zvazviri, ndizvo zvakanaka kuita kana uine akawanda ekugadzirisa sarudzo mukushandisa kwako. Kana kuti ingori imwe mhando yechimiro chakaoma, pane nesting.

Kana iwe uine configmap, saka iwe unogona kunyatso kudzidzisa application yako, semuenzaniso, kungoteedzera shanduko mufaira umo iyo configmap inoiswa, uye zvakare kurodha otomatiki application yako kana configs yachinja. Iyi ingangove sarudzo yakanaka.

Zvakare, ini ndakatotaura pamusoro peizvi - ruzivo rwakavanzika haruna mu configmap, ruzivo rwepachivande harwusi mumhando dzakasiyana, ruzivo rwakavanzika harwusi muzvakavanzika. Kubva ipapo, batanidza iyi yakavanzika ruzivo kune diplomacy. Kazhinji isu tinochengeta tsananguro dzese dzeKubernetes zvinhu, deployments, configmaps, masevhisi mugit. Saizvozvo, kuisa password kune dhatabhesi mugit, kunyangwe iri git yako, yauinayo mukati mukambani, ipfungwa yakaipa. Nekuti, padiki, git inorangarira zvese uye nekungobvisa mapassword kubva ipapo hazvisi nyore.

Kuongorora hutano

Chinotevera chinhu ichi chinonzi Health cheki. Kazhinji, cheki yehutano iri kungotarisa kuti application yako iri kushanda. Panguva imwecheteyo, isu tinowanzo kutaura nezve mamwe maapplication ewebhu, ayo, maererano, kubva pakuona kwehutano cheki (zviri nani kuti usaturike pano uye mberi) iyi ichave imwe yakakosha URL, iyo yavanoita se. chiyero, ivo vanowanzoita /health.

Kana tichiwana iyi URL, zvinoenderana, application yedu inoti "hongu, zvakanaka, zvese zvakanaka neni, mazana maviri" kana "kwete, zvese hazvina kunaka neni, mamwe mazana mashanu." Saizvozvo, kana application yedu isiri http, isiri yewebhu application, isu tave kutaura nezve imwe mhando yedaemon, tinogona kuona maitiro ehutano. Ndiko kuti, hazvidikanwi, kana kushandiswa kusiri http, saka zvinhu zvose zvinoshanda pasina cheki yehutano uye izvi hazvigone kuitwa nenzira ipi zvayo. Iwe unogona nguva nenguva kugadzirisa rumwe ruzivo mufaira, unogona kuuya neakakosha rairo yedaemon yako, senge, daemon status, iyo inozoti "hongu, zvese zvakanaka, daemon riri kushanda, mhenyu."

Ndechei? Chinhu chekutanga uye chinonyanya kuoneka ndicho chikonzero nei cheki yehutano ichidikanwa - kunzwisisa kuti chikumbiro chiri kushanda. Ndinoreva kuti hupenzi, kana yasimuka zvino, inoita senge iri kushanda, saka unogona kuva nechokwadi kuti iri kushanda. Uye zvinozoitika kuti application iri kushanda, mudziyo uri kushanda, muenzaniso uri kushanda, zvese zvakanaka - uyezve vashandisi vatobvisa nhamba dzese dzenhare kubva kukutsigira kwehunyanzvi ndokuti "uri chii ..., iwe ndakarara, hapana chiri kushanda.”

Cheki yehutano ingori nzira yekuona kubva pakuona kwemushandisi kuti inoshanda. Imwe yenzira dzacho. Ngatizviisei nenzira iyi. Kubva pakuona kweKubernetes, iyi zvakare inzira yekunzwisisa panotanga application, nekuti isu tinonzwisisa kuti pane musiyano pakati pekuti mudziyo wakatangwa, wakagadzirwa uye wakatanga, uye apo application yakatangwa zvakananga mumudziyo uyu. Nekuti kana tikatora avhareji yejava application uye tichiedza kuivhura muchiteshi, saka kwemasekonzi makumi mana, kana kunyange miniti, kana kunyange gumi, inogona kutanga zvakanaka. Muchiitiko ichi, unogona kugogodza pazvikepe zvayo, hazvipinduri ipapo, kureva kuti, haisati yagadzirira kugamuchira motokari.

Zvakare, nerubatsiro rwekutarisa kwehutano uye nerubatsiro rwekuti tiri kutendeuka pano, tinogona kunzwisisa muKubernetes kuti kwete chete mudziyo wakasimuka muchikumbiro, asi chikumbiro pachacho chatanga, chatopindura kune kuongorora hutano, zvinoreva kuti tinogona kutumira traffic ikoko.

Zvinodikanwa zvekugadzira application muKubernetes

Zvandiri kutaura nezvazvo izvozvi zvinonzi Kugadzirira / Kurarama bvunzo mukati meKubernetes; nekudaro, yedu yekugadzirira bvunzo ine basa rekuwanikwa kwechikumbiro mukuyera. Ndokunge, kana bvunzo dzekugadzirira dzichiitwa mukushandisa, saka zvese zvakanaka, traffic yemutengi iri kuenda kune application. Kana bvunzo dzekugadzirira dzisina kuitwa, saka chikumbiro hachitore chikamu, ichi chiitiko hachitore chikamu mukuyeresa, chinobviswa pakuenzanisa, traffic yemutengi haina kuyerera. Saizvozvo, Liveness bvunzo mukati meKubernetes inodiwa kuitira kuti kana application ikanamatira, inogona kutangwazve. Kana iyo liveness bvunzo ikasashanda kune application yakaziviswa muKubernetes, saka application haina kungobviswa pakuenzanisa, inotangwazve.

Uye heino chinhu chakakosha chandinoda kutaura: kubva pane inoshanda yekuona, bvunzo yekugadzirira inowanzo shandiswa kakawanda uye inowanzodiwa kupfuura yehupenyu bvunzo. Kureva kuti, kungotaura tisina kufunga kuzivisa zvese kugadzirira uye hupenyu bvunzo, nekuti Kubernetes anogona kuzviita, uye ngatishandisei zvese zvaanogona kuita, harisi zano rakanaka kwazvo. Ndichatsanangura chikonzero. Nekuti poindi yechipiri mukuyedzwa nderekuti chingave chinhu chakanaka kutarisa sevhisi iri pasi pekuongororwa kwehutano hwako. Izvi zvinoreva kuti kana iwe uine webhu application iyo inopa imwe ruzivo, iyo inozoita iyo, sezvazviri, inofanira kutora kubva kune imwe nzvimbo. Mune database, semuenzaniso. Zvakanaka, inochengetedza ruzivo rwunouya mune iyi REST API mune imwechete database. Zvino, maererano, kana hutano hwako huchipindura senge wabatwa slashhealth, application inoti "200, zvakanaka, zvese zvakanaka," uye panguva imwe chete dhatabhesi rekushandisa kwako harisi kusvikika, uye cheki chehutano chinoti "200, zvakanaka, zvese zvakanaka. ”- Uku kutariswa kwehutano hwakaipa. Aya haasiwo mashandire aanofanira kuita.

Ndiko kuti, chikumbiro chako, kana chikumbiro chasvika kwachiri /health, haingopindure, "200, ok", inotanga yaenda, semuenzaniso, kune dhatabhesi, inoedza kubatana nayo, inoita chimwe chinhu chakakosha ipapo, sekusarudza imwe, inongotarisa kuti pane chinongedzo mu database uye iwe unogona kubvunza iyo database. Kana zvese izvi zvakabudirira, saka mhinduro ndeye "200, ok." Kana ikasabudirira, inotaura kuti pane kukanganisa, database haipo.

Naizvozvo, mune izvi, ndinodzokera zvakare kuKugadzirira/Kurarama bvunzo - nei uchinyanya kuda bvunzo yekugadzirira, asi bvunzo yehupenyu iri mubvunzo. Nekuti kana iwe ukatsanangura macheki ehutano sezvandambotaura, zvino zvichazoitika kuti haisi kuwanikwa muchikamu chemuenzanisoΠ² ΠΈΠ»ΠΈ со всСх instancemune dhatabhesi, semuenzaniso. Pawakazivisa bvunzo yekugadzirira, hutano hwedu hwakatanga kutadza, uye nekudaro zvikumbiro zvese izvo dhatabhesi isingasvikike, zvinongodzimwa kubva pakuyera uye kutaura zvazviri "kurembera" ingori munzvimbo yakaregeredzwa uye kumirira dhatabhesi yavo. shanda.

Kana isu tazivisa bvunzo yehupenyu, saka fungidzira, dhatabhesi redu ratyoka, uye muKubernetes yako hafu yezvese inotanga kutangazve nekuti bvunzo yehupenyu inotadza. Izvi zvinoreva kuti unofanira kutangazve. Izvi hazvisi izvo zvauri kuda, ndakatombove neruzivo rwemunhu mukuita. Taive nechat application yaive yakanyorwa muJS uye yakapihwa mudura reMongo. Uye dambudziko nderekuti raive pakutanga kwebasa rangu naKubernetes, takatsanangura kugadzirira, hupenyu hwekuedzwa pamusimboti wekuti Kubernetes anogona kuzviita, saka tichaishandisa. Saizvozvowo, pane imwe nguva Mongo yakava "yakaoma" zvishoma uye sampuli yakatanga kukundikana. Saizvozvowo, maererano nekunaya kwemvura, mapodhi akatanga "kuuraya".

Sezvaunonzwisisa, kana "vakaurayiwa", iyi ihurukuro, ndiko kuti, kune zvakawanda zvekubatanidza kubva kune vatengi vakarembera pairi. Ivo zvakare "vanourawa" - kwete, kwete vatengi, vanongobatana chete - kwete vese panguva imwe chete, uye nekuda kwekuti havana kuurayiwa panguva imwe chete, vamwe pakutanga, vamwe gare gare, havatangi panguva imwe chete. nguva. Uyezve zvakajairwa zvisina tsarukano, isu hatigone kufanotaura nemillisecond chaiyo nguva yekutanga yekushandisa nguva yega yega, saka vanozviita chiitiko chimwe panguva. Imwe infospot inosimuka, inowedzerwa kune kuenzanisa, vatengi vese vanouya ikoko, haigone kumira mutoro wakadaro, nekuti iri yoga, uye, nekutaura, kune gumi nemaviri vanoshanda ipapo, uye inodonha. Anotevera anosimuka, mutoro wose uri paari, iyewo anodonha. Zvakanaka, mapopoma aya anongoramba achidonha. Pakupedzisira, kuti izvi zvakagadziriswa sei - isu takangofanira kumisa traffic yevashandisi kune iyi application, rega zviitiko zvese zvisimuke uye wobva watanga yese traffic yevashandisi kamwechete zvekuti yakatogovaniswa pakati pezviitiko gumi.

Dai pasina iyi bvunzo yehupenyu ichiziviswa, izvo zvaizomanikidza kuti zvese zvitangezve, application ingadai yakaibata zvakanaka. Asi zvese kubva pakuenzanisa zvakadzimwa kwatiri, nekuti dhatabhesi haasvikiki uye vese vashandisi "vakadonha". Zvadaro, kana iyi database inowanikwa, zvinhu zvose zvinosanganiswa mukuenzanisa, asi zvikumbiro hazvidi kutanga zvakare, uye hapana chikonzero chekuparadza nguva uye zviwanikwa pane izvi. Vese vatove pano, vakagadzirira traffic, saka traffic inongovhurwa, zvese zvakanaka - application iri panzvimbo, zvese zvinoramba zvichishanda.

Naizvozvo, kugadzirira uye liveness bvunzo dzakasiyana, uyezve, iwe unogona ne theoretically kuita akasiyana ehutano cheki, imwe mhando radii, imwe mhando liv, semuenzaniso, uye tarisa zvinhu zvakasiyana. Panguva yekugadzirira bvunzo, tarisa kumashure kwako. Uye pamuyedzo wehupenyu, semuenzaniso, hautarise kubva pakuona kuti bvunzo yehupenyu kazhinji inongori yekupindura application, kana ichikwanisa kupindura zvachose.

Nekuti bvunzo dzehupenyu, kazhinji, ndipo patinenge "takanamatira." Iyo isingaperi loop yatanga kana chimwe chinhu - uye hapasisina zvikumbiro zvinogadziriswa. Naizvozvo, zvine musoro kutombozvipatsanura - uye kuita akasiyana logic mavari.

Panyaya yezvaunoda kupindura kana uchinge waongororwa, kana uchinge waongorora hutano. Kungorwadza chaiko. Vaya vanoziva izvi vangangoseka - asi zvakakomba, ndakaona masevhisi muhupenyu hwangu anopindura "200" muXNUMX% yezviitiko. Kureva kuti ndiani anobudirira. Asi panguva imwe chete mumutumbi wemhinduro vanonyora "chakadaro uye chakadaro kukanganisa."

Ndiko kuti, chimiro chekupindura chinouya kwauri - zvese zvinobudirira. Asi panguva imwe chete, unofanira kuparadzanisa muviri, nokuti muviri unoti "ndine urombo, chikumbiro chakaguma nekukanganisa" uye ichi ndicho chokwadi. Izvi ndakazviona muhupenyu.

Uye kuitira kuti vamwe vanhu varege kuzviwana zvinosetsa, uye vamwe vanozviona zvichirwadza zvikuru, zvichiri kukosha kutevedzera mutemo wakapfava. Muhutano cheki, uye musimboti kana uchishanda newebhu maapplication.

Kana zvinhu zvose zvakafamba zvakanaka, zvino pindura nemhinduro yemazana maviri. Muchidimbu, chero mhinduro yemazana maviri ichakukodzera iwe. Kana iwe uchiverenga ragsy zvakanaka uye uchiziva kuti mamwe mastatus emhinduro akasiyana nemamwe, pindura neakakodzera: 204, 5, 10, 15, chero. Kana zvisina kunaka, saka "mbiri zero zero." Kana zvinhu zvose zvikaenda zvakashata uye cheki yehutano isingapinduri, zvino pindura nemazana mashanu. Zvekare, kana iwe uchinzwisisa mapinduriro ekuita, kuti mhinduro dzakasiyana sei kubva kune imwe neimwe. Kana iwe usinganzwisise, saka 502 ndiyo yako sarudzo yekupindura kune hutano cheki kana chimwe chinhu chikatadza.

Iyi imwe pfungwa, ndinoda kudzoka zvishoma nezve kutarisa ari pasi pesevhisi. Kana iwe ukatanga, semuenzaniso, kutarisa ese ari pasi masevhisi anomira kumashure kwechikumbiro chako - zvese zvakajairika. Zvatinowana kubva pakuona kweiyo microservice architecture, isu tine pfungwa yakadai se "yakaderera coupling" - ndiko kuti, kana masevhisi ako achitsamira pane mumwe nemumwe. Kana imwe yadzo ikatadza, vamwe vese vasina basa iri vanongoramba vachishanda. Zvimwe zvekushanda hazvishande. Saizvozvo, kana iwe ukasunga hutano hwese kune mumwe nemumwe, ipapo iwe unozopedzisira uine chinhu chimwe chinowira muzvivako, uye nekuti yakawa, hutano hwese hwese masevhisi zvakare hunotanga kutadza - uye kune zvimwe zvivakwa zvakajairika zve yakazara microservice architecture Nha. Zvese zvakasviba ipapo.

Naizvozvo, ndinoda kudzokorora izvi zvakare kuti iwe unofanirwa kutarisa ari pasi masevhisi, ayo asina iyo application yako muzana muzana yemakesi haigone kuita basa rayo. Izvi zvinoreva kuti, zvine musoro kuti kana iwe une REST API iyo iyo mushandisi anochengetedza kune dhatabhesi kana kutora kubva kudhatabhesi, saka kana pasina dhatabhesi, haugone kuvimbisa kushanda nevashandisi vako.

Asi kana vashandisi vako, kana iwe uchivabvisa kubva mudhatabhesi, vanowedzerwa neimwe metadata, kubva kune imwe backend, yaunopinda usati watumira mhinduro kune yekumberi - uye iyi backend haisipo, izvi zvinoreva kuti iwe unopa yako. pindura pasina chero chikamu chemetadata.

Tevere, isu zvakare tine imwe yenyaya dzinorwadza pakutanga maapplication.

Muchokwadi, izvi hazvishande kuKubernetes chete nekuwanda; zvakangoitika kuti tsika yeimwe mhando yekukura kwevanhu vakawanda uye DevOps kunyanya yakatanga kupararira panguva imwe chete neKubernetes. Naizvozvo, nekuwanda, zvinoita kuti iwe unofanirwa kuvhara nenyasha application yako pasina Kubernetes. Kunyangwe pamberi paKubernetes, vanhu vakaita izvi, asi nekuuya kweKubernetes, takatanga kutaura nezvazvo muzhinji.

Nyasha Shutdown

Kazhinji, chii chinonzi Graceful Shutdown uye nei ichidikanwa? Izvi ndezvekuti kana application yako yaparara nekuda kwechimwe chikonzero, iwe unofanirwa kuita app stop - kana iwe unogamuchira, semuenzaniso, chiratidzo kubva kune inoshanda sisitimu, yako application inofanirwa kuinzwisisa uye kuita chimwe chinhu nezvazvo. Nyaya yakaipisisa, hongu, ndeye apo chikumbiro chako chagamuchira SIGTERM uye senge "SIGTERM, ngatirambei, tishande, tisaite chinhu." Iyi isarudzo yakaipa kwazvo.

Zvinodikanwa zvekugadzira application muKubernetes

Inenge yakashata yakaenzana sarudzo ndeye kana application yako yagamuchira SIGTERM uye yakaita senge "vakadaro segterm, zvinoreva kuti tiri kupera, handisati ndaona, handizive chero zvikumbiro zvemushandisi, handizive kuti rudzii zvikumbiro zvandiri kushanda nazvo izvozvi, vakati SIGTERM, zvinoreva kuti tave kupera " Iyi zvakare isarudzo yakaipa.

Ndeipi sarudzo yakanaka? Chinhu chekutanga ndechekufunga nezvekupedzwa kwemabasa. Sarudzo yakanaka ndeye kuti server yako irambe ichifunga nezvainoita kana ikagamuchira SIGTERM.

SIGTERM ivharo yakapfava, yakanyatsogadzirwa, inogona kubatwa padanho rekodhi, inogona kugadziriswa, toti izvozvi, mirira, isu tichatanga tapedza basa ratinaro, tobva tabuda.

Kubva pane Kubernetes maonero, izvi ndizvo zvinoita. Kana tichiti kune podhi iri kumhanya muboka reKubernetes, "ndokumbira mira, enda," kana isu tinotangwazve, kana gadziriso inoitika apo Kubernetes anodzokorora mapodhi, Kubernetes anotumira meseji imwechete SIGTERM kune pod, inomirira. imwe nguva, uye, ino ndiyo nguva yaanomirira, yakagadziridzwa zvakare, pane yakakosha parameter mumadiploma uye inonzi Graceful ShutdownTimeout. Sezvaunonzwisisa, hazvina kudanwa kuti pasina, uye hazvisi pasina zvatiri kutaura nezvazvo ikozvino.

Ikoko tinogona kutaura zvakananga kuti tinoda kumirira kwenguva yakareba sei pakati penguva yatinotumira SIGTERM kuchikumbiro uye patinonzwisisa kuti chikumbiro chinoita senge chapenga chimwe chinhu kana kuti "chakanamira" uye hachisi kuzopera - uye isu tinofanirwa kupedzisa. itumire SIGKILL, kureva kuti, pedza basa rayo nesimba. Ndokureva kuti, zvinoenderana, isu tine imwe mhando yedaemon inomhanya, inogadzira mashandiro. Isu tinonzwisisa kuti paavhareji mashandisiro edu anoshandiswa nedaemon haatore masekondi anopfuura makumi matatu panguva. Saizvozvo, kana SIGTERM yasvika, tinonzwisisa kuti daemon yedu inogona, kunyanya, kupedza masekondi makumi matatu mushure meSIGTERM. Isu tinoinyora, semuenzaniso, 30 masekonzi chete kana totaura kuti SIGTERM. Mushure mezvo tinomirira 30 seconds. Mukutaura, panguva iyi dhimoni raifanira kunge rakapedza basa raro uye razvipedza pacharo. Asi kana ikangoerekana yatadza, zvinoreva kuti ingangoramba yakamira-haichagadzirisi zvikumbiro zvedu zvakajairika. Uye mumasekonzi 45 iwe unogona zvakachengeteka, kutaura zvazviri, kumuroverera pasi.

Uye pano, kutaura zvazviri, kunyange 2 zvinhu zvinogona kuverengerwa. Kutanga, nzwisisa kuti kana wakagamuchira chikumbiro, wakatanga kushanda nacho neimwe nzira uye hauna kupa mhinduro kumushandisi, asi wakagamuchira SIGTERM, semuenzaniso. Zvine musoro kuzvinatsa uye kupa mhinduro kumushandisi. Iyi ndiyo point number one panyaya iyi. Nhamba yechipiri pano ndeyekuti kana iwe ukanyora yako yega application, kazhinji kuvaka dhizaini nenzira yekuti unogamuchira chikumbiro chechikumbiro chako, wobva watanga rimwe basa, tanga kurodha mafaera kubva kumwe kunhu, kurodha dhatabhesi, uye chii. - Izvozvo. Kazhinji, mushandisi wako, chikumbiro chako chinorembera kwehafu yeawa uye chinomirira kuti iwe umupindure - saka, kazhinji, iwe unofanirwa kushanda pane zvivakwa. Ndokunge, ingo funga kunyangwe pfungwa dzakajairika kuti kana mashandiro ako ari mapfupi, saka zvine musoro kufuratira SIGTERM uye kuigadzirisa. Kana mashandiro ako akareba, saka hazvina musoro kufuratira SIGTERM mune iyi kesi. Zvine musoro kugadzirisa zvakare chivakwa kuti udzivise kuita kwakareba kudaro. Kuti vashandisi varege kungotenderera uye kumirira. Ini handizive, gadzira imwe mhando yewebsocket ipapo, gadzira zvikorekedzo zvinodzokera kumashure izvo sevha yako ichatotumira kune mutengi, chero chimwe chinhu, asi usamanikidza mushandisi kuti arembera kwehafu yeawa uye ingomirira chikamu kusvika iwe. mupindure. Nekuti hazvitarisike pazvingaputsika.

Kana application yako yapera, iwe unofanirwa kupa imwe yakakodzera kodhi yekubuda. Ndokunge, kana application yako yakakumbirwa kuvhara, kumira, uye yakakwanisa kuzvimisa pachayo, saka haufanire kudzosera imwe mhando yekubuda kodhi 1,5,255 zvichingodaro. Chero chipi chisiri zero kodhi, zvirinani muLinux masisitimu, ndine chokwadi cheizvi, chinonzi hachina kubudirira. Kureva kuti, zvinofungidzirwa kuti chikumbiro chako munyaya iyi chakapera nekanganiso. Saizvozvo, nenzira ine hushamwari, kana chikumbiro chako chapera pasina chikanganiso, iwe unoti 0 pane zvakabuda. Kana chikumbiro chako chikatadza nekuda kwechimwe chikonzero, iwe unoti isiri-0 mune zvakabuda. Uye iwe unogona kushanda neruzivo urwu.

Uye yekupedzisira sarudzo. Zvakaipa kana mushandisi wako akatumira chikumbiro uye anorembera kwehafu yeawa iwe uchichigadzirisa. Asi kazhinji, ndinodawo kutaura nezve izvo zvinowanzokodzera kubva kudivi remutengi. Izvo hazvina basa kana iwe uine nharembozha, kumberi-kuguma, nezvimwe. Izvo zvinodikanwa kufunga kuti kazhinji chikamu chemushandisi chinogona kugumiswa, chero chinhu chinogona kuitika. Chikumbiro chinogona kutumirwa, semuenzaniso, kusagadziriswa uye hapana mhinduro yakadzoserwa. Yako yekumberi kana nharembozha yako - chero yekumberi mune zvese, ngatiiise nenzira iyo - inofanirwa kufunga nezve izvi. Kana iwe ukashanda nemawebsockets, uku ndiko kurwadziwa kwakanyanya kwandati ndamboita.

Kana vagadziri vedzimwe chats dzenguva dzose vasingazive izvozvo, zvinozoitika, iyo websocket inogona kutyora. Kwavari, kana chimwe chinhu chikaitika kune proxy, isu tinongochinja gadziriso, uye inodzoreredza. Nomuzvarirwo, ese anogara kwenguva refu masesheni akabvarurwa munyaya iyi. Vagadziri vanouya vachimhanya kwatiri vachiti: "Varume, muri kuitei, chat yaparara kune vese vatengi vedu!" Tinovaudza kuti: β€œMuri kuitei? Vatengi vako havakwanisi kubatana zvakare? Ivo vanoti: "Aiwa, tinoda kuti masession asadamburwe." Muchidimbu, izvi hazvina maturo. Rutivi rwemutengi runoda kuverengerwa. Kunyanya, sezvandinotaura, nezvikamu zvenguva refu zvakadai sewebsockets, inogona kuputsa uye, isingaonekwi nemushandisi, unoda kukwanisa kudzoreredza zvirongwa zvakadaro. Uye ipapo zvinhu zvose zvakakwana.

Resources

Chaizvoizvo, pano ini ndichangokuudza nyaya yakatwasuka. Zvekare kubva kuhupenyu chaihwo. Chirwere chandati ndambonzwa nezve zviwanikwa.

Zviwanikwa mune iyi kesi, ndinoreva, imwe mhando yezvikumbiro, miganhu yaunogona kuisa pamapodhi mumasumbu ako eKubernetes. Chinhu chinonakidza chandakanzwa kubva kumugadziri ... Mumwe wevandinoshanda navo pane imwe nzvimbo yebasa akamboti: "Chikumbiro changu hachizotangi musumbu." Ndakatarisa kuti ndione kuti yanga isati yatanga, asi ingave isingaenderane nezviwanikwa, kana kuti vaive vaisa miganho midiki. Muchidimbu, application haigone kutanga nekuda kwezviwanikwa. Ini ndinoti: "Hazvitange nekuda kwezviwanikwa, iwe unosarudza kuti yakawanda sei yaunoda uye isa kukosha kwakaringana." Anoti: β€œZvinhu zvakaita sei?” Ndakatanga kumutsanangurira kuti Kubernetes, miganhu pane zvikumbiro uye blah, blah, blah inoda kuiswa. Murume wacho akateerera kwemaminitsi mashanu, akagutsurira musoro ndokuti: β€œNdauya pano kuzoshanda somuvandudzi, handidi kuziva chinhu chipi nechipi pamusoro pezvishandiso zvipi nezvipi. Ndauya pano kuzonyora kodhi uye ndizvozvo. " Zvinosuwisa. Iyi ipfungwa inosiririsa kubva pakuona kwemugadziri. Kunyanya munyika yanhasi, sekutaura, yevanofambira mberi.

Nei zviwanikwa zvichidiwa zvachose? Kune marudzi maviri ezviwanikwa muKubernetes. Zvimwe zvinonzi zvikumbiro, zvimwe zvinonzi miganhu. Nezvishandiso isu tichanzwisisa kuti pane zvinogara zvichingogara zviviri zvakakosha zvirambidzo. Ndokunge, CPU nguva muganho uye RAM muganho wemudziyo unomhanya muKubernetes.

Muganho unoisa muganho wepamusoro pamashandisirwo angaitwa sosi mukushandisa kwako. Ndokunge, saizvozvo, kana iwe ukati 1GB ye RAM mumiganho, ipapo application yako haizokwanise kushandisa inodarika 1GB ye RAM. Uye kana akangoerekana achida uye achiedza kuita izvi, ipapo maitiro anonzi oom killer, kubva mundangariro, ndiko kuti, achauya ndokuuraya chikumbiro chako - ndiko kuti, chinongotangazve. Zvishandiso hazvizotangazve zvichibva paCPU. Panyaya yeCPU, kana application ikaedza kushandisa yakawanda, kupfuura yakatsanangurwa mumiganho, iyo CPU inongove yakanyatso kusarudzwa. Izvi hazvitungamirire kutangazve. Uyu ndiwo muganho - uyu ndiwo muganho wepamusoro.

Uye pane chikumbiro. Chikumbiro ndechekuti Kubernetes anonzwisisa sei kuti node dziri muKubernetes cluster dzinogarwa nemaapplication. Kureva kuti, chikumbiro imhando yekuzvipira kwekunyorera kwako. Inotaura zvandinoda kushandisa: "Ndinoda kuti uchengete CPU yakawanda uye iyi ndangariro yangu." Kuenzanisa kwakapfava kwakadaro. Ko kana tiine node ine, ini handizive, 8 CPUs zvachose. Uye pod inosvika ipapo, ine zvikumbiro zvinoti 1 CPU, zvinoreva kuti node ine 7 CPUs yasara. Izvi zvinoreva kuti, kana mapodhi masere asvika panzvimbo iyi, imwe neimwe ine 8 CPU muzvikumbiro zvavo, node, sekunge kubva pakuona kweKubernetes, yapera muCPU uye mamwe mapodhi ane zvikumbiro haagoni kuva. yakatangwa pane ino node. Kana manodhi ese apera muCPU, ipapo Kubernetes anozotanga kutaura kuti hapana nzvimbo dzakakodzera musumbu rekumhanyisa mapodhi ako nekuti CPU yapera.

Sei zvikumbiro zvichidikanwa uye nei pasina zvikumbiro, ndinofunga kuti hapana chikonzero chekutangisa chero chinhu muKubernetes? Ngatimbofungidzira mamiriro ekufungidzira. Iwe unotangisa application yako pasina zvikumbiro, Kubernetes haazive kuti yakawanda sei yauinayo, ndeapi node aunogona kusundira kwairi. Zvakanaka, anosaidzira, anosaidzira, anosaidzira pamanodhi. Pane imwe nguva, iwe unozotanga kuwana traffic kune yako application. Uye chimwe chezvikumbiro chinongoerekana chatanga kushandisa zviwanikwa kusvika kumiganhu yainayo zvichienderana nemiganhu. Zvinoitika kuti pane imwe application padyo uye inodawo zviwanikwa. Iyo node inotanga kupera zviwanikwa, semuenzaniso, OP. Iyo node inototanga kupera zviwanikwa, semuenzaniso, ndangariro yekuwana isina kujairika (RAM). Kana node yapera simba, chekutanga docker inomira kupindura, ipapo cubelet, ipapo OS. Ivo vanongoenda vasina chavanoziva uye ZVINHU ZVOSE zvichamira kukushandira iwe. Ndokunge, izvi zvinotungamira kune yako node kunamira uye iwe uchafanirwa kuitangazve. Muchidimbu, mamiriro acho haana kunyatsonaka.

Uye kana iwe uine zvikumbiro, miganhu haina kunyanya kusiyana, kanenge kwete kakawanda kupfuura miganhu kana zvikumbiro, ipapo iwe unogona kuva neyakajairika, inonzwisisika kuzadza kwezvikumbiro munzvimbo dzese dzeKubernetes masumbu. Panguva imwecheteyo, Kubernetes anenge achiziva kuti yakawanda sei yainoisa kupi, yakawanda sei yeinoshandiswa kupi. Ndiko kuti, inguva yakadaro. Zvakakosha kuzvinzwisisa. Uye zvakakosha kudzora kuti izvi zvinoratidzwa.

Dhata yekuchengetedza

Pfungwa yedu inotevera ndeyekuchengetedza data. Chii chekuita navo uye kazhinji, chii chekuita nekutsungirira muKubernetes?

Ndinofunga, zvakare, mukati medu Chikoro chemanheru, pakanga paine musoro nezve dhatabhesi muKubernetes. Uye zvinoratidzika kwandiri kuti ndinotoziva zvawakaudzwa nevamwe vako pawakabvunzwa: "Zvinoita here kumhanyisa dhatabhesi muKubernetes?" Nokuda kwechimwe chikonzero, zvinoratidzika kwandiri kuti vaunoshanda navo vanofanira kunge vakakuudza kuti kana iwe uri kubvunza mubvunzo kana zvichibvira kushandisa dhatabhesi muKubernetes, saka hazvigoneki.

The logic pano iri nyore. Zvingoitika, ini ndichatsanangura zvakare, kana iwe uri murume anotonhorera anogona kuvaka yakaringana-inoshivirira sisitimu yekugovera network yekuchengetedza, nzwisisa nzira yekukodzera dhatabhesi mune iyi kesi, kuti gore rekuzvarwa mumidziyo rinofanira kushanda sei. mune dhatabhesi zvachose. Zvingangodaro, iwe hauna mubvunzo nezve maitirwo ayo. Kana iwe uine mubvunzo wakadaro, uye iwe unoda kuve nechokwadi kuti zvose zvinoputika uye zvinomira zvakanaka kusvika pakufa mukugadzirwa uye hazvimbowa, saka izvi hazviitiki. Iwe unovimbiswa kuzvipfura iwe mutsoka nenzira iyi. Saka zviri nani kusadaro.

Chii chatinofanira kuita nedatha iyo application yedu ingade kuchengeta, mamwe mapikicha anoiswa nevashandisi, zvimwe zvinhu izvo application yedu inoburitsa panguva yekushanda kwayo, pakutanga, semuenzaniso? Chii chekuita navo muKubernetes?

Kazhinji, hongu, hongu, Kubernetes yakanyatso gadzirwa uye yaiwanzo kugadzirirwa zvikumbiro zvisingaverengeki. Ndiko, kune izvo zvikumbiro zvisingachengete ruzivo zvachose. Izvi zvakanaka.

Asi, chokwadi, sarudzo yakanaka haigari iripo. Saka manje? Chinhu chekutanga uye chakareruka ndechekutora imwe mhando yeS3, kwete chete yakagadzirwa kumba, iyo isinganyatso kujeka kuti inoshanda sei, asi kubva kune mumwe mupi. Akanaka, akajairwa mupi - uye dzidzisa application yako kushandisa S3. Ndokunge, kana mushandisi wako achida kurodha faira, iti "pano, ndapota, rodha kuS3." Paanoda kuigamuchira, iti: "Heino chinongedzo cheS3 dzoka uye tora kubva pano." Izvi zvakanaka.

Kana nekukasira nekuda kwechimwe chikonzero sarudzo iyi isina kukodzera, une application yausina kunyora, iwe hausi kuvandudza, kana iri imwe mhando yenhaka inotyisa, haigone kushandisa iyo S3 protocol, asi inofanirwa kushanda nemadhairekitori emunharaunda. local folders . Tora chimwe chinhu chakanyanya kana kushoma, shandisa Kubernetes. Ndokunge, nekukasira kuvhara Ceph kune mamwe mabasa madiki, zvinoita kwandiri, ipfungwa yakaipa. Nekuti Ceph, hongu, yakanaka uye ine fashoni. Asi kana iwe usinganyatso nzwisisa zvauri kuita, ipapo kana wangoisa chimwe chinhu paCeph, unogona zviri nyore uye nekungotadza kuchibvisa ipapo zvakare. Nekuti, sezvaunoziva, Ceph inochengeta data musumbu rayo mune bhinari fomu, uye kwete muchimiro chemafaira akareruka. Naizvozvo, kana kamwe kamwe sumbu reCeph rakaputsika, saka pane mukana wakakwana uye wakakura wekuti hauzombowana data rako kubva ipapo zvakare.

Tichava nekosi paCeph, unogona ziva nezvechirongwa uye utumire chikumbiro.

Naizvozvo, zviri nani kuita chimwe chinhu chiri nyore seNFS server. Kubernetes anogona kushanda navo, unogona kukwira dhairekitori pasi peNFS server - application yako yakangofanana nedhairekitori renzvimbo. Panguva imwecheteyo, zvakajairika, iwe unofanirwa kunzwisisa kuti, zvakare, iwe unofanirwa kuita chimwe chinhu neNFS yako, iwe unofanirwa kunzwisisa kuti dzimwe nguva zvingave zvisingasvikike uye funga mubvunzo wezvauchaita munyaya iyi. Zvichida inofanira kutsigirwa pane imwe nzvimbo pamushini wakasiyana.

Pfungwa inotevera yandakataura nezvayo ndeyekuita kana application yako ikagadzira mamwe mafaera panguva yekushanda. Semuenzaniso, kana yatanga, inogadzira imwe static faira, iyo yakavakirwa pane imwe ruzivo iyo application inogamuchira chete panguva yekuvhurwa. Inguva yakadii. Kana pasina data rakawanda rakadaro, saka haufanirwe kunetseka zvachose, ingoisa iyi application iwe woshanda. Mubvunzo chete pano ndewekuti, tarisa. Kazhinji, marudzi ese emasisitimu enhaka, akadai seWordPress uye zvichingodaro, kunyanya neakagadziridzwa mamwe marudzi ehungwaru plugins, vanogadzira PHP vanogadzira, vanowanzoziva magadzirirwo ayo kuitira kuti vagadzire imwe mhando yefaira ivo pachavo. Saizvozvo, imwe inogadzira imwe faira, yechipiri inogadzira yechipiri faira. Vakasiyana. Kuenzanisa kunoitika mune vatengi 'Kubernetes cluster nemukana. Saizvozvo, zvinoitika kuti havazive maitiro ekushanda pamwechete semuenzaniso. Imwe inopa rumwe ruzivo, imwe inopa mushandisi rumwe ruzivo. Ichi chinhu chaunofanira kudzivisa. Ndokunge, muKubernetes, zvese zvaunotangisa zvinovimbiswa kukwanisa kushanda muzviitiko zvakawanda. Nekuti Kubernetes chinhu chinofamba. Saizvozvo, anogona kufambisa chero chinhu, chero paanoda, pasina kubvunza chero munhu. Nokudaro, iwe unofanirwa kuvimba pane izvi. Zvese zvakatangwa mune imwe chiitiko zvinozotadza kana gare gare. Kuwanda kwekuchengetera kwaunenge uine, zviri nani. Asi zvakare, ndinoti, kana uine mashoma mafaira akadaro, saka unogona kuaisa pasi pako chaipo, anoyera zvishoma. Kana paine zvimwe zvishoma, haufanirwe kuvasundira mukati memudziyo.

Ini ndinopa zano kuti kune chinhu chinoshamisa zvakadaro muKubernetes, unogona kushandisa vhoriyamu. Kunyanya, kune huwandu hwemhando isina chinhu dir. Izvi zvinoreva kuti Kubernetes inongogadzira dhairekitori mune yayo sevhisi madhairekitori pane server kwawakatanga. Uye achakupa kuti iwe ugoishandisa. Pane chinhu chimwe chete chakakosha. Ndokureva kuti, data rako harizochengetwe mukati memudziyo, asi pane muenzi wauri kumhanyisa. Uyezve, Kubernetes inogona kudzora isina chinhu dirs pasi peyakajairwa gadziriso uye inokwanisa kudzora yakakura saizi uye kusatendera kuti ipfuure. Chinhu chete ndechekuti izvo zvawanyora mune isina chinhu dir hazvina kurasika panguva yepod restarts. Ndiko kuti, kana pod yako ikawira nekukanganisa uye ichisimuka zvakare, ruzivo mune isina chinhu dir harungaendi kupi zvako. Anogona kuishandisa zvakare pakutanga patsva - uye izvo zvakanaka. Kana pod yako ichibva kune imwe nzvimbo, saka zvakasikwa iye achasiya pasina data. Ndiko kuti, pangosvika podhi kubva pane iyo node iyo yakatangwa isina chinhu dir inonyangarika, isina chinhu dir inobviswa.

Chii chimwe chakanaka nezve isina dir? Semuenzaniso, inogona kushandiswa se cache. Ngatimbofungidzira kuti application yedu inogadzira chimwe chinhu panhunzi, inochipa kune vashandisi, uye inochiita kwenguva yakareba. Naizvozvo, iyo application, semuenzaniso, inogadzira uye inopa kune vashandisi, uye panguva imwechete inoichengeta kune imwe nzvimbo, kuitira kuti inotevera nguva iyo mushandisi auya kune chinhu chimwe chete, ichave ichikurumidza kupa iyo pakarepo inogadzirwa. Empty dir inogona kubvunzwa kuna Kubernetes kugadzira mundangariro. Uye nekudaro, ma cache ako anogona kazhinji kushanda nekumhanya kwemheni - maererano nekumhanya kwedhisiki yekuwana. Ndiko kuti, une dir isina chinhu mundangariro, muOS inochengetwa mundangariro, asi kwauri iwe, kune mushandisi mukati mepodhi, inoita senge dhairekitori remunharaunda. Iwe haudi iyo app kuti inyatso kudzidzisa chero mashiripiti. Iwe unongotora zvakananga uye woisa faira rako mune dhairekitori, asi, kutaura zvazviri, mundangariro pane OS. Ichi zvakare chinhu chiri nyore kwazvo maererano neKubernetes.

Ndeapi matambudziko ane Minio? Dambudziko guru neMinio nderekuti kuitira kuti chinhu ichi chishande, chinoda kunge chichimhanya pane imwe nzvimbo, uye panofanira kuva nemhando yefaira system, kureva, kuchengetedza. Uye pano tinosangana nematambudziko akafanana ane Ceph. Ndokunge, Minio inofanirwa kuchengeta mafaera ayo kumwe kunhu. Ingori HTTP interface kune mafaera ako. Uyezve, kushanda kwacho kwakanyatso kuderera kupfuura iyo yeAmazon's S3. Kare, yaisakwanisa kubvumidza mushandisi nemazvo. Iye zvino, sekuziva kwangu, inogona kutogadzira mabhakiti ane zvibvumirano zvakasiyana, asi zvakare, zvinoratidzika kwandiri kuti dambudziko guru ndere, sekutaura, iyo yepasi yekuchengetedza system pane zvishoma.

Empty dir mundangariro inokanganisa sei miganhu? Haina kukanganisa miganhu neimwe nzira. Iri mundangariro yemugamuchiri, uye kwete mundangariro yemudziyo wako. Ndokunge, mudziyo wako hauone iyo isina chinhu dir mundangariro sechikamu cheyakagarwa ndangariro. Muridzi anoona izvi. Saizvozvo, hongu, kubva pakuona kwekubernetes, paunotanga kushandisa izvi, zvingave zvakanaka kuti unzwisise kuti uri kupa chikamu chendangariro yako kuburitsa dir. Uye saizvozvo, nzwisisa kuti ndangariro inogona kupera kwete chete nekuda kwekushandisa, asiwo nekuti mumwe munhu anonyorera kune aya asina chinhu dirs.

Cloudnativeness

Uye iyo yekupedzisira subtopic ndiyo Cloudnative. Nei zvichidiwa? Cloudnativeness uye zvichingodaro.

Ndiko kuti, izvo zvikumbiro zvinokwanisa uye zvakanyorwa kuitira kuti zvishande mune yemazuva ano cloud infrastructure. Asi, kutaura zvazviri, Cloudnative ine chimwe chimiro chakadaro. Kuti ichi hachisi chega chekushandisa chinotarisisa zvese zvinodiwa zvechizvino-zvino gore zvivakwa, asi zvakare inoziva maitiro ekushanda neichi chemazuva ano chivakwa chegore, tora mukana wezvakanakira uye zvakaipira chokwadi chekuti inoshanda mumakore aya. Usangoenda pamusoro uye kushanda mumakore, asi tora mukana wemabhenefiti ekushanda mugore.

Zvinodikanwa zvekugadzira application muKubernetes

Ngatingotorai Kubernetes semuenzaniso. Chikumbiro chako chiri kushanda muKubernetes. Chikumbiro chako chinogona kugara, kana kuti maadmins echikumbiro chako, anogona kugara achigadzira account yebasa. Ndiko kuti, account yemvumo muKubernetes pachayo mune yayo server. Wedzera dzimwe kodzero dzatinoda ipapo. Uye iwe unogona kuwana Kubernetes kubva mukati mekushandisa kwako. Chii chaungaita nenzira iyi? Semuenzaniso, kubva pachikumbiro, gamuchira data nezvekuti mamwe maapplication ako, mamwe mamiriro akafanana aripo, uye pamwe neimwe nzira masumbu pamusoro peKubernetes, kana paine kudiwa kwakadaro.

Zvakare, takanga tine nyaya munguva pfupi yapfuura. Tine mutongi mumwe chete anotarisisa mutsara. Uye kana mamwe mabasa matsva aonekwa mumutsara uyu, anoenda kuKubernetes - uye mukati meKubernetes inogadzira podhi nyowani. Inopa iyi pod rimwe basa idzva uye mukati megadziriro yepodhi iyi, pod inoita basa racho, inotumira mhinduro kumutongi pachake, uye mutongi anobva aita chimwe chinhu nemashoko aya. Semuenzaniso, inowedzera database. Ndokureva kuti, zvakare, uku kuwedzera kwechokwadi chekuti application yedu inomhanya muKubernetes. Isu tinogona kushandisa yakavakirwa-mukati Kubernetes mashandiro ega kuitira kuti neimwe nzira kuwedzera uye kuita kuti kushanda kwechishandiso chedu kuve nyore. Ndokureva kuti, usavanza imwe mhando yemashiripiti nezve nzira yekuvhura application, sei kutanga mushandi. MuKubernetes, unongotumira chikumbiro muapp kana chikumbiro chakanyorwa muPython.

Izvi zvinoshandawo kana tikapfuura Kubernetes. Tine yedu Kubernetes inomhanya kumwe kunhu - zvakanaka kana iri mune imwe mhando yegore. Zvekare, tinogona kushandisa, uye kunyangwe tinofanirwa, ndinotenda, kushandisa kugona kwegore pacharo kwatiri kumhanya. Kubva pazvinhu zvekutanga zvatinopihwa negore. Kuenzanisa, ndiko kuti, tinogona kugadzira mabharani egore uye toashandisa. Iyi ibhenefiti yakananga yezvatinogona kushandisa. Nekuti gore kuenzanisa, chekutanga, nekupusa kunobvisa mutoro kubva kwatiri wekuti unoshanda sei, magadzirirwo aanoitwa. Uyezve zviri nyore, nekuti nguva dzose Kubernetes inogona kusanganisa nemakore.

Zvimwe chetezvo zvinoenda pakuyera. Yenguva dzose Kubernetes inogona kusanganisa nevanopa makore. Inoziva manzwisisiro ekuti kana sumbu racho rikapera node, kureva kuti, node nzvimbo yapera, saka iwe unofanirwa kuwedzera - Kubernetes pachayo ichawedzera node nyowani kusumbu rako uye kutanga kutanga mapodhi pavari. Ndiko kuti, kana mutoro wako wauya, nhamba yemoto inotanga kuwedzera. Kana node dziri musumbu dzapera mapodhi aya, Kubernetes inotanga node itsva uye, maererano naizvozvo, nhamba yemapodhi inogona kuramba ichiwedzera. Uye zviri nyore chaizvo. Uyu mukana wakananga wekuyera sumbu panhunzi. Kwete zvakanyanya kukurumidza, mupfungwa yekuti haisi yechipiri, yakanyanya kufanana neminiti kuitira kuwedzera node itsva.

Asi kubva pane zvakaitika kwandiri, zvakare, ndicho chinhu chinotonhorera chandati ndamboona. Kana Cloudnative cluster yakayerwa zvichienderana nenguva yezuva. Yaive basa rekumashure raishandiswa nevanhu vaive muhofisi yekuseri. Ndiko kuti, vanouya kuzoshanda na9 am, vanotanga kupinda muhurongwa, uye maererano naizvozvo, Cloudnative cluster, iyo yose inomhanya, inotanga kuzvimba, inotanga mapodhi matsva kuitira kuti munhu wose anouya kuzoshanda anogona kushanda nechikumbiro. Pavanobva kubasa na8 pm kana 6 pm, mapoka eKubernetes anoona kuti hapana ari kushandisa application otanga kudzikira. Chengetedzo inosvika makumi matatu muzana inovimbiswa. Yakashanda muAmazon panguva iyoyo; panguva iyoyo pakanga pasina munhu muRussia aigona kuzviita nemazvo.

Ini ndichakuudza zvakananga, iyo yekuchengetedza imakumi matatu muzana nekuda kwekuti isu tinoshandisa Kubernetes uye tinotora mukana wekugona kwegore. Zvino izvi zvinogona kuitwa muRussia. Ini handisi kuzoshambadzira kune chero munhu, hongu, asi ngatingotaura kuti kune vanopa vanogona kuita izvi, vape kunze kwebhokisi nebhatani.

Pane imwe pfungwa yekupedzisira yandinodawo kukwevera pfungwa dzako kwairi. Kuti chikumbiro chako, zvivakwa zvako zvive Cloudnative, zvine musoro kuti pakupedzisira utange kugadzirisa nzira inonzi Infrastructure as a Code.Kureva kuti, izvi zvinoreva kuti application yako, kana kuti zvigadziriso zvako, inodiwa nenzira chaiyo seyo kodhi Uye shanda nayo sekodhi, ndiko kuti, iedze, ibvise, ichengetedze mugit, isa CICD kwairi.

Uye izvi ndizvo chaizvo zvinokutendera iwe, chekutanga, kuti ugare uine kutonga pamusoro pezvivakwa zvako, kugara uchinzwisisa kuti iri mumamiriro api. Chechipiri, dzivisa kushandiswa kwemaoko kunokonzeresa kukanganisa. Chechitatu, dzivisa izvo zvinonzi "turnover", kana iwe uchigara uchifanira kuita mamwe mabasa emaoko. Chechina, inokutendera kuti udzoke nekukurumidza kana watadza. MuRussia, nguva dzose pandinotaura pamusoro peizvi, pane nguva dzose nhamba huru yevanhu vanoti: "Hongu, zvakajeka, asi une nzira, muchidimbu, hapana chikonzero chekugadzirisa chero chinhu." Asi ichokwadi. Kana chimwe chinhu chakaputsika muhutano hwako, saka kubva pakuona kwe Cloudnative nzira uye kubva pakuona kweInfrastructure seCode, pane kugadzirisa, kuenda kune server, kufunga kuti chii chakaputsika uye kugadzirisa, zviri nyore. kudzima sevha uye kuigadzira zvakare. Uye ndichaita kuti zvose izvi zvidzorerwe.

Nyaya dzese idzi dzinokurukurwa zvakadzama pa Kubernetes mavhidhiyo makosi: Junior, Basic, Mega. Nekutevera chinongedzo iwe unogona kujairana nechirongwa uye mamiriro. Chinhu chiri nyore ndechekuti iwe unogona kugona Kubernetes nekudzidza kubva kumba kana kushanda kwemaawa 1-2 pazuva.

Source: www.habr.com

Voeg