Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Illum qed nippjana li nitkellem dwar kif tikteb applikazzjonijiet u x'inhuma r-rekwiżiti biex l-applikazzjoni tiegħek taħdem tajjeb f'Kubernetes. Sabiex ma jkunx hemm uġigħ ta 'ras bl-applikazzjoni, sabiex ma jkollokx għalfejn tivvinta u tibni xi "cratches" madwarha - u kollox jaħdem kif maħsub Kubernetes innifsu.

Din il-lecture hija parti minn "Slurm Night School fuq Kubernetes" Tista' tara l-lectures teoretiċi miftuħa tal-Iskola ta' Filgħaxija fuq Youtube, miġbura fi playlist. Għal dawk li jippreferu test aktar milli vidjo, ħejjejna dan l-artikolu.

Jisimni Pavel Selivanov, bħalissa jien l-inġinier DevOps ewlieni f'Mail.ru Cloud Solutions, nagħmlu sħab, nagħmlu kubernetes ta 'ġestjoni u l-bqija. Il-kompiti tiegħi issa jinkludu l-assistenza fl-iżvilupp, it-tnedija ta’ dawn is-sħab, it-tnedija tal-applikazzjonijiet li niktbu u l-iżvilupp dirett tal-għodod li nipprovdu lill-utenti tagħna.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Ilni nagħmel DevOps, naħseb għall-aħħar, probabbilment, tliet snin. Iżda, fil-prinċipju, ilni nagħmel dak li jagħmel DevOps għal madwar ħames snin. Qabel dan, kont involut l-aktar fl-affarijiet tal-amministratur. Bdejt naħdem mal-Kubernetes ħafna żmien ilu – probabbilment għaddew madwar erba’ snin minn meta bdejt naħdem miegħu.

B'mod ġenerali, bdejt meta Kubernetes kien il-verżjoni 1.3, probabbilment, u forsi 1.2 - meta kien għadu fil-bidu tiegħu. Issa m'għadux fil-bidu tiegħu - u huwa ovvju li hemm domanda kbira fis-suq għall-inġiniera li jixtiequ jkunu jistgħu jagħmlu Kubernetes. U l-kumpaniji għandhom domanda għolja ħafna għal nies bħal dawn. Għalhekk, fil-fatt, deher din il-lecture.

Jekk nitkellmu skont il-pjan ta’ dak li se nitkellem dwaru, jidher hekk, fil-parentesi hemm miktub (TL;DR) - “twil wisq; taqrax”. Il-preżentazzjoni tiegħi llum se tikkonsisti f'listi bla tarf.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Fil-fatt, jiena stess ma nħobbx preżentazzjonijiet bħal dawn meta jsiru, iżda dan huwa suġġett tali li meta kont qed nipprepara din il-preżentazzjoni, sempliċement ma kontx verament nifhem kif norganizza din l-informazzjoni b'mod differenti.

Minħabba li, b'mod ġenerali, din l-informazzjoni hija "ctrl+c, ctrl+v", minn, fost affarijiet oħra, il-Wiki tagħna fit-taqsima DevOps, fejn għandna rekwiżiti bil-miktub għall-iżviluppaturi: "guys, so that we launch your application in Kubernetes, għandu jkun hekk."

Huwa għalhekk li l-preżentazzjoni rriżulta li kienet lista daqshekk kbira. Jiddispjacini. Nipprova ngħid kemm jista' jkun biex ma jkunx boring jekk possibbli.

Dak li se nħarsu lejh issa:

  • dawn huma, l-ewwelnett, zkuk (zkuk tal-applikazzjoni?), x'għandek tagħmel magħhom f'Kubernetes, x'għandek tagħmel magħhom, x'għandhom ikunu;
  • x'għandek tagħmel bil-konfigurazzjonijiet f'Kubernetes, x'inhuma l-aħjar u l-agħar modi biex tiġi kkonfigurata applikazzjoni għal Kubernetes;
  • Ejja nitkellmu dwar x'inhuma l-kontrolli tal-aċċessibbiltà b'mod ġenerali, kif għandhom jidhru;
  • ejja nitkellmu dwar x'inhu għeluq graceful;
  • ejja nerġgħu nitkellmu dwar ir-riżorsi;
  • Ejja tmiss is-suġġett tal-ħażna tad-data għal darb'oħra;
  • u fl-aħħar ngħidilkom x'inhu t-terminu din l-applikazzjoni misterjuża ta' cloud-native. Cloudnativeness, bħala aġġettiv ta’ dan it-terminu.

Zkuk

Nissuġġerixxi li nibda biċ-zkuk - b'fejn dawn iż-zkuk jeħtieġ li jiġu shoved fil-Kubernetes. Issa nediet applikazzjoni f'Kubernetes. Skont il-klassiċi, qabel l-applikazzjonijiet dejjem kitbu zkuk x'imkien fil-fajl. Applikazzjonijiet ħżiena kitbu zkuk għal fajl fid-direttorju tad-dar tal-iżviluppatur li nieda l-applikazzjoni. Applikazzjonijiet tajbin kitbu zkuk f'fajl x'imkien fih /var/log.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Għaldaqstant, barra minn hekk, amministraturi tajbin kellhom xi affarijiet konfigurati fl-infrastrutturi tagħhom li dawn ir-zkuk jistgħu jduru - l-istess rsyslog, li jħares lejn dawn ir-zkuk u meta jiġrilhom xi ħaġa, hemm ħafna minnhom, joħloq kopji ta 'backup , ipoġġi zkuk hemmhekk , iħassar fajls qodma, aktar minn ġimgħa, sitt xhur u ftit aktar. Fit-teorija, għandu jkollna dispożizzjonijiet sabiex sempliċement minħabba li l-applikazzjoni tikteb zkuk, l-ispazju fuq is-servers tal-produzzjoni (servers tal-ġlieda kontra?) ma jispiċċax. U, għaldaqstant, il-produzzjoni kollha ma waqfitx minħabba ż-zkuk.

Meta nimxu lejn id-dinja ta 'Kubernetes u nħaddmu l-istess ħaġa hemmhekk, l-ewwel ħaġa li tista' tagħti attenzjoni għaliha hija l-fatt li n-nies, kif kitbu zkuk f'fajl, ikomplu jiktbuhom.

Jirriżulta li jekk nitkellmu dwar Kubernetes, il-post it-tajjeb biex tikteb zkuk x'imkien minn kontenitur docker huwa sempliċement li tiktebhom mill-applikazzjoni għall-hekk imsejħa Stdout/Stderr, jiġifieri, il-flussi ta 'output standard tas-sistema operattiva, l-output ta 'żball standard. Dan huwa l-aktar mod korrett, sempliċi u loġiku biex jitqiegħdu zkuk fil-prinċipju f'Docker u speċifikament f'Kubernetis. Minħabba li jekk l-applikazzjoni tiegħek tikteb zkuk lil Stdout/Stderr, allura huwa f'idejn Docker u s-add-on Kubernetes li jiddeċiedu x'għandhom jagħmlu b'dawn ir-zkuk. Docker awtomatikament se jibni l-fajls speċjali tiegħu fil-format JSON.

Hawnhekk tqum il-mistoqsija, x'se tagħmel wara b'dawn iz-zkuk? L-eħfef mod huwa ċar, għandna l-abbiltà li nagħmlu kubectl logs u ħares lejn dawn iz-zkuk ta 'dawn il-"miżwed". Iżda, probabbilment, din mhix għażla tajba ħafna - trid issir xi ħaġa oħra biċ-zkuk.

Għalissa, ejja nitkellmu fl-istess ħin, peress li messejna fuq is-suġġett ta 'zkuk, dwar ħaġa bħal zkuk għandha tidher. Jiġifieri, dan ma japplikax direttament għal Kubernetes, iżda meta nibdew naħsbu dwar x'għandu nagħmlu biz-zkuk, ikun tajjeb li naħsbu dwar dan ukoll.

Għandna bżonn xi tip ta’ għodda, b’mod amikevoli, li tieħu dawn ir-zkuk li d-docker tagħna jdaħħal fil-fajls tagħha u tibgħathom x’imkien. B'mod ġenerali, aħna normalment inniedu xi tip ta 'aġent ġewwa Kubernetes fil-forma ta' DaemonSet - kollettur ta 'zkuk, li sempliċement jingħad fejn jinsabu ż-zkuk li jiġbor Docker. U dan l-aġent tal-ġbir sempliċiment jeħodhom, forsi anke b'xi mod jeżaminahom tul it-triq, forsi tarrikkixxihom b'xi meta-informazzjoni addizzjonali u, fl-aħħar mill-aħħar, jibgħathom għall-ħażna x'imkien. Hemm varjazzjonijiet diġà possibbli. L-aktar komuni hija probabbilment Elasticsearch, fejn tista 'taħżen zkuk u tista' b'mod konvenjenti tirkuprahom minn hemm. Imbagħad, billi tuża talba, billi tuża Kibana, pereżempju, tibni graffs ibbażati fuqhom, tibni twissijiet ibbażati fuqhom, eċċ.

L-iktar idea importanti, irrid nirrepetiha mill-ġdid, hija li ġewwa Docker, b'mod partikolari ġewwa Kubernetes, il-ħażna tar-zkuk tiegħek f'fajl hija idea ħażina ħafna.

Minħabba li l-ewwelnett, huwa diffiċli li tikseb ir-zkuk ġewwa l-kontenitur f'fajl. L-ewwel trid tidħol fil-kontenitur, exec hemm, u mbagħad tħares lejn il-zkuk. Il-punt li jmiss huwa li jekk għandek zkuk f'fajl, allura l-kontenituri ġeneralment ikollhom ambjent minimalista u m'hemm l-ebda utilitajiet li normalment ikunu meħtieġa għal xogħol normali biz-zkuk. Idfnuhom, ħares lejhom, iftaħhom f'editur tat-test. Il-mument li jmiss huwa meta jkollna zkuk f'fajl ġewwa kontenitur, jekk dan il-kontenitur jitħassar, tifhem, iż-zkuk se jmutu flimkien miegħu. Għaldaqstant, kwalunkwe startjar mill-ġdid tal-kontenitur ifisser li m'hemmx aktar zkuk. Għal darb'oħra, għażla ħażina.

U l-aħħar punt huwa li ġewwa l-kontenituri normalment ikollok l-applikazzjoni tiegħek u dak hu - normalment huwa l-uniku proċess li qed jaħdem. M'hemm l-ebda diskors dwar kwalunkwe proċess li jdur fajls maż-zkuk tiegħek. Hekk kif il-logs jibdew jinkitbu fuq fajl, dan ifisser li, skużani, nibdew nitilfu s-server tal-produzzjoni. Minħabba li, l-ewwelnett, huma diffiċli biex issibhom, ħadd ma jsegwihom, kif ukoll ħadd ma jikkontrollahom - għalhekk, il-fajl jikber bla tmiem sakemm l-ispazju fuq is-server sempliċement jispiċċa. Għalhekk, nerġa' ngħid li l-illoggjar f'Docker, b'mod partikolari f'Kubernetes, għal fajl hija idea ħażina.

Il-punt li jmiss, hawnhekk irrid nitkellem dwar dan mill-ġdid - peress li qed imissu s-suġġett ta 'zkuk, ikun tajjeb li nitkellmu dwar kif għandhom jidhru zkuk sabiex ikun konvenjenti li taħdem magħhom. Kif għedt, is-suġġett mhuwiex direttament relatat ma 'Kubernetes, iżda jirrelata tajjeb ħafna mas-suġġett ta' DevOps. Fuq is-suġġett tal-kultura tal-iżvilupp u l-ħbiberija bejn dawn iż-żewġ dipartimenti differenti - Dev u Ops, sabiex kulħadd ikun komdu.

Dan ifisser li idealment, illum, zkuk għandhom jinkitbu fil-format JSON. Jekk għandek xi applikazzjoni inkomprensibbli tiegħek stess, li tikteb zkuk f'formati inkomprensibbli għax daħħal xi tip ta 'stampar jew xi ħaġa bħal dik, allura wasal iż-żmien li google xi tip ta' qafas, xi tip ta 'tgeżwir li jippermettilek li timplimenta logging normali; jippermettu l-parametri tal-illoggjar f'JSON hemmhekk, minħabba li JSON huwa format sempliċi, l-analiżi hija sempliċi.

Jekk il-JSON tiegħek ma jaħdimx skont xi kriterji, ħadd ma jaf x'inhu, allura tal-inqas ikteb zkuk f'format li jista 'jiġi parsed. Hawnhekk, pjuttost, ta 'min taħseb dwar il-fatt li, pereżempju, jekk qed tmexxi mazz ta' kontenituri jew sempliċement tipproċessa b'nginx, u kull wieħed għandu s-settings tal-illoggjar tiegħu stess, allura probabbilment jidher li se jkun inkonvenjenti ħafna għalik li parse minnhom. Minħabba li għal kull istanza ġdida ta 'nginx għandek bżonn tikteb parser tiegħek stess, għaliex jiktbu zkuk b'mod differenti. Għal darb'oħra, probabbilment kien ta 'min taħseb biex niżguraw li dawn l-istanzi kollha nginx kellhom l-istess konfigurazzjoni tal-qtugħ u kitbu r-zkuk kollha tagħhom b'mod assolutament uniformi. L-istess japplika għall-applikazzjonijiet assolutament kollha.

Fl-aħħar, irrid inżid ukoll karburant man-nar li, idealment, zkuk ta 'format b'ħafna linji għandhom jiġu evitati. Hawn il-ħaġa, jekk qatt ħdimt ma 'kolletturi ta' zkuk, allura x'aktarx rajt dak li jwiegħduk, li jistgħu jaħdmu ma 'zkuk b'ħafna linji, jafu kif jiġbruhom, eċċ. Fil-fatt, fl-opinjoni tiegħi, illum ebda kollettur wieħed ma jista 'jiġbor zkuk b'ħafna linji b'mod normali, bis-sħiħ u mingħajr żbalji. B'mod uman, sabiex ikun konvenjenti u mingħajr żbalji.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Iżda traċċa munzell hija dejjem zkuk b'ħafna linji u kif tevitahom. Il-mistoqsija hawnhekk hija li log huwa rekord ta 'avveniment, u stactrace mhuwiex attwalment log. Jekk niġbru zkuk u npoġġuhom x'imkien f'Elasticsearch u mbagħad niġbdu graffs minnhom, nibnu xi rapporti tal-attività tal-utent fuq is-sit tiegħek, allura meta jkollok traċċa tal-munzell, dan ifisser li qed jiġri xi ħaġa mhux mistennija sitwazzjoni mhux immaniġġjata fl-applikazzjoni tiegħek. U jagħmel sens li awtomatikament ittella 'traċċa ta' munzell x'imkien f'sistema li tista 'ssegwihom.

Dan huwa softwer (l-istess Sentry) li huwa magħmul speċifikament biex jaħdem ma 'traċċa ta' munzell. Jista 'minnufih joħloq kompiti awtomatizzati, jassenjahom lil xi ħadd, javża meta jseħħu stacttraces, jiġbor dawn stacttraces b'tip wieħed, eċċ. Fil-prinċipju, ma jagħmilx ħafna sens li nitkellmu dwar stactraces meta nitkellmu dwar zkuk, għax dawn huma, wara kollox, affarijiet differenti bi skopijiet differenti.

Konfigurazzjoni

Imbagħad nitkellmu dwar il-konfigurazzjoni f'Kubernetes: x'għandek tagħmel biha u kif l-applikazzjonijiet ġewwa Kubernetes għandhom jiġu kkonfigurati. B'mod ġenerali, normalment ngħid li Docker mhuwiex dwar kontenituri. Kulħadd jaf li Docker huwa dwar kontenituri, anke dawk li ma tantx ħadmu ma 'Docker. Nirrepeti, Docker mhux dwar kontenituri.

Docker, fl-opinjoni tiegħi, huwa dwar standards. U hemm standards għal prattikament kollox: standards għall-bini tal-applikazzjoni tiegħek, standards għall-installazzjoni tal-applikazzjoni tiegħek.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

U din il-ħaġa - użajna qabel, hija biss saret popolari speċjalment mal-miġja tal-kontenituri - din il-ħaġa tissejjaħ ENV (ambjent) varjabbli, jiġifieri, varjabbli ambjentali li huma fis-sistema operattiva tiegħek. Dan huwa ġeneralment mod ideali biex tikkonfigura l-applikazzjoni tiegħek, għaliex jekk għandek applikazzjonijiet f'JAVA, Python, Go, Perl, God forbid, u kollha jistgħu jaqraw il-host tad-database, l-utent tad-database, il-varjabbli tal-password tad-database, allura huwa ideali. Għandek applikazzjonijiet f'erba' lingwi differenti kkonfigurati fil-pjan tad-database bl-istess mod. M'hemmx aktar konfigurazzjonijiet differenti.

Kollox jista 'jiġi kkonfigurat bl-użu ta' varjabbli ENV. Meta nitkellmu dwar Kubernetes, hemm mod tajjeb ħafna biex tiddikjara l-varjabbli ENV dritt ġewwa l-Iskjerament. Għaldaqstant, jekk qed nitkellmu dwar data sigrieta, allura nistgħu immedjatament nimbottaw data sigrieta minn varjabbli ENV (passwords għal databases, eċċ.) F'sigriet, noħolqu raggruppament sigriet u indika fid-deskrizzjoni ENV f'Skjerament li mhux qed niddikjaraw direttament. il-valur ta 'din il-varjabbli, u l-valur ta' din il-varjabbli password tad-database se jinqraw mis-sigriet. Din hija l-imġieba standard ta' Kubernetes. U din hija l-iktar għażla ideali biex tikkonfigura l-applikazzjonijiet tiegħek. Biss fil-livell tal-kodiċi, għal darb'oħra dan japplika għall-iżviluppaturi. Jekk inti DevOps, tista’ tistaqsi: “Guys, jekk jogħġbok għallmu l-applikazzjoni tiegħek biex taqra varjabbli ambjentali. U lkoll inkunu ferħanin”.

Jekk kulħadd fil-kumpanija jaqra l-istess varjabbli ambjentali msemmija, allura dan huwa kbir. Sabiex ma jiġrix li xi wħud qed jistennew id-database postgres, oħrajn qed jistennew l-isem tad-database, oħrajn qed jistennew xi ħaġa oħra, oħrajn qed jistennew dbn ta 'xi tip, sabiex, għaldaqstant, ikun hemm uniformità.

Il-problema tiġi meta jkollok tant varjabbli ambjentali li inti biss tiftaħ Skjerament - u hemm ħames mitt linja ta 'varjabbli ambjentali. F'dan il-każ, inti sempliċiment qabżet il-varjabbli ambjentali - u m'għadx għandek bżonn tittortura lilek innifsek. F'dan il-każ, ikun jagħmel sens li tibda tuża l-konfigurazzjonijiet. Jiġifieri, ħarreġ l-applikazzjoni tiegħek biex tuża l-konfigurazzjonijiet.

L-unika mistoqsija hija li l-konfigurazzjonijiet mhumiex dak li taħseb. Config.pi mhix konfigurazzjoni li hija konvenjenti biex tużah. Jew xi konfigurazzjoni fil-format tiegħek stess, alternattivament talent - dan mhuwiex ukoll il-konfigurazzjoni li rrid ngħid.

Dak li qed nitkellem dwar huwa konfigurazzjoni f'formati aċċettabbli, jiġifieri, bil-bosta l-istandard l-aktar popolari huwa l-istandard .yaml. Huwa ċar kif taqrah, huwa leġibbli mill-bniedem, huwa ċar kif taqrah mill-applikazzjoni.

Għaldaqstant, minbarra YAML, tista 'wkoll, pereżempju, tuża JSON, l-analiżi hija konvenjenti daqs YAML f'termini ta' qari tal-konfigurazzjoni tal-applikazzjoni minn hemm. Huwa notevolment aktar inkonvenjenti għan-nies biex jaqraw. Tista' tipprova l-format, a la ini. Huwa pjuttost konvenjenti li taqra, mil-lat uman, iżda jista 'jkun inkonvenjenti li tipproċessaha awtomatikament, fis-sens li jekk qatt trid tiġġenera l-konfigurazzjonijiet tiegħek stess, il-format ini jista' jkun diġà inkonvenjenti biex tiġġenera.

Iżda fi kwalunkwe każ, tkun xi tkun il-format li tagħżel, il-punt huwa li mil-lat ta 'Kubernetes huwa konvenjenti ħafna. Tista' tpoġġi l-konfigurazzjoni kollha tiegħek ġewwa Kubernetes, fil-ConfigMap. U mbagħad ħu din il-konfigurazzjoni u itlobha biex tiġi mmuntata ġewwa l-pod tiegħek f'xi direttorju speċifiku, fejn l-applikazzjoni tiegħek se taqra l-konfigurazzjoni minn din il-konfigurazzjoni daqs li kieku kienet biss fajl. Dan, fil-fatt, huwa dak li huwa tajjeb li tagħmel meta jkollok ħafna għażliet ta 'konfigurazzjoni fl-applikazzjoni tiegħek. Jew huwa biss xi tip ta 'struttura kumplessa, hemm ibejtu.

Jekk għandek configmap, allura inti tista 'tgħallem tajjeb ħafna l-applikazzjoni tiegħek, pereżempju, biex issegwi awtomatikament il-bidliet fil-fajl fejn il-configmap huwa mmuntat, u wkoll awtomatikament jerġa' jtella' l-applikazzjoni tiegħek meta l-konfigurazzjonijiet jinbidlu. Din ġeneralment tkun għażla ideali.

Għal darb'oħra, diġà tkellimt dwar dan - informazzjoni sigrieta mhix fil-konfigmap, informazzjoni sigrieta mhix f'varjabbli, informazzjoni sigrieta mhix f'sigrieti. Minn hemm, qabbad din l-informazzjoni sigrieta mad-diplomazija. Normalment aħna naħżnu d-deskrizzjonijiet kollha ta 'oġġetti Kubernetes, skjeramenti, configmaps, servizzi f'git. Għaldaqstant, it-tqegħid tal-password għad-database f'git, anki jekk huwa l-git tiegħek, li għandek internament fil-kumpanija, hija idea ħażina. Minħabba li, għall-inqas, git jiftakar kollox u sempliċement li tneħħi l-passwords minn hemm mhix daqshekk faċli.

Kontroll tas-saħħa

Il-punt li jmiss huwa din il-ħaġa msejħa Health check. B'mod ġenerali, verifika tas-Saħħa hija sempliċement tivverifika li l-applikazzjoni tiegħek qed taħdem. Fl-istess ħin, ħafna drabi qed nitkellmu dwar ċerti applikazzjonijiet tal-web, li għalihom, għaldaqstant, mil-lat tal-kontroll tas-saħħa (aħjar li ma tittraduċix hawn u aktar) dan se jkun xi URL speċjali, li jipproċessaw bħala standard, huma normalment jagħmlu /health.

Meta taċċessa dan il-URL, għalhekk, l-applikazzjoni tagħna tgħid jew "iva, okay, kollox tajjeb miegħi, 200" jew "le, kollox mhux tajjeb miegħi, xi 500." Għaldaqstant, jekk l-applikazzjoni tagħna mhix http, mhux applikazzjoni tal-web, issa qed nitkellmu dwar xi tip ta 'daemon, nistgħu nifhmu kif nagħmlu kontrolli tas-saħħa. Jiġifieri, mhux meħtieġ, jekk l-applikazzjoni mhix http, allura kollox jaħdem mingħajr kontroll tas-saħħa u dan ma jista 'jsir bl-ebda mod. Tista' perjodikament taġġorna xi informazzjoni fil-fajl, tista' toħroġ b'xi kmand speċjali għad-daemon tiegħek, bħal, daemon status, li se tgħid "iva, kollox tajjeb, id-daemon qed jaħdem, huwa ħaj."

Għal xiex? L-ewwel u l-aktar ħaġa ovvja hija probabbilment għaliex verifika tas-saħħa hija meħtieġa - biex tifhem li l-applikazzjoni qed taħdem. I mean, huwa biss stupid, meta huwa up issa, jidher li qed jaħdem, sabiex inti tista 'tkun ċert li huwa jaħdem. U jirriżulta li l-applikazzjoni qed taħdem, il-kontejner qed jaħdem, l-istanza qed taħdem, kollox tajjeb - u allura l-utenti diġà qatgħu n-numri tat-telefon kollha mill-appoġġ tekniku u jgħidu "X'int..., int torqod, xejn mhu jaħdem.”

Kontroll tas-saħħa huwa biss tali mod biex tara mill-perspettiva tal-utent li taħdem. Wieħed mill-metodi. Ejja npoġġuha b'dan il-mod. Mil-lat ta 'Kubernetes, dan huwa wkoll mod kif nifhmu meta tibda l-applikazzjoni, għaliex nifhmu li hemm differenza bejn meta tnieda, maħluq u beda l-kontenitur, u meta l-applikazzjoni ġiet imnedija direttament f'dan il-kontenitur. Minħabba li jekk nieħdu xi applikazzjoni java medja u nippruvaw innieduha fil-baċir, imbagħad għal erbgħin sekonda, jew saħansitra minuta, jew saħansitra għaxar, tista 'tibda sewwa. F'dan il-każ, tista 'mill-inqas tħabbat fuq il-portijiet tagħha, mhux se twieġeb hemm, jiġifieri, għadha mhix lesta li tirċievi traffiku.

Għal darb'oħra, bl-għajnuna ta 'kontroll tas-saħħa u bl-għajnuna tal-fatt li qed iduru hawn, nistgħu nifhmu f'Kubernetes li mhux biss il-kontenitur żdied fl-applikazzjoni, iżda l-applikazzjoni nnifisha bdiet, diġà twieġeb għall- kontroll tas-saħħa, li jfisser li nistgħu nibagħtu t-traffiku hemmhekk.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Dak li qed nitkellem dwaru issa jissejjaħ Testijiet ta’ Prontezza/Ħajja fi ħdan Kubernetes; għaldaqstant, it-testijiet ta’ tħejjija tagħna huma responsabbli għad-disponibbiltà tal-applikazzjoni fl-ibbilanċjar. Jiġifieri, jekk isiru testijiet ta 'prontezza fl-applikazzjoni, allura kollox huwa ok, it-traffiku tal-klijenti sejjer lejn l-applikazzjoni. Jekk ma jsirux testijiet ta 'prontezza, allura l-applikazzjoni sempliċement ma tipparteċipax, din l-istanza partikolari ma tipparteċipax fl-ibbilanċjar, titneħħa mill-ibbilanċjar, it-traffiku tal-klijenti ma jiċċirkolax. Għaldaqstant, huma meħtieġa testijiet ta' Liveness fi ħdan Kubernetes sabiex jekk l-applikazzjoni teħel, tkun tista' terġa' tinbeda. Jekk it-test tal-ħajja ma jaħdimx għal applikazzjoni li hija ddikjarata f'Kubernetes, allura l-applikazzjoni mhux biss titneħħa mill-ibbilanċjar, hija terġa 'tibda.

U hawnhekk huwa punt importanti li nixtieq insemmi: mil-lat prattiku, it-test ta 'prontezza normalment jintuża aktar spiss u huwa aktar spiss meħtieġ mit-test tal-ħajja. Jiġifieri, sempliċement tiddikjara bla ħsieb kemm it-testijiet ta 'prontezza kif ukoll ta' ħajja, għaliex Kubernetes jista 'jagħmel dan, u ejja nużaw dak kollu li jista' jagħmel, mhix idea tajba ħafna. Jien ser nispjega għaliex. Minħabba li l-punt numru tnejn fl-ittestjar huwa li tkun idea tajba li tiċċekkja s-servizz sottostanti fil-kontrolli tas-saħħa tiegħek. Dan ifisser li jekk għandek applikazzjoni tal-web li tagħti xi informazzjoni, li min-naħa tagħha, naturalment, trid tieħu minn x'imkien. F'database, pereżempju. Ukoll, jiffranka l-informazzjoni li tidħol f'din l-API REST fl-istess database. Imbagħad, għalhekk, jekk il-kontroll tas-saħħa tiegħek jirrispondi sempliċement bħal slashhealth ikkuntattjat, l-applikazzjoni tgħid "200, okay, kollox tajjeb," u fl-istess ħin id-database tal-applikazzjoni tiegħek mhix aċċessibbli, u l-applikazzjoni tal-kontroll tas-saħħa tgħid "200, okay, kollox tajjeb ” - Dan huwa kontroll tas-saħħa ħażin. Dan mhux kif għandu jaħdem.

Jiġifieri l-applikazzjoni tiegħek, meta tasal għaliha talba /health, ma tirrispondix biss, “200, ok”, l-ewwel tmur, pereżempju, għad-database, tipprova tikkonnettja magħha, tagħmel xi ħaġa bażika ħafna hemmhekk, bħal tagħżel waħda, tiċċekkja biss li hemm konnessjoni fil- database u tista 'tfittex id-database. Jekk dan kollu rnexxa, allura t-tweġiba hija "200, ok." Jekk ma tirnexxix, tgħid li hemm żball, id-database mhix disponibbli.

Għalhekk, f'dan ir-rigward, nerġa' nirritorna għat-testijiet ta' Prontezza/Ħajja - għaliex x'aktarx ikollok bżonn test ta 'prontezza, iżda test tal-ħajja huwa inkwistjoni. Għax jekk tiddeskrivi l-kontrolli tas-saħħa eżattament kif għadni kif għedt, allura jirriżulta li mhux disponibbli fil-parti tal-istanzaв или со всех instancef'database, per eżempju. Meta ddikjarajt test ta' prontezza, il-kontrolli tas-saħħa tagħna bdew ifallu, u għalhekk l-applikazzjonijiet kollha li minnhom id-database mhix aċċessibbli, huma sempliċement mitfija mill-ibbilanċjar u fil-fatt "hang" biss fi stat traskurat u jistennew li d-databases tagħhom xogħol.

Jekk iddikjarajna test tal-ħajja, immaġina, id-database tagħna nkisret, u fil-Kubernetes tiegħek nofs kollox jibda jerġa 'jibda minħabba li t-test tal-ħajja jfalli. Dan ifisser li għandek bżonn terġa 'tibda. Dan mhu xejn li trid, anke kelli esperjenza personali fil-prattika. Kellna applikazzjoni taċ-chat li kienet miktuba f'JS u ddaħħlet f'database Mongo. U l-problema kienet li kien fil-bidu tax-xogħol tiegħi ma 'Kubernetes, iddeskrivejna r-rieda, il-ħajja tat-testijiet fuq il-prinċipju li Kubernetes jista' jagħmel dan, għalhekk se nużawh. Għaldaqstant, f'xi punt Mongo sar ftit "matt" u l-kampjun beda jfalli. Għaldaqstant, skont it-test tax-xita, il-miżwed bdew "joqtlu".

Kif tifhem, meta huma "maqtula", din hija chat, jiġifieri, hemm ħafna konnessjonijiet minn klijenti mdendlin fuqha. Huma wkoll "maqtula" - le, mhux klijenti, konnessjonijiet biss - mhux kollha fl-istess ħin, u minħabba l-fatt li ma jinqatlux fl-istess ħin, xi wħud qabel, uħud aktar tard, ma jibdewx fl-istess ħin ħin. Barra minn hekk standard każwali, ma nistgħux inbassru b'eżattezza millisekondi l-ħin tal-bidu tal-applikazzjoni kull darba, sabiex jagħmlu dan każ wieħed kull darba. Infospot wieħed jogħla, jiżdied mal-ibbilanċjar, il-klijenti kollha jiġu hemm, ma jistax jiflaħ tali tagħbija, għax huwa waħdu, u, bejn wieħed u ieħor, hemm tużżana minnhom jaħdmu hemm, u jaqa '. Dak li jmiss jitla’, it-tagħbija kollha fuqu, jaqa’ wkoll. Ukoll, dawn il-waqgħat ikomplu jissoktaw. Fl-aħħar, kif dan ġie solvut - kellna biss inwaqqfu b'mod strett it-traffiku tal-utent għal din l-applikazzjoni, inħallu l-istanzi kollha jogħlew u mbagħad nibdew it-traffiku tal-utent kollu f'daqqa sabiex ikun diġà mqassam fost l-għaxar istanzi kollha.

Kieku ma tħabbarx dan it-test tal-ħajja, li kien iġġiegħel kollox jerġa' jibda mill-ġdid, l-applikazzjoni kienet tittrattaha sew. Iżda kollox mill-ibbilanċjar huwa diżattivat għalina, minħabba li d-databases huma inaċċessibbli u l-utenti kollha "waqgħu". Imbagħad, meta din id-database ssir disponibbli, kollox huwa inkluż fl-ibbilanċjar, iżda l-applikazzjonijiet m'għandhomx għalfejn jerġgħu jibdew, u m'hemmx bżonn li jinħela ħin u riżorsi fuq dan. Kollha diġà qegħdin hawn, huma lesti għat-traffiku, għalhekk it-traffiku jiftaħ biss, kollox tajjeb - l-applikazzjoni hija f'postha, kollox ikompli jaħdem.

Għalhekk, it-testijiet tal-prontezza u l-ħajja huma differenti, anke barra minn hekk, teoretikament tista 'tagħmel kontrolli tas-saħħa differenti, raġġi ta' tip wieħed, liv tat-tip wieħed, pereżempju, u tiċċekkja affarijiet differenti. Waqt it-testijiet ta' prontezza, iċċekkja l-backends tiegħek. U fuq test tal-ħajja, pereżempju, ma tiċċekkjax mil-lat li t-test tal-ħajja ġeneralment huwa biss applikazzjoni li twieġeb, jekk tkun kapaċi tirrispondi xejn.

Għax it-test tal-ħajja, fil-biċċa l-kbira, huwa meta nkunu “mwaħħlin.” Beda linja bla tarf jew xi ħaġa oħra - u ma jiġux ipproċessati aktar talbiet. Għalhekk, jagħmel sens li saħansitra tisseparahom - u timplimenta loġika differenti fihom.

Rigward dak li trid twieġeb meta jkollok test, meta tagħmel kontrolli tas-saħħa. Huwa biss verament uġigħ. Dawk li huma familjari ma 'dan probabbilment se tidħaq - iżda bis-serjetà, rajt servizzi f'ħajti li jwieġbu "200" f'XNUMX% tal-każijiet. Jiġifieri min għandu suċċess. Iżda fl-istess ħin fil-korp tar-rispons jiktbu "tali żball."

Jiġifieri, l-istatus tar-rispons jiġi lilek - kollox huwa ta 'suċċess. Iżda fl-istess ħin, trid teżamina l-ġisem, għaliex il-korp jgħid "jiddispjacini, it-talba spiċċat bi żball" u din hija biss realtà. Rajt dan fil-ħajja reali.

U sabiex xi nies ma jsibuhiex umoristiċi, u oħrajn isibuha uġigħ ħafna, xorta ta 'min iżomm ma' regola sempliċi. Fil-kontrolli tas-saħħa, u fil-prinċipju meta taħdem ma 'applikazzjonijiet tal-web.

Jekk kollox mar tajjeb, allura wieġeb bil-mitejn risposta. Fil-prinċipju, kwalunkwe tweġiba ta' mitejn se tkun adattata għalik. Jekk taqra ragsy tajjeb ħafna u taf li xi status ta’ rispons huma differenti minn oħrajn, wieġeb b’dawk xierqa: 204, 5, 10, 15, tkun xi tkun. Jekk ma tkunx tajba ħafna, allura biss "żewġ żero żero." Jekk kollox imur ħażin u l-kontroll tas-saħħa ma jirrispondix, imbagħad wieġeb b'kull ħames mija. Għal darb'oħra, jekk tifhem kif twieġeb, kif l-istatus ta' rispons differenti jvarjaw minn xulxin. Jekk ma tifhimx, allura 502 hija l-għażla tiegħek li tirrispondi għall-kontrolli tas-saħħa jekk xi ħaġa tmur ħażin.

Dan huwa punt ieħor, irrid nirritorna ftit dwar il-verifika tas-servizzi sottostanti. Jekk tibda, pereżempju, tiċċekkja s-servizzi sottostanti kollha li jinsabu wara l-applikazzjoni tiegħek - kollox b'mod ġenerali. Dak li nġibu mil-lat tal-arkitettura tal-mikroservizz, għandna kunċett bħal "akkoppjar baxx" - jiġifieri, meta s-servizzi tiegħek huma minimament dipendenti fuq xulxin. Jekk wieħed minnhom ifalli, l-oħrajn kollha mingħajr din il-funzjonalità sempliċiment ikomplu jaħdmu. Xi wħud mill-funzjonalità sempliċement ma taħdimx. Għaldaqstant, jekk torbot il-kontrolli tas-saħħa kollha ma’ xulxin, allura tispiċċa b’ħaġa waħda li taqa’ fl-infrastruttura, u minħabba li waqgħet, jibdew ifallu wkoll il-kontrolli tas-saħħa kollha tas-servizzi kollha - u hemm aktar infrastruttura b’mod ġenerali għall- arkitettura sħiħa tal-mikroservizz Nru. Kollox dalam hemmhekk.

Għalhekk, irrid nirrepeti dan għal darb'oħra li għandek bżonn tiċċekkja s-servizzi sottostanti, dawk li mingħajrhom l-applikazzjoni tiegħek f'mija fil-mija tal-każijiet ma tistax tagħmel xogħolha. Jiġifieri, huwa loġiku li jekk għandek REST API li permezz tagħha l-utent jiffranka fid-database jew jirkupra mid-database, allura fin-nuqqas ta 'database, ma tistax tiggarantixxi xogħol mal-utenti tiegħek.

Imma jekk l-utenti tiegħek, meta teħodhom mid-database, jiġu miżjuda b'xi metadata oħra, minn backend ieħor, li inti tidħol qabel ma tibgħat tweġiba lill-frontend - u dan il-backend ma jkunx disponibbli, dan ifisser li inti tagħti tiegħek tweġiba mingħajr ebda parti mill-metadata.

Sussegwentement, għandna wkoll waħda mill-kwistjonijiet bl-uġigħ meta tniedi applikazzjonijiet.

Fil-fatt, dan ma japplikax biss għal Kubernetes b'mod ġenerali; ġara li l-kultura ta 'xi tip ta' żvilupp tal-massa u DevOps b'mod partikolari bdew jinfirxu madwar l-istess żmien bħal Kubernetes. Għalhekk, b'mod ġenerali, jirriżulta li għandek bżonn tagħlaq l-applikazzjoni tiegħek b'mod grazzjuż mingħajr Kubernetes. Anke qabel Kubernetes, in-nies għamlu dan, iżda bil-miġja ta 'Kubernetes, bdejna nitkellmu dwaru b'mod massiv.

Tfigħ grazzjuż

B'mod ġenerali, x'inhu Graceful Shutdown u għaliex huwa meħtieġ? Dan huwa dwar meta l-applikazzjoni tiegħek tiġġarraf għal xi raġuni, trid tagħmel app stop - jew tirċievi, pereżempju, sinjal mis-sistema operattiva, l-applikazzjoni tiegħek trid tifhimha u tagħmel xi ħaġa dwarha. L-agħar xenarju, ovvjament, huwa meta l-applikazzjoni tiegħek tirċievi SIGTERM u tkun bħal "SIGTERM, ejja nistennew, naħdmu, ma tagħmel xejn." Din hija għażla detta ħażina.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Għażla kważi ugwalment ħażina hija meta l-applikazzjoni tiegħek tirċievi SIGTERM u tkun bħal “qalu segterm, dan ifisser li qed nispiċċaw, ma rajtx, ma naf l-ebda talba tal-utent, ma nafx x’tip ta’ talbiet li għandi naħdem fuqhom bħalissa, qalu SIGTERM, dan ifisser li qed nispiċċaw " Din hija wkoll għażla ħażina.

Liema għażla hija tajba? L-ewwel punt huwa li titqies it-tlestija tal-operazzjonijiet. Għażla tajba hija li s-server tiegħek xorta jqis dak li jagħmel jekk jirċievi SIGTERM.

SIGTERM huwa għeluq artab, huwa ddisinjat apposta, jista 'jiġi interċettat fil-livell tal-kodiċi, jista' jiġi pproċessat, ngħidu li issa, stenna, l-ewwel se nispiċċaw ix-xogħol li għandna, imbagħad noħorġu.

Mill-perspettiva ta 'Kubernetes, dan huwa kif jidher. Meta ngħidu lil pod li qed jaħdem fil-grupp Kubernetes, "jekk jogħġbok waqqaf, mur," jew nibdew mill-ġdid, jew iseħħ aġġornament meta Kubernetes jirrikreja l-imżiewed, Kubernetes jibgħat biss l-istess messaġġ SIGTERM lill-pod, jistenna xi żmien, u , dan huwa l-ħin li jistenna, huwa wkoll ikkonfigurat, hemm tali parametru speċjali fid-diplomi u jissejjaħ Graceful ShutdownTimeout. Kif tifhem, ma tissejjaħx hekk għalxejn, u mhux ta’ b’xejn li qed nitkellmu dwarha issa.

Hemmhekk nistgħu ngħidu speċifikament kemm għandna bżonn nistennew bejn il-ħin li nibagħtu SIGTERM lill-applikazzjoni u meta nifhmu li l-applikazzjoni tidher li marret miġnun għal xi ħaġa jew hija "mwaħħla" u mhux se tispiċċa - u rridu ibgħatha SIGKILL, jiġifieri, tlesti bil-qawwi x-xogħol tagħha. Jiġifieri, għalhekk, għandna xi tip ta 'daemon taħdem, tipproċessa operazzjonijiet. Aħna nifhmu li bħala medja l-operazzjonijiet tagħna li d-daemon jaħdem fuqhom ma jdumux aktar minn 30 sekonda kull darba. Għaldaqstant, meta jasal SIGTERM, nifhmu li d-daemon tagħna jista’, l-iktar, jispiċċa 30 sekonda wara SIGTERM. Niktbuha, pereżempju, 45 sekonda fil-każ u ngħidu li SIGTERM. Wara dan nistennew 45 sekonda. Fit-teorija, matul dan iż-żmien id-dimonju messu temm ix-xogħol tiegħu u spiċċa hu stess. Imma jekk f'daqqa waħda ma setgħetx, dan ifisser li x'aktarx hija mwaħħla—m'għadhiex tipproċessa t-talbiet tagħna b'mod normali. U f'45 sekonda tista 'b'mod sikur, fil-fatt, dwiefer lilu isfel.

U hawn, fil-fatt, anke 2 aspetti jistgħu jitqiesu. L-ewwelnett, ifhem li jekk irċevejt talba, bdejt taħdem magħha b'xi mod u ma tatx tweġiba lill-utent, iżda rċevejt SIGTERM, pereżempju. Jagħmel sens li tirfinaha u tagħti tweġiba lill-utent. Dan huwa l-punt numru wieħed f'dan ir-rigward. Il-punt numru tnejn hawnhekk huwa li jekk tikteb l-applikazzjoni tiegħek, ġeneralment tibni l-arkitettura b'tali mod li tirċievi talba għall-applikazzjoni tiegħek, imbagħad tibda xi xogħol, tibda tniżżel fajls minn x'imkien, tniżżel database, u xi ħaġa oħra. - Dik. B'mod ġenerali, l-utent tiegħek, it-talba tiegħek tistrieħ għal nofs siegħa u tistenna li twieġeb lilu - imbagħad, x'aktarx, għandek bżonn taħdem fuq l-arkitettura. Jiġifieri, ikkunsidra biss is-sens komun li jekk l-operazzjonijiet tiegħek huma qosra, allura jagħmel sens li tinjora SIGTERM u timmodifikah. Jekk l-operazzjonijiet tiegħek huma twal, allura ma jagħmilx sens li tinjora SIGTERM f'dan il-każ. Jagħmel sens li tiddisinja mill-ġdid l-arkitettura biex tevita operazzjonijiet twal bħal dawn. Sabiex l-utenti ma jistennewx biss. Ma nafx, agħmel xi tip ta 'websocket hemmhekk, agħmel reverse hooks li s-server tiegħek diġà se jibgħat lill-klijent, kull ħaġa oħra, imma ma ġġiegħelx lill-utent biex hang għal nofs siegħa u stenna biss għal sessjoni sakemm int iwieġbu. Minħabba li huwa imprevedibbli fejn jista 'jinkisser.

Meta l-applikazzjoni tiegħek tintemm, għandek tipprovdi xi kodiċi tal-ħruġ xieraq. Jiġifieri, jekk l-applikazzjoni tiegħek intalbet tagħlaq, tieqaf, u setgħet tieqaf lilha nnifisha normalment, allura m'għandekx bżonn tirritorna xi tip ta 'kodiċi ta' ħruġ 1,5,255 u l-bqija. Kwalunkwe ħaġa li mhix kodiċi żero, għall-inqas fis-sistemi Linux, jiena ċert minn dan, hija kkunsidrata li ma tirnexxix. Jiġifieri, jitqies li l-applikazzjoni tiegħek f'dan il-każ spiċċat bi żball. Għaldaqstant, b'mod amikevoli, jekk l-applikazzjoni tiegħek titlesta mingħajr żball, tgħid 0 fuq l-output. Jekk l-applikazzjoni tiegħek tfalli għal xi raġuni, inti tgħid mhux 0 fl-output. U tista 'taħdem b'din l-informazzjoni.

U l-aħħar għażla. Huwa ħażin meta l-utent tiegħek jibgħat talba u jieqaf għal nofs siegħa waqt li tipproċessaha. Iżda b'mod ġenerali, nixtieq ngħid ukoll dwar dak li ġeneralment jiswa min-naħa tal-klijent. Ma jimpurtax jekk għandekx applikazzjoni mobbli, front-end, eċċ. Huwa meħtieġ li jittieħed kont li b'mod ġenerali s-sessjoni tal-utent tista 'tiġi mitmuma, jista' jiġri kollox. Talba tista' tintbagħat, pereżempju, mhux ipproċessata biżżejjed u l-ebda risposta ma tingħata lura. Il-frontend tiegħek jew l-applikazzjoni tal-mowbajl tiegħek - kwalunkwe frontend b'mod ġenerali, ejja ngħiduha hekk - għandha tqis dan. Jekk taħdem ma 'websockets, dan huwa ġeneralment l-agħar uġigħ li qatt kelli.

Meta l-iżviluppaturi ta 'xi chats regolari ma jafux li, jirriżulta, il-websocket jista' jinkiser. Għalihom, meta jiġri xi ħaġa fil-prokura, aħna biss nibdlu l-konfigurazzjoni, u tagħmel reload. Naturalment, is-sessjonijiet kollha ta 'ħajja twila huma mqattgħin f'dan il-każ. L-iżviluppaturi jiġu jiġru għandna u jgħidu: "Guys, x'qed tagħmel, iċ-chat waqa 'għall-klijenti tagħna kollha!" Ngħidulhom: “X’qed tagħmel? Il-klijenti tiegħek ma jistgħux jerġgħu jikkonnettjaw? Huma jgħidu: "Le, għandna bżonn li s-sessjonijiet ma jitqattgħux." Fil-qosor, dan huwa fil-fatt nonsense. In-naħa tal-klijent jeħtieġ li titqies. Speċjalment, kif ngħid, b'sessjonijiet ta 'ħajja twila bħal websockets, jista' jinkiser u, mingħajr ma jiġi osservat mill-utent, jeħtieġ li tkun tista 'terġa' tinstalla sessjonijiet bħal dawn. U allura kollox huwa perfett.

Riżorsi

Fil-fatt, hawn jien ngħidlek storja diretta. Għal darb'oħra mill-ħajja reali. L-iktar ħaġa marida li qatt smajt dwar ir-riżorsi.

Riżorsi f'dan il-każ, ngħid, xi tip ta 'talbiet, limiti li tista' tpoġġi fuq il-miżwed fil-clusters ta 'Kubernetes tiegħek. L-iktar ħaġa umoristiċi li smajt mingħand żviluppatur... Wieħed mill-iżviluppaturi sħabi f'post tax-xogħol preċedenti darba qal: "L-applikazzjoni tiegħi mhux se tibda fil-cluster." Fittixt biex nara li ma kienx qed jibda, iżda jew ma kienx jidħol fir-riżorsi, jew kienu waqqfu limiti żgħar ħafna. Fil-qosor, l-applikazzjoni ma tistax tibda minħabba riżorsi. Jien ngħid: "Mhux se jibda minħabba riżorsi, inti tiddeċiedi kemm għandek bżonn u tistabbilixxi valur adegwat." Hu jgħid: “X’tip taʼ riżorsi?” Bdejt nispjegalu li jeħtieġ li jiġu stabbiliti Kubernetes, limiti fuq talbiet u bla, bla, bla. Ir-raġel sema’ għal ħames minuti, għoġob u qal: “Ġejt hawn biex naħdem bħala żviluppatur, ma rrid inkun naf xejn dwar xi riżorsi. Ġejt hawn biex nikteb il-kodiċi u hekk.” Huwa imdejjaq. Dan huwa kunċett imdejjaq ħafna mil-lat ta 'żviluppatur. Speċjalment fid-dinja moderna, biex ngħidu hekk, ta 'devops progressivi.

Għaliex huma meħtieġa riżorsi? Hemm 2 tipi ta 'riżorsi f'Kubernetes. Xi wħud jissejħu talbiet, oħrajn jissejħu limiti. Bir-riżorsi se nifhmu li bażikament dejjem hemm biss żewġ restrizzjonijiet bażiċi. Jiġifieri, limiti ta 'żmien tas-CPU u limiti ta' RAM għal kontenitur li jaħdem f'Kubernetes.

Limitu jpoġġi limitu massimu fuq kif riżorsa tista' tintuża fl-applikazzjoni tiegħek. Jiġifieri, għalhekk, jekk tgħid 1GB ta 'RAM fil-limiti, allura l-applikazzjoni tiegħek ma tkunx tista' tuża aktar minn 1GB ta 'RAM. U jekk f'daqqa waħda jrid u jipprova jagħmel dan, allura proċess imsejjaħ oom killer, barra mill-memorja, jiġifieri, jiġi u joqtol l-applikazzjoni tiegħek - jiġifieri sempliċiment jerġa 'jibda. L-applikazzjonijiet mhux se jerġgħu jibdew ibbażati fuq is-CPU. F'termini ta 'CPU, jekk applikazzjoni tipprova tuża ħafna, aktar milli speċifikat fil-limiti, is-CPU se sempliċement jintgħażel b'mod strett. Dan ma jwassalx għal startjar mill-ġdid. Dan huwa l-limitu - dan huwa l-ogħla limitu.

U hemm talba. Talba hija kif Kubernetes jifhem kif in-nodi fil-cluster Kubernetes tiegħek huma popolati b'applikazzjonijiet. Jiġifieri, talba hija tip ta' impenn tal-applikazzjoni tiegħek. Jgħid dak li rrid nuża: "Nixtieq li tirriżerva dan ħafna CPU u din ħafna memorja għalija." Analoġija sempliċi bħal din. X'jiġri jekk ikollna node li għandu, ma nafx, 8 CPUs b'kollox. U pod jasal hemm, li t-talbiet tiegħu jgħidu 1 CPU, li jfisser li n-nodu fadal 7 CPUs. Jiġifieri, għalhekk, hekk kif 8 pods jaslu f'dan in-node, li kull wieħed minnhom għandu CPU 1 fit-talbiet tagħhom, in-node, bħallikieku mil-lat ta 'Kubernetes, spiċċa mingħajr CPU u aktar pods b'talbiet ma jistgħux jiġu. imnedija fuq dan in-node. Jekk in-nodi kollha jispiċċaw mingħajr CPU, allura Kubernetes jibda jgħid li m'hemmx nodi xierqa fil-cluster biex imexxu l-imżiewed tiegħek minħabba li s-CPU spiċċa.

Għaliex huma meħtieġa talbiet u għaliex mingħajr talbiet, naħseb li m'hemmx bżonn li titnieda xejn f'Kubernetes? Ejja nimmaġinaw sitwazzjoni ipotetika. Inti tniedi l-applikazzjoni tiegħek mingħajr talbiet, Kubernetes ma jafx kemm minn dak li għandek, liema nodi tista 'timbottaha. Ukoll, huwa jimbotta, shoves, shoves fuq in-nodi. F'xi punt, tibda tikseb it-traffiku għall-applikazzjoni tiegħek. U waħda mill-applikazzjonijiet f'daqqa waħda tibda tuża r-riżorsi sal-limiti li għandha skond il-limiti. Jirriżulta li hemm applikazzjoni oħra fil-viċin u teħtieġ ukoll riżorsi. In-nodu fil-fatt jibda fiżikament jispiċċa mingħajr riżorsi, pereżempju, OP. In-node attwalment jibda fiżikament jispiċċa mingħajr riżorsi, pereżempju, memorja ta 'aċċess każwali (RAM). Meta node jispiċċa mingħajr enerġija, l-ewwelnett id-docker jieqaf jirrispondi, imbagħad il-cubelet, imbagħad l-OS. Sempliċement se jispiċċaw mitluf minn sensih u KOLLOX żgur jieqaf jaħdem għalik. Jiġifieri, dan iwassal biex in-node tiegħek jeħel u jkollok bżonn terġa 'tibda. Fil-qosor, is-sitwazzjoni mhix tajba ħafna.

U meta jkollok talbiet, il-limiti mhumiex differenti ħafna, għall-inqas mhux ħafna drabi aktar mil-limiti jew it-talbiet, allura jista 'jkollok tali mili normali u razzjonali ta' applikazzjonijiet madwar in-nodi ta 'clusters Kubernetes. Fl-istess ħin, Kubernetes huwa bejn wieħed u ieħor konxju ta 'kemm minn dak li jpoġġi fejn, kemm minn dak li jintuża fejn. Jiġifieri, huwa biss mument bħal dan. Huwa importanti li tifhimha. U huwa importanti li tikkontrolla li dan ikun indikat.

Ħażna tad-dejta

Il-punt li jmiss tagħna huwa dwar il-ħażna tad-dejta. X'għandek tagħmel magħhom u b'mod ġenerali, x'għandek tagħmel bil-persistenza f'Kubernetes?

Naħseb, għal darb'oħra, fi ħdan tagħna Skola ta’ Filgħaxija, kien hemm suġġett dwar id-database f'Kubernetes. U jidhirli li bejn wieħed u ieħor naf dak li qalulek il-kollegi tiegħek meta mistoqsi: "Huwa possibbli li tħaddem database f'Kubernetes?" Għal xi raġuni, jidhirli li l-kollegi tiegħek kellhom jgħidulek li jekk qed tistaqsi l-mistoqsija jekk huwiex possibbli li tħaddem database f'Kubernetes, allura huwa impossibbli.

Il-loġika hawnhekk hija sempliċi. Fil-każ, ser nispjega għal darb'oħra, jekk int raġel tassew frisk li jista 'jibni sistema pjuttost tolleranti għall-ħsarat ta' ħażna ta 'netwerk distribwit, tifhem kif tidħol database f'dan il-każ, kif għandha taħdem sħaba nattiva f'kontenituri f'database b'mod ġenerali. Ħafna probabbli, m'għandekx mistoqsija dwar kif tmexxiha. Jekk għandek mistoqsija bħal din, u trid tiżgura li dan kollu jiżvolġi u jibqa 'dritt għall-mewt fil-produzzjoni u qatt ma jaqa', allura dan ma jseħħx. Int garantit li tispara lilek innifsek fis-sieq b'dan l-approċċ. Allura huwa aħjar li ma.

X'għandna nagħmlu bid-dejta li l-applikazzjoni tagħna tixtieq taħżen, xi stampi li l-utenti jtellgħu, xi affarijiet li l-applikazzjoni tagħna tiġġenera waqt it-tħaddim tagħha, fl-istartjar, pereżempju? X'għandek tagħmel magħhom f'Kubernetes?

B'mod ġenerali, idealment, iva, ovvjament, Kubernetes huwa ddisinjat tajjeb ħafna u ġeneralment kien inizjalment maħsub għal applikazzjonijiet mingħajr stat. Jiġifieri għal dawk l-applikazzjonijiet li ma jaħżnu l-informazzjoni xejn. Dan huwa ideali.

Iżda, ovvjament, l-għażla ideali mhux dejjem teżisti. Allura? L-ewwel u l-aktar punt sempliċi huwa li tieħu xi tip ta 'S3, sempliċement mhux wieħed magħmul mid-dar, li huwa wkoll mhux ċar kif taħdem, iżda minn xi fornitur. Fornitur tajjeb u normali - u għallem l-applikazzjoni tiegħek tuża S3. Jiġifieri, meta l-utent tiegħek irid itella' fajl, għid "hawn, jekk jogħġbok, ittellah fuq S3." Meta jkun irid jirċeviha, għid: "Hawn link għal S3 lura u ħudha minn hawn." Dan huwa ideali.

Jekk f'daqqa waħda għal xi raġuni din l-għażla ideali mhix adattata, għandek applikazzjoni li ma ktibtx, ma tiżviluppax, jew hija xi tip ta 'wirt terribbli, ma tistax tuża l-protokoll S3, iżda trid taħdem ma' direttorji lokali f' folders lokali. Ħu xi ħaġa ftit jew wisq sempliċi, uża Kubernetes. Jiġifieri, immedjatament iċ-ċnut ta 'Ceph għal xi kompiti minimi, jidhirli, hija idea ħażina. Għax Ceph, ovvjament, huwa tajjeb u moda. Imma jekk ma tifhimx verament x'qed tagħmel, allura ladarba tpoġġi xi ħaġa fuq Ceph, tista 'faċilment ħafna u sempliċiment qatt ma terġa' toħroġha minn hemm. Minħabba li, kif tafu, Ceph jaħżen id-dejta fil-grupp tiegħu f'forma binarja, u mhux fil-forma ta 'fajls sempliċi. Għalhekk, jekk f'daqqa waħda l-cluster Ceph jinqasam, allura hemm probabbiltà sħiħa u għolja li qatt ma terġa 'tikseb id-dejta tiegħek minn hemm.

Se jkollna kors fuq Ceph, tista’ tiffamiljarizza ruħek mal-programm u ssottometti applikazzjoni.

Għalhekk, huwa aħjar li tagħmel xi ħaġa sempliċi bħal server NFS. Kubernetes jista 'jaħdem magħhom, tista' timmonta direttorju taħt server NFS - l-applikazzjoni tiegħek hija bħal direttorju lokali. Fl-istess ħin, naturalment, għandek bżonn tifhem li, għal darb'oħra, għandek bżonn tagħmel xi ħaġa bl-NFS tiegħek, trid tifhem li xi kultant jista 'jsir inaċċessibbli u tikkunsidra l-kwistjoni ta' x'se tagħmel f'dan il-każ. Forsi għandu jkun appoġġjat x'imkien fuq magna separata.

Il-punt li jmiss li tkellimt dwaru huwa x'għandek tagħmel jekk l-applikazzjoni tiegħek tiġġenera xi fajls waqt it-tħaddim. Pereżempju, meta jibda, jiġġenera xi fajl statiku, li huwa bbażat fuq xi informazzjoni li l-applikazzjoni tirċievi biss fil-ħin tat-tnedija. X'mument. Jekk ma jkunx hemm ħafna dejta bħal din, allura m'għandekx għalfejn tolqot xejn, installa din l-applikazzjoni għalik innifsek u taħdem. L-unika mistoqsija hawnhekk hija xiex, ara. Ħafna drabi, kull xorta ta 'sistemi ta' wirt, bħal WordPress u l-bqija, speċjalment b'modifikat xi tip ta 'plugins cunning, żviluppaturi PHP cunning, ħafna drabi jafu kif jagħmluha sabiex jiġġeneraw xi tip ta' fajl għalihom infushom. Għaldaqstant, wieħed jiġġenera fajl wieħed, it-tieni jiġġenera fajl ieħor. Huma differenti. L-ibbilanċjar iseħħ fil-cluster Kubernetes tal-klijenti sempliċement b'kumbinazzjoni. Għaldaqstant, jirriżulta li ma jafux kif jaħdmu flimkien per eżempju. Wieħed jagħti informazzjoni waħda, l-ieħor jagħti lill-utent informazzjoni oħra. Din hija xi ħaġa li għandek tevita. Jiġifieri, f'Kubernetes, dak kollu li tniedi huwa garantit li tkun tista 'taħdem f'każijiet multipli. Minħabba li Kubernetes hija ħaġa li tiċċaqlaq. Għaldaqstant, jista’ jċaqlaq xi ħaġa, kull meta jrid, mingħajr ma jistaqsi lil ħadd. Għalhekk, trid toqgħod fuq dan. Kollox imniedi f'każ wieħed se jfalli llum jew għada. Iktar ma jkollok riżervi, aħjar. Imma għal darb'oħra, ngħid, jekk għandek ftit fajls bħal dawn, allura tista 'tpoġġihom eżatt taħtek, jiżnu ammont żgħir. Jekk hemm ftit aktar minnhom, probabbilment m'għandekx timbottahom ġewwa l-kontenitur.

Nagħti parir li hemm ħaġa hekk sabiħa f'Kubernetes, tista 'tuża l-volum. B'mod partikolari, hemm volum tat-tip dir vojta. Jiġifieri, huwa biss li Kubernetes awtomatikament joħloq direttorju fid-direttorji tas-servizz tiegħu fuq is-server fejn bdejt. U hu jagħtik biex tkun tista’ tużaha. Hemm punt importanti wieħed biss. Jiġifieri, id-dejta tiegħek mhux se tkun maħżuna ġewwa l-kontenitur, iżda pjuttost fuq il-host li qed taħdem fuqu. Barra minn hekk, Kubernetes jista 'jikkontrolla dirs vojta bħal dawn taħt konfigurazzjoni normali u huwa kapaċi jikkontrolla d-daqs massimu tagħhom u ma jħallix li jinqabeż. L-uniku punt huwa li dak li ktibt f'dir vojta ma jintilifx waqt il-pods restart. Jiġifieri, jekk il-pod tiegħek jaqa 'bi żball u jerġa' jogħla, l-informazzjoni fid-dir vojta ma tmur imkien. Huwa jista 'jerġa' jużah b'bidu ġdid - u dan huwa tajjeb. Jekk il-pod tiegħek jitlaq x'imkien, allura naturalment jitlaq mingħajr data. Jiġifieri, hekk kif il-pod min-node fejn ġie mniedi bid-dir vojta tisparixxi, id-dir vojta titħassar.

X'inhu tajjeb aktar dwar dir vojta? Per eżempju, jista 'jintuża bħala cache. Ejja nimmaġinaw li l-applikazzjoni tagħna tiġġenera xi ħaġa fuq il-fly, tagħtiha lill-utenti, u tagħmel dan għal żmien twil. Għalhekk, l-applikazzjoni, pereżempju, tiġġenera u tagħtiha lill-utenti, u fl-istess ħin taħżenha x'imkien, sabiex il-ħin li jmiss li l-utent jiġi għall-istess ħaġa, ikun aktar mgħaġġel li tagħtiha ġġenerata immedjatament. Dir vojt jista' jintalab lil Kubernetes biex joħloq fil-memorja. U għalhekk, il-caches tiegħek jistgħu ġeneralment jaħdmu b'veloċità sajjetti - f'termini ta 'veloċità ta' aċċess għad-disk. Jiġifieri, għandek dir vojta fil-memorja, fl-OS hija maħżuna fil-memorja, iżda għalik, għall-utent ġewwa l-pod, jidher qisu biss direttorju lokali. M'għandekx bżonn l-app biex tgħallem speċifikament xi magic. Inti sempliċement tieħu u tpoġġi l-fajl tiegħek f'direttorju, iżda, fil-fatt, fil-memorja fuq l-OS. Din hija wkoll karatteristika konvenjenti ħafna f'termini ta 'Kubernetes.

X'problemi għandu Minio? Il-problema ewlenija ma 'Minio hija li sabiex din il-ħaġa taħdem, jeħtieġ li tkun qed taħdem x'imkien, u għandu jkun hemm xi tip ta' sistema ta 'fajls, jiġifieri, ħażna. U hawn niltaqgħu mal-istess problemi li għandu Ceph. Jiġifieri, Minio għandu jaħżen il-fajls tiegħu x'imkien. Huwa sempliċiment interface HTTP għall-fajls tiegħek. Barra minn hekk, il-funzjonalità hija b'mod ċar ifqar minn dik tal-S3 tal-Amazon. Preċedentement, ma kienx kapaċi jawtorizza sew lill-utent. Issa, safejn naf jien, diġà jista 'joħloq bramel b'awtorizzazzjonijiet differenti, iżda għal darb'oħra, jidhirli li l-problema ewlenija hija, biex ngħidu hekk, is-sistema ta' ħażna sottostanti għall-minimu.

Kif vojta dir fil-memorja taffettwa l-limiti? Ma taffettwa l-limiti bl-ebda mod. Hija tinsab fil-memorja tal-ospitant, u mhux fil-memorja tal-kontenitur tiegħek. Jiġifieri, il-kontenitur tiegħek ma jarax id-dir vojta fil-memorja bħala parti mill-memorja okkupata tiegħu. L-ospitant jara dan. Għaldaqstant, iva, mil-lat tal-kubernetes, meta tibda tuża dan, ikun tajjeb li tifhem li qed tiddedika parti mill-memorja tiegħek għal dir vojta. U għalhekk, tifhem li l-memorja tista' tispiċċa mhux biss minħabba l-applikazzjonijiet, iżda wkoll għax xi ħadd jikteb lil dawn id-dirs vojta.

Cloudnativeness

U s-subtema finali huwa x'inhu Cloudnative. Għaliex hija meħtieġa? Cloudnativeness u l-bqija.

Jiġifieri, dawk l-applikazzjonijiet li huma kapaċi u miktuba sabiex jaħdmu f'infrastruttura moderna tal-cloud. Iżda, fil-fatt, Cloudnative għandu aspett ieħor bħal dan. Li din mhix biss applikazzjoni li tqis ir-rekwiżiti kollha ta 'infrastruttura moderna ta' sħab, iżda wkoll taf kif taħdem ma 'din l-infrastruttura moderna ta' sħab, tieħu vantaġġ mill-vantaġġi u l-iżvantaġġi tal-fatt li taħdem f'dawn is-sħab. Tmurx il-baħar u taħdem fis-sħab, imma tieħu vantaġġ mill-benefiċċji li taħdem fis-sħab.

Rekwiżiti għall-iżvilupp ta' applikazzjoni f'Kubernetes

Ejja nieħdu biss Kubernetes bħala eżempju. L-applikazzjoni tiegħek qed taħdem f'Kubernetes. L-applikazzjoni tiegħek tista' dejjem, jew aħjar l-amministraturi għall-applikazzjoni tiegħek, dejjem jistgħu joħolqu kont tas-servizz. Jiġifieri, kont għall-awtorizzazzjoni f'Kubernetes innifsu fis-server tiegħu. Żid xi drittijiet li għandna bżonn hemm. U tista' taċċessa Kubernetes minn ġewwa l-applikazzjoni tiegħek. X'tista' tagħmel b'dan il-mod? Pereżempju, mill-applikazzjoni, irċievi dejta dwar fejn jinsabu l-applikazzjonijiet l-oħra tiegħek, każijiet simili oħra, u flimkien b'xi mod iggruppaw fuq Kubernetes, jekk ikun hemm tali ħtieġa.

Għal darb'oħra, litteralment kellna każ reċentement. Għandna kontrollur wieħed li jimmonitorja l-kju. U meta xi kompiti ġodda jidhru f'dan il-kju, imur għand Kubernetes - u ġewwa Kubernetes joħloq pod ġdid. Jagħti lil dan il-pod xi kompitu ġdid u fi ħdan il-qafas ta 'dan il-pod, il-pod iwettaq il-kompitu, jibgħat tweġiba lill-kontrollur innifsu, u l-kontrollur imbagħad jagħmel xi ħaġa b'din l-informazzjoni. Per eżempju, hija żżid database. Jiġifieri, għal darb'oħra, dan huwa vantaġġ mill-fatt li l-applikazzjoni tagħna taħdem f'Kubernetes. Nistgħu nużaw il-funzjonalità ta' Kubernetes inkorporata nfisha sabiex b'xi mod nespandu u nagħmlu l-funzjonalità tal-applikazzjoni tagħna aktar konvenjenti. Jiġifieri, taħbix xi tip ta 'maġija dwar kif tniedi applikazzjoni, kif tniedi ħaddiem. F'Kubernetes, inti sempliċiment tibgħat talba fl-app jekk l-applikazzjoni tkun miktuba f'Python.

L-istess japplika jekk immorru lil hinn minn Kubernetes. Għandna l-Kubernetes tagħna għaddej x'imkien - tajjeb jekk ikun f'xi tip ta' sħaba. Għal darb'oħra, nistgħu nużaw, u anke għandna, nemmen, nużaw il-kapaċitajiet tas-sħab innifsu fejn qed inħaddmu. Mill-affarijiet elementari li tipprovdilna s-sħaba. Ibbilanċjar, jiġifieri, nistgħu noħolqu cloud balancers u nużawhom. Dan huwa vantaġġ dirett ta 'dak li nistgħu nużaw. Minħabba li l-ibbilanċjar tas-sħab, l-ewwelnett, sempliċement stupidament ineħħi r-responsabbiltà minna għal kif taħdem, kif hija kkonfigurata. Barra minn hekk huwa konvenjenti ħafna, għaliex Kubernetes regolari jistgħu jintegraw mas-sħab.

L-istess jgħodd għall-iskala. Kubernetes regolari jistgħu jintegraw mal-fornituri tal-cloud. Jaf kif jifhem li jekk il-cluster jispiċċa min-nodi, jiġifieri, l-ispazju tan-nodi spiċċa, allura trid iżżid - Kubernetes innifsu se jżid nodi ġodda mal-cluster tiegħek u jibda jniedi l-imżiewed fuqhom. Jiġifieri, meta tiġi t-tagħbija tiegħek, in-numru ta 'fuklar jibda jiżdied. Meta n-nodi fil-cluster jispiċċaw għal dawn il-miżwed, Kubernetes iniedi nodi ġodda u, għaldaqstant, in-numru ta 'miżwed xorta jista' jiżdied. U huwa konvenjenti ħafna. Din hija opportunità diretta biex tiskala l-cluster fuq il-fly. Mhux malajr ħafna, fis-sens li mhix sekonda, hija aktar bħal minuta sabiex iżżid nodi ġodda.

Iżda mill-esperjenza tiegħi, għal darb'oħra, hija l-aktar ħaġa sabiħa li qatt rajt. Meta l-cluster Cloudnative skalat ibbażat fuq il-ħin tal-ġurnata. Kien servizz backend li kien użat minn nies fil-back office. Jiġifieri, jidħlu għax-xogħol fid-9 am, jibdew jidħlu fis-sistema, u għalhekk, il-cluster Cloudnative, fejn kollox qed jaħdem, jibda jintefaħ, iniedi pods ġodda sabiex kull min jiġi għax-xogħol ikun jista 'jaħdem bl-applikazzjoni. Meta jitilqu mix-xogħol fit-8 pm jew fis-6 pm, il-clusters Kubernetes jinnutaw li ħadd ma jkun qed juża aktar l-applikazzjoni u jibdew jiċkienu. Iffrankar sa 30 fil-mija huwa garantit. Dak iż-żmien kien jaħdem fl-Amazon; dak iż-żmien ma kien hemm ħadd fir-Russja li seta’ jagħmel hekk tajjeb.

Jien ngħidlek dritt, l-iffrankar huwa ta '30 fil-mija sempliċement għaliex nużaw Kubernetes u nieħdu vantaġġ mill-kapaċitajiet tal-cloud. Issa dan jista 'jsir fir-Russja. Jien mhux se nirreklama lil ħadd, ovvjament, imma ejja ngħidu biss li hemm fornituri li jistgħu jagħmlu dan, jipprovduha mill-ewwel b'buttuna.

Hemm l-aħħar punt li nixtieq ukoll niġbed l-attenzjoni tiegħek. Sabiex l-applikazzjoni tiegħek, l-infrastruttura tiegħek tkun Cloudnative, jagħmel sens li finalment tibda tadatta l-approċċ imsejjaħ Infrastruttura bħala Kodiċi. Jiġifieri, dan ifisser li l-applikazzjoni tiegħek, jew aħjar l-infrastruttura tiegħek, hija meħtieġa eżattament bl-istess mod bħall- kodiċi Iddeskrivi l-applikazzjoni tiegħek, il-loġika tan-negozju tiegħek fil-forma ta 'kodiċi. U aħdem magħha bħala kodiċi, jiġifieri, ittestjaha, irromblaha, aħżenha f'git, applika s-CICD għaliha.

U dan huwa eżattament dak li jippermettilek, l-ewwelnett, li dejjem ikollok kontroll fuq l-infrastruttura tiegħek, li dejjem tifhem f'liema stat tinsab. It-tieni nett, evita operazzjonijiet manwali li jikkawżaw żbalji. It-tielet, evita sempliċement dak li jissejjaħ fatturat, meta jkollok bżonn kontinwament li twettaq l-istess kompiti manwali. Ir-raba ', jippermettilek tirkupra ħafna aktar malajr fil-każ ta' falliment. Fir-Russja, kull darba li nitkellem dwar dan, dejjem ikun hemm numru kbir ta 'nies li jgħidu: "Iva, huwa ċar, imma għandek approċċi, fil-qosor, m'hemmx għalfejn tirranġa xejn." Imma huwa veru. Jekk xi ħaġa tinkiser fl-infrastruttura tiegħek, allura mil-lat tal-approċċ Cloudnative u mill-perspettiva tal-Infrastruttura bħala Kodiċi, aktar milli tirranġaha, tmur fis-server, tiddeskrivi x'inhu miksur u tirranġah, huwa aktar faċli biex tħassar is-server u terġa' toħloqha. U dan kollu se jkolli restawrata.

Dawn il-kwistjonijiet kollha huma diskussi f'aktar dettall fuq Korsijiet bil-vidjo Kubernetes: Junior, Bażiku, Mega. Billi ssegwi l-link tista' tiffamiljarizza ruħek mal-programm u l-kundizzjonijiet. Il-ħaġa konvenjenti hija li tista 'tikkontrolla Kubernetes billi tistudja mid-dar jew taħdem għal sigħat 1-2 kuljum.

Sors: www.habr.com

Żid kumment