Kubernetes: sors miftuħ vs speċifiku għall-bejjiegħ

Hello, jien jisimni Dmitry Krasnov. Għal aktar minn ħames snin ilni namministra clusters ta' Kubernetes u nibni arkitetturi kumplessi ta' mikroservizzi. Fil-bidu ta’ din is-sena, nedejna servizz għall-immaniġġjar ta’ clusters ta’ Kubernetes ibbażat fuq Containerum. Nieħu din l-opportunità, ngħidlek x'inhu Kubernetes u kif l-integrazzjoni ma 'bejjiegħ tvarja minn sors miftuħ.

Biex tibda, x'inhu Kubernetes. Din hija sistema għall-ġestjoni tal-kontenituri fuq numru kbir ta 'hosts. Mill-Grieg, bilfors, huwa tradott bħala “pilota” jew “tmunier.” Oriġinarjament żviluppata minn Google u mbagħad mogħtija bħala kontribut teknoloġiku lill-Cloud Native Computing Foundation, organizzazzjoni internazzjonali mingħajr skop ta' qligħ li tgħaqqad flimkien l-iżviluppaturi, l-utenti finali u l-fornituri tat-teknoloġija tal-kontejners ewlenin fid-dinja.

Kubernetes: sors miftuħ vs speċifiku għall-bejjiegħ

Immaniġġja numru kbir ta 'kontenituri

Issa ejja nsemmu x'tip ta' kontenituri huma dawn. Din hija applikazzjoni bl-ambjent kollu tagħha - prinċipalment il-libreriji li fuqhom jiddependi l-programm. Dan kollu huwa ppakkjat f'arkivji u ppreżentat fil-forma ta 'immaġni li tista' titħaddem irrispettivament mis-sistema operattiva, ttestjata u aktar. Iżda hemm problema - il-ġestjoni tal-kontenituri fuq numru kbir ta 'hosts hija diffiċli ħafna. Huwa għalhekk li nħoloq Kubernetes.

Immaġini ta' kontenitur tirrappreżenta applikazzjoni flimkien mad-dipendenzi tagħha. L-applikazzjoni, id-dipendenzi tagħha, u l-immaġni tas-sistema tal-fajls tal-OS jinsabu f'partijiet differenti tal-immaġni, l-hekk imsejħa saffi. Is-saffi jistgħu jerġgħu jintużaw għal kontenituri differenti. Pereżempju, l-applikazzjonijiet kollha f'kumpanija jistgħu jużaw is-saff bażi ta' Ubuntu. Meta tħaddem kontenituri, m'hemmx bżonn li taħżen kopji multipli ta 'saff bażi wieħed fuq l-ospitant. Dan jippermettilek li tottimizza l-ħażna u l-kunsinna tal-immaġni.

Meta rridu nħaddmu applikazzjoni minn kontenitur, is-saffi meħtieġa huma superimposti fuq xulxin u tiġi ffurmata sistema ta 'fajls overlay. Saff ta 'reġistrazzjoni jitqiegħed fuq, li jitneħħa meta jieqaf il-kontenitur. Dan jiżgura li meta l-kontenitur jaħdem, l-applikazzjoni dejjem ikollha l-istess ambjent, li ma jistax jinbidel. Dan jiggarantixxi r-riproduċibbiltà tal-ambjent fuq OSs ospitanti differenti. Kemm jekk hu Ubuntu jew CentOS, l-ambjent dejjem se jkun l-istess. Barra minn hekk, il-kontenitur huwa iżolat mill-host bl-użu ta 'mekkaniżmi mibnija fil-kernel Linux. Applikazzjonijiet f'kontenitur ma jarawx fajls, proċessi ta 'l-ospitanti u kontenituri ġirien. Dan l-iżolament ta 'applikazzjonijiet mill-OS ospitanti jipprovdi saff addizzjonali ta' sigurtà.

Hemm ħafna għodod disponibbli biex jimmaniġġjaw kontenituri fuq host. L-aktar popolari minnhom huwa Docker. Jippermettilek tipprovdi ċ-ċiklu tal-ħajja sħiħ tal-kontenituri. Madankollu, jaħdem biss fuq host wieħed. Jekk għandek bżonn timmaniġġja kontenituri fuq hosts multipli, Docker jista 'jagħmel l-infern tal-ħajja għall-inġiniera. Huwa għalhekk li nħoloq Kubernetes.

Id-domanda għal Kubernetes hija preċiżament minħabba l-abbiltà li timmaniġġja gruppi ta 'kontenituri fuq hosts multipli bħala xi tip ta' entità waħda. Il-popolarità tas-sistema tipprovdi l-opportunità li jinbnew DevOps jew Operazzjonijiet ta 'żvilupp, li fihom Kubernetes jintuża biex imexxi l-proċessi ta' dan DevOps stess.

Kubernetes: sors miftuħ vs speċifiku għall-bejjiegħ

Figura 1. Rappreżentazzjoni skematika ta' kif jaħdem Kubernetes

Awtomazzjoni sħiħa

DevOps huwa bażikament l-awtomazzjoni tal-proċess ta 'żvilupp. Bejn wieħed u ieħor, l-iżviluppaturi jiktbu kodiċi li jittella fir-repożitorju. Imbagħad dan il-kodiċi jista 'jinġabar awtomatikament immedjatament f'kontenitur bil-libreriji kollha, ittestjat u "roll out" għall-istadju li jmiss - Staging, u mbagħad immedjatament għall-Produzzjoni.

Flimkien ma' Kubernetes, DevOps jippermettilek awtomat dan il-proċess sabiex iseħħ prattikament mingħajr parteċipazzjoni mill-iżviluppaturi nfushom. Minħabba dan, il-bini huwa sinifikament aktar mgħaġġel, peress li l-iżviluppatur m'għandux għalfejn jagħmel dan fuq il-kompjuter tiegħu - huwa sempliċement jikteb biċċa kodiċi, imbotta l-kodiċi għar-repożitorju, u wara jitnieda l-pipeline, li jista 'jinkludi l-proċess. tal-bini, ittestjar, u rolling out. U dan jiġri ma 'kull impenn, għalhekk l-ittestjar iseħħ kontinwament.

Fl-istess ħin, l-użu ta 'kontenitur jippermettilek tkun ċert li l-ambjent kollu ta' dan il-programm se jiġi rilaxxat fil-produzzjoni eżattament fil-forma li fiha ġie ttestjat. Jiġifieri, mhux se jkun hemm problemi bħal "kien hemm xi verżjonijiet fit-test, oħrajn fil-produzzjoni, iżda meta installajnahom, waqa 'kollox." U peress li llum għandna tendenza lejn arkitettura tal-mikroservizz, meta minflok applikazzjoni waħda enormi hemm mijiet ta 'dawk żgħar, sabiex jiġu amministrati manwalment, ikun meħtieġ persunal enormi ta' impjegati. Huwa għalhekk li nużaw Kubernetes.

Pros, vantaġġi, vantaġġi


Jekk nitkellmu dwar il-vantaġġi ta 'Kubernetes bħala pjattaforma, allura għandha vantaġġi sinifikanti mil-lat tal-ġestjoni ta' arkitettura ta 'mikroservizz.

  • Ġestjoni ta' repliki multipli. L-iktar ħaġa importanti hija l-ġestjoni tal-kontenituri fuq diversi hosts. Aktar importanti minn hekk, immaniġġja repliki ta 'applikazzjoni multipli f'kontenituri bħala entità waħda. Grazzi għal dan, l-inġiniera m'għandhomx għalfejn joqogħdu jinkwetaw dwar kull kontenitur individwali. Jekk wieħed mill-kontenituri jiġġarraf, Kubernetes jara dan u jerġa 'jibda.
  • Netwerk tal-cluster. Kubernetes għandu wkoll l-hekk imsejjaħ netwerk ta 'clusters bl-ispazju ta' l-indirizzi tiegħu stess. Grazzi għal dan, kull pod għandu l-indirizz tiegħu. Subpod huwa mifhum bħala l-unità strutturali minima ta 'cluster li fih il-kontenituri huma mnedija direttament. Barra minn hekk, Kubernetes għandu funzjonalità li tgħaqqad load balancer u Service Discovery. Dan jippermettilek teħles mill-ġestjoni manwali tal-indirizz IP u tiddelega dan il-kompitu lil Kubernetes. U l-kontrolli tas-saħħa awtomatiċi se jgħinu biex jinstabu problemi u jidderieġu mill-ġdid it-traffiku lejn il-miżwed tax-xogħol.
  • Ġestjoni tal-konfigurazzjoni. Meta timmaniġġja numru kbir ta 'applikazzjonijiet, isir diffiċli li timmaniġġja l-konfigurazzjoni tal-applikazzjoni. Għal dan il-għan, Kubernetes għandu riżorsi speċjali tal-ConfigMap. Jippermettulek taħżen konfigurazzjonijiet ċentralment u tesponihom għall-imżiewed meta tħaddem l-applikazzjonijiet. Dan il-mekkaniżmu jippermettilna niggarantixxu l-konsistenza tal-konfigurazzjoni f'mill-inqas għaxar jew mitt replika tal-applikazzjoni.
  • Volumi Persistenti. Il-kontenituri huma intrinsikament immutabbli u meta l-kontenitur jitwaqqaf, id-dejta kollha miktuba fis-sistema tal-fajls tinqered. Iżda xi applikazzjonijiet jaħżnu data direttament fuq disk. Biex issolvi din il-problema, Kubernetes għandu funzjonalità ta 'ġestjoni tal-ħażna tad-disk - Volumi Persistenti. Dan il-mekkaniżmu juża ħażna esterna għad-data u jista 'jittrasferixxi ħażna persistenti, blokk jew fajl, f'kontenituri. Din is-soluzzjoni tippermettilek taħżen id-dejta separatament mill-ħaddiema, li ssalvahom jekk dawn l-istess ħaddiema jkissru.
  • Load Balancer. Anke jekk f'Kubernetes niġġestixxu entitajiet astratti bħal Deployment, StatefulSet, eċċ., Fl-aħħar mill-aħħar il-kontenituri jaħdmu fuq magni virtwali regolari jew servers tal-ħardwer. Mhumiex perfetti u jistgħu jaqgħu fi kwalunkwe ħin. Kubernetes se jara dan u jidderieġi mill-ġdid it-traffiku intern lejn repliki oħra. Imma x'għandek tagħmel bit-traffiku li ġej minn barra? Jekk sempliċement tidderieġi t-traffiku lejn wieħed mill-ħaddiema, jekk tiġġarraf, is-servizz ma jkunx disponibbli. Biex issolvi din il-problema, Kubernetes għandu servizzi bħal Load Balancer. Huma ddisinjati biex jikkonfiguraw awtomatikament cloud balancer estern għall-ħaddiema kollha fil-cluster. Dan il-bilanċjar estern jidderieġi t-traffiku estern lejn il-ħaddiema u jimmonitorja l-istatus tagħhom innifsu. Jekk ħaddiem wieħed jew aktar ma jkunx disponibbli, it-traffiku jiġi ridirett lejn oħrajn. Dan jippermettilek toħloq servizzi disponibbli ħafna billi tuża Kubernetes.

Kubernetes jaħdem l-aħjar meta jħaddem arkitetturi ta' mikroservizzi. Huwa possibbli li tiġi implimentata s-sistema fl-arkitettura klassika, iżda huwa inutli. Jekk applikazzjoni ma tistax taħdem fuq repliki multipli, allura x'differenza tagħmel - f'Kubernetes jew le?

Kubernetes sors miftuħ


Kubernetes open source hija ħaġa kbira: installajtha u taħdem. Tista' tużah fuq is-servers tal-ħardwer tiegħek stess, fuq l-infrastruttura tiegħek stess, tinstalla kaptani u ħaddiema li fuqhom se jaħdmu l-applikazzjonijiet kollha. U l-aktar importanti, dan kollu huwa b'xejn. Madankollu, hemm sfumaturi.

  • L-ewwel hija d-domanda għall-għarfien u l-esperjenza ta 'amministraturi u inġiniera li se jużaw u jappoġġaw dan kollu. Peress li l-klijent jirċievi libertà sħiħa ta 'azzjoni fil-cluster, huwa jerfa' r-responsabbiltà għall-prestazzjoni tal-cluster innifsu. U huwa faċli ħafna li tkisser kollox hawn.
  • It-tieni huwa n-nuqqas ta’ integrazzjonijiet. Jekk tmexxi Kubernetes mingħajr pjattaforma ta 'virtwalizzazzjoni popolari, mhux se tikseb il-benefiċċji kollha tal-programm. Bħall-użu ta 'servizzi ta' Volumi Persistenti u Load balancer.

Kubernetes: sors miftuħ vs speċifiku għall-bejjiegħ

Figura 2. arkitettura k8s

Kubernetes mill-bejjiegħ


L-integrazzjoni ma' fornitur tal-cloud tipprovdi żewġ għażliet:

  • L-ewwelnett, persuna tista 'sempliċement tikklikkja fuq il-buttuna "oħloq cluster" u tikseb cluster diġà kkonfigurat u lest għall-użu.
  • It-tieni nett, il-bejjiegħ innifsu jinstalla l-cluster u jistabbilixxi integrazzjoni mal-sħaba.

Kif jiġri hawn. L-inġinier li jibda l-cluster jispeċifika kemm għandu bżonn ħaddiema u b'liema parametri (pereżempju, 5 ħaddiema, kull wieħed b'10 CPUs, 16 GB RAM u, ngħidu aħna, 100 GB disk). Wara dan jikseb aċċess għall-cluster diġà ffurmat. F'dan il-każ, il-ħaddiema li fuqhom titnieda t-tagħbija huma kompletament trasferiti lill-klijent, iżda l-pjan ta 'ġestjoni kollu jibqa' taħt ir-responsabbiltà tal-bejjiegħ (jekk is-servizz jiġi pprovdut skont il-mudell tas-servizz amministrat).

Madankollu, din l-iskema għandha l-iżvantaġġi tagħha. Minħabba l-fatt li l-pjan ta 'ġestjoni jibqa' mal-bejjiegħ, il-bejjiegħ ma jagħtix aċċess sħiħ lill-klijent, u dan inaqqas il-flessibbiltà fil-ħidma ma 'Kubernetes. Xi drabi jiġri li klijent irid iżid xi funzjonalità speċifika ma 'Kubernetes, pereżempju, awtentikazzjoni permezz LDAP, iżda l-konfigurazzjoni tal-pjan ta' ġestjoni ma tippermettix dan.

Kubernetes: sors miftuħ vs speċifiku għall-bejjiegħ

Figura 3. Eżempju ta’ cluster Kubernetes minn fornitur tal-cloud

X'għandek tagħżel: sors miftuħ jew bejjiegħ


Allura, Kubernetes huwa sors miftuħ jew speċifiku għall-bejjiegħ? Jekk nieħdu Kubernetes open source, allura l-utent jagħmel dak li jrid miegħu. Iżda hemm ċans kbir li tispara lilek innifsek fis-sieq. Mal-bejjiegħ huwa aktar diffiċli, għax kollox huwa maħsub u kkonfigurat għall-kumpanija. L-akbar żvantaġġ ta 'sors miftuħ Kubernetes huwa r-rekwiżit għal speċjalisti. B'għażla ta 'bejjiegħ, il-kumpanija hija meħlusa minn dan l-uġigħ ta' ras, iżda se jkollha tiddeċiedi jekk tħallasx lill-ispeċjalisti tagħha jew lill-bejjiegħ.

Kubernetes: sors miftuħ vs speċifiku għall-bejjiegħ

Kubernetes: sors miftuħ vs speċifiku għall-bejjiegħ

Ukoll, il-vantaġġi huma ovvji, l-iżvantaġġi huma magħrufa wkoll. Ħaġa waħda hija kostanti: Kubernetes issolvi ħafna problemi billi awtomatizza l-ġestjoni ta 'ħafna kontenituri. U liema waħda tagħżel, open source jew bejjiegħ - kulħadd jieħu d-deċiżjoni tiegħu.

L-artiklu tħejja minn Dmitry Krasnov, perit ewlieni tas-servizz Containerum tal-fornitur #CloudMTS

Sors: www.habr.com

Żid kumment