DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Kubernetes on suurepĂ€rane tööriist Docker konteinerite kĂ€itamiseks klastris. Siiski on ĂŒlesandeid, mida Kubernetes ei suuda lahendada. Tööprotsessis, kus toimub sagedane juurutamine, vajame tĂ€ielikult automatiseeritud Blue/Green juurutamist, et vĂ€ltida seisakuid, kus tuleb samuti hallata vĂ€liseid HTTP-pĂ€ringuid ja teostada SSL-i ĂŒtlemist. See nĂ”uab integreerimist koormuse tasakaalustajaga, nagu ha-proxy. Teine probleem on Kubernetes klastrite osaline automaatne skaleerimine pilves, nĂ€iteks klastrite osaline vĂ€hendamine öösel.

Kuigi Kubernetes ei oma neid funktsioone otse „karbist”, pakub see API-d, mida saab kasutada sarnaste ĂŒlesannete lahendamiseks. Automaatsete Blue/Green juurutus- ja skaleerimistööriistad Kubernetes klastris on arendatud Cloud RTI projekti raames, mis loodi open-source tehnoloogia alusel.

Selles artiklis, videote selgitamisel, rÀÀgitakse, kuidas seadistada Kubernetes koos muude avatud lÀhtekoodiga komponente tootmiskeskkonna loomiseks, mis talub koodi git commit muudatustest ilma seisakuteta tootmises.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 1

Niipea kui olete saanud oma rakendustele vÀljastpoolt juurdepÀÀsu, saab alustada automatiseerimise tÀielikku seadistamist, viies selle staadiumisse, kus saab teha git commit ja veenduda, et see git commit jÔuab tootmisse. Loomulikult ei soovi me, et nendest sammudest, juurutamisest, tekiks seisakuid. Seega algab kogu automatiseerimine Kubernetesis API-st.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Kubernetes ei ole tööriist, mida saaks produktiivselt kasutada «otsemĂŒĂŒgist». Loomulikult vĂ”id sa seda nii teha, kasutada kubectl jms, kuid API on selle platvormi kĂ”ige huvitavam ja kasulikum osa. Kasutades API-d funktsioonide komplektina, saad ligipÀÀsu peaaegu kĂ”igile asjadele, mida soovid Kuberneteses teha. Kubectl kasutab ka ise REST API-d.

See on REST, seega vĂ”id kasutada selle API-ga töötamiseks mistahes programmeerimiskeeli ja tööriistu, kuid kasutajate raamatukogud muudavad su elu mĂ€rkimisvÀÀrselt lihtsamaks. Minu meeskond on kirjutanud kaks sellist raamatukogu: ĂŒhe Java / OSGi jaoks ja teise Go jaoks. Teist kasutatakse mittetihti, kuid igal juhul on need kasulikud asjad sinu kĂ€sutuses. Need on osaliselt litsentseeritud avatud lĂ€htekoodiga projekt. Erinevatele keeledele on olemas palju selliseid raamatukogusid, et saaksid valida endale sobivad.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Enne juurutamise automatiseerimisega alustamist on oluline veenduda, et see protsess ei pĂ”hjustaks mingeid seiskamisi. NĂ€iteks meie meeskond viib tootmisjuurutuse lĂ€bi keskpĂ€eval, kui inimesed kasutavad rakendusi enim, seetĂ”ttu on ÀÀrmiselt oluline vĂ€ltida protsessi viivitusi. Seiskamiste vĂ€ltimiseks kasutatakse kahte meetodit: blue/green juurutamine vĂ”i skaleeritav vĂ€rskendus (rolling update). Viimasel juhul, kui teil on töötamas 5 rakenduse koopiat, uuendatakse neid jĂ€rjestikku ĂŒks pĂ€rast teist. See meetod töötab suurepĂ€raselt, kuid see ei sobi, kui juurutamise kĂ€igus on teil samaaegselt kĂ€imas erinevad rakenduse versioonid. Sellisel juhul vĂ”ite kasutajaliidese vĂ€rskendada samal ajal, kui tagumise poole töötavad vanema versiooniga, ja rakenduse töö katkeb. Seega on sellistes tingimustes programmeerimine ĂŒsna keeruline.

See on ĂŒks pĂ”hjusi, miks eelistame kasutada blue/green juurutamist oma rakenduste juurutamise automatiseerimiseks. Sellise lĂ€henemise puhul tuleb teil veenduda, et antud hetkel on aktiivne ainult ĂŒks rakenduse versioon.

Blue/green juurutamise mehhanism töötab jÀrgmiselt. Suuname oma rakendustele liikluse lÀbi ha-proxy, mis suunab selle sama versiooni kÀivitatud replikatele.

Kui toimub uus juurutamine, kasutame Deployerit, millele antakse uued komponendid, ja see viib ellu uue versiooni juurutamise. Uue versiooni rakenduse juurutamine tĂ€hendab, et „tĂ”useb” uus replikate komplekt, seejĂ€rel kĂ€ivitatakse need uue versiooni replikad eraldi, uues podis. Kuid ha-proxy ei tea neist midagi ja ei suuna neile veel mingit töökoormust.

SeetÔttu on esmane samm uute versioonide töö kontrollimiseks health checking, et veenduda, et replikad on valmis koormust teenindama.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

KÕIK rakenduste komponentide juurutamised peavad toetama mingit vormi tervise kontrolli. See vĂ”ib olla ĂŒsna lihtne HTTP pĂ€ring, millega saadakse 200 staatuse kood, vĂ”i pĂ”hjalikum kontroll, kus kontrollitakse koopiate ĂŒhendust andmebaasi ja teiste teenustega, dĂŒnaamilise keskkonna ĂŒhenduste usaldusvÀÀrsust ning kas kĂ”ik töötab ja töötab korralikult. See protsess vĂ”ib olla ĂŒsna keeruline.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

PĂ€rast seda, kui sĂŒsteem on veendunud, et kĂ”ik uuendatud koopiad töötavad, uuendab Deployer konfiguratsiooni ja edastab Ă”ige confd, mis konfigureerib uuesti ha-proxy.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Ainult pÀrast seda suunatakse liiklus uue versiooni koopiatega alla ja vana all kaob.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

See mehhanism ei ole Kubernetes'e eripÀra. Blue/green juurutamise kontseptsioon on eksisteerinud juba pikka aega ja see on alati kasutanud koormuse tasandajat. Esmalt suunate kogu liikluse vanemale versioonile ja pÀrast uuendamist suunate selle tÀielikult uuele versioonile. Seda pÔhimÔtet kasutatakse mitte ainult Kubernetes'es.

Tutvustan teile uut juurutuse komponenti - Deployer, mis viib lĂ€bi töökindluse kontrolli, konfigureerib ĂŒmber proksi jne. See on kontseptsioon, mis ei ole seotud vĂ€lismaailma ja eksisteerib Kuberneteses. NĂ€itan, kuidas luua omaenda Deployer kontseptsioon avatud lĂ€htekoodiga tööriistade abil.

Nii et esimene asi, mida Deployer teeb - loob replikatsiooni kontrolleri RC, kasutades Kubernetes API-d. See API loob pod'id ja teenused edasiseks juurutamiseks, st loob tÀiesti uue klastri meie rakenduste jaoks. Kui RC veendub, et replikad on kÀivitatud, siis viib ta lÀbi nende töökindluse kontrolli. Selleks kasutatakse Deployeris kÀsku GET /health. See kÀivitab vastavad kontrollkomponendid ja kontrollib kÔiki elemente, mis tagavad klastri töö.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Kui kĂ”ik podid on oma "tervise" kohta teatanud, loob Deployer uue konfiguratsiooni elemendi – jaotatud etcd-salvestuse, mida kasutatakse Kubernetes'i sees, sealhulgas koormuse tasakaalustaja konfiguratsiooni salvestamiseks. Me salvestame andmeid etcd-sse ning vĂ€ike tööriist confd jĂ€lgib etcd-d, et tuvastada uusi andmeid.

Kui see tuvastab mingeid muudatusi algses konfiguratsioonis, genereerib see uue seadistust faili ja edastab selle ha-proxy'le. Sel juhul taaskĂ€ivitab ha-proxy oma ĂŒhendusi kaotamata ja suunab koormuse uutele teenustele, mis tagavad meie rakenduste uue versiooni toimimise.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Nagu nÀete, ei ole siin, hoolimata komponentide rohkusest, midagi keerulist. Peate lihtsalt rohkem tÀhelepanu pöörama API-le ja etcd-le. Soovin rÀÀkida teile avatud lÀhtekoodiga deployerist, mida me ise kasutame - see on Amdatu Kubernetes Deployer.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

See on tööriist Kubernetes'i juurutuste orkestreerimiseks, millel on jÀrgmised funktsioonid:

  • Blue/Green deployment juurutamine;
  • vĂ€list koormuse tasakaalustaja seadistamine;
  • juurutuste descriptoride haldamine;
  • tĂ”elise juurutuse haldamine;
  • Terviklikkuse kontrollimine Health checks juurutamise ajal;
  • Keskkonnaparameetrite sissetoomine podidesse.

See Deployer on loodud Kubernetes API ĂŒle ja pakub REST API-d descriptorite ja juurutuste haldamiseks ning Websocket API-d juurutamise ajal voogedastamiseks logides.

See paneb koormuse tasakaalustaja konfiguratsiooni andmed etcd-sse, seega ei pea te kasutama ha-proxy-d 'kastist vÀlja', vaid saate lihtsalt kasutada oma koormuse tasakaalustaja konfiguratsiooni faili. Amdatu Deployer on kirjutatud Go-s, nagu ka Kubernetes ise, ja litsentseeritud Apache all.

Enne selle versiooni rakendamise alustamist kasutasin jÀrgmist juurutuse deskriptorit, kus on mÀÀratud vajalikud parameetrid.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Üks selle koodi olulisi parameetreid on lipu „useHealthCheck“ lubamine. Peame nĂ€itama, et juurutamise kĂ€igus tuleb teostada töökindluse kontroll. Seda parameetrit vĂ”ib vĂ€lja lĂŒlitada, kui juurutamisel kasutatakse kolmandate osapoolte konteine, mida ei ole vaja kontrollida. Sellel descriptoril on samuti mÀÀratud replikaarv ja ha-proxy vajaliku eesmine URL. LĂ”pus on podspec'i spetsiifikalipp, mis suunab Kubernetes'i sadamate, pildi jne seadistamise teabe saamiseks. See on ĂŒsna lihtne descriptor JSON formaadis.

Veel ĂŒks tööriist, mis on osa avatud lĂ€htekoodiga projektist Amdatu, on Deploymentctl. Sellel on kasutajaliides (UI) juurutamise seadistamiseks, see salvestab juurutamise ajaloo ning sisaldab veebi konksu tagasikutsumiste jaoks kolmandate osapoolte kasutajatelt ja arendajatelt. Te ei pruugi kasutada UI-d, kuna Amdatu Deployer ise on REST API, kuid see liides vĂ”ib juurutamist oluliselt lihtsustada ilma igasuguse API kaasamiseta. Deploymentctl on kirjutatud OSGi/Vertx koos Angular 2-ga.

NĂŒĂŒd demonstreerin öeldut ekraanil, kasutades eelnevalt salvestatud videot, nii et teil ei pea ootama. Me seadistame lihtsat rakendust Go-s. Ärge muretsege, kui te pole varem Go-t kasutanud; see on vĂ€ga lihtne rakendus, nii et kĂ”ik peaks olema arusaadav.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Siin loome HTTP-serveri, mis vastab ainult /health, nii et see rakendus kontrollib ainult töövalmidust ja mitte midagi muud. Kui kontroll lĂ€heb lĂ€bi, kuvatakse allpool nĂ€idatud JSON-struktuur. See sisaldab versiooni rakendusest, mida juurutatakse, sĂ”numit, mida nĂ€ete faili ĂŒlaosas, ja loogilist andmetĂŒĂŒpi boolean — kas meie rakendus on töötav vĂ”i mitte.

Viimase rea juures ma pisut petasin, sest panin faili ĂŒlaossa fikseeritud boolean vÀÀrtuse, mis aitab mul hiljem isegi "haige" rakenduse juurutada. Hiljem saame sellega tegelema hakata.

Nii et alustame. Esiteks kontrollime, kas on aktiveeritud mingeid pod'e, kasutades kÀsku ~ kubectl get pods, ja kui esiosa URL-st vastust ei tule, veendume, et praegu ei toimu mingeid juurutamisi.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Edasi nÀete ekraanil Deploymentctl'i liidest, kus mÀÀratakse juurutamise parameetrid: nimekiri, rakenduse nimi, juurutamise versioon, replikaid, front-end URL, konteineri nimi, pilt, ressursi piirangud, tervisekontrolli port jne. Ressursi piirangud on vÀga olulised, kuna need vÔimaldavad maksimaalselt kasutada olemasolevat riistvara. Siin saab ka vaadata juurutamislogi.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Kui nĂŒĂŒd korrata kĂ€sku ~ kubectl get pods, on nĂ€ha, et sĂŒsteem «peatub» 20 sekundiks, mille jooksul toimub ha-proxy rekonstruktsioon. PĂ€rast seda kĂ€ivitatakse pod ja meie replika on nĂ€ha juurutamislogis.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Olen videost vĂ€lja lĂ”igatud 20-sekundilise ootamise, ja nĂŒĂŒd nĂ€ete ekraanil, et rakenduse esimene versioon on juurutatud. KĂ”ik see tehti ainult UI abil.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

NĂŒĂŒd proovime teist versiooni. Selleks muudan rakenduse sĂ”numi "Tere, Kubernetes!" muutumisel "Tere, Deployer!", sĂŒsteem loob selle pildi ja paigutab selle Docker registrisse, pĂ€rast mida vajutame lihtsalt veel kord nupule "Deploy" aknas Deploymentctl. Sellega algab automaatselt juurutamise logi, just nagu see toimus esmakordse rakenduse juurutamise ajal.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

KÀsk ~ kubectl get pods nÀitab, et hetkel on kÀimas 2 versiooni rakendusest, kuid front-end nÀitab, et meil töötab ikka veel versioon 1.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Tasakaalustaja ootab, kuni tervisekontroll toimub, pĂ€rast mida suunab ta liikluse uue versiooni poole. 20 sekundi pĂ€rast vahetame curlile ja nĂ€eme, et nĂŒĂŒd on meil juurutatud 2. versioon rakendusest, samas kui esimene on eemaldatud.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

See oli "terve" rakenduse juurutamine. Vaadakem, mis juhtub, kui muudan rakenduse uue versiooni puhul parameetri Healthy vÀÀrtuse true-st false-ks, st ĂŒritan juurutada mittefunktsionaalset rakendust, mis ei ole lĂ€binud töökindluse kontrolli. See vĂ”ib juhtuda, kui arendusetapis on rakenduses tehtud mingid konfiguratsiooni vead ja see saadeti sellisena tootmisesse.

Nagu nĂ€ete, lĂ€bib juurutamine kĂ”ik ĂŒlaltoodud etapid ja ~ kubectl get pods nĂ€itab, et mĂ”lemad podid on kĂ€imas. Kuid erinevalt eelmisest juurutamisest nĂ€itab logi timeout'i seisundit. See tĂ€hendab, et kuna health check'i kontroll ebaĂ”nnestus, ei saa rakenduse uus versioon juurutada. Tulemusena nĂ€ete, et sĂŒsteem naases vana rakenduse versiooni kasutamise juurde ja uus versioon eemaldati lihtsalt.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Hea on see, et isegi kui teie rakendusse jĂ”uab suur hulk samaaegseid pĂ€ringuid, ei mĂ€rka nad isegi seisakut rakendamise protsessi ajal. Kui testite seda rakendust Gatlingi raamistikuga, mis saadab sellele maksimaalselt vĂ”imaliku hulga pĂ€ringuid, ei lĂŒkka ĂŒkski neist pĂ€ringutest tagasi. See tĂ€hendab, et meie kasutajad ei mĂ€rkagi versioonide ajakohastamist reaalajas. Kui see ebaĂ”nnestub, jĂ€tkatakse vana versiooniga; kui see Ă”nnestub, liikuvad kasutajad uuele versioonile.

Ainult ĂŒks asi vĂ”ib viia ebaĂ”nnestumiseni – kui health check on lĂ€bitud ja rakendus peatub kohe, kui koormus sellele laekub, siis kokkuvarisemine toimub alles pĂ€rast juurutamise lĂ”petamist. Sel juhul peate kĂ€sitsi tagasi minema vanemale versioonile. Nii et oleme arutanud, kuidas kasutada Kubernetesit koos sellele mĂ”eldud avatud lĂ€htekoodiga tööriistadega. Juurutamisprotsess kulgeb palju sujuvamalt, kui integreerite need tööriistad oma Build/Deploy torudesse. Sellega vĂ”ite kasutada juurutamise kĂ€ivitamiseks nii kasutajaliidest kui ka tĂ€ielikult automatiseerida protsesse, rakendades nĂ€iteks commit to master.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Meie Build Server loob Docker pildi, laadib selle Docker Hubi vÔi mÔnda muusse teie kasutatavasse registrisse. Docker Hub toetab webhook'e, seega saame kÀivitada kaugjuurutamise kaudu Deployer eespool nÀidatud viisil. Nii saab rakenduse juurutamise tÀiesti automatiseerida potentsiaalsesse tootmisse.

Liigume jĂ€rgmise teema – Kubernetes klastrite skaleerimise – juurde. TĂ”in vĂ€lja, et kubectl kĂ€sk on skaleerimise kĂ€sk. Selle abil on lihtne suurendada olemasolevate replikate arvu meie klastris. Praktikas tahame me siiski suurendada mitte podide, vaid nootide arvu.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Töötamise ajal vĂ”ib vaja minna suurendamist, samas kui öösel, et vĂ€hendada Amazon'i teenuste kulusid, tuleb vĂ€hendada kĂ€imasolevate rakenduste koopiaid. See ei tĂ€henda, et piisab ainult podide arvu skaleerimisest, sest isegi kui ĂŒks noot ei ole hĂ”ivatud, peate ikkagi selle eest Amazonile maksma. See tĂ€hendab, et podide skaleerimise kĂ”rval peate skaleerima ka kasutatavate masinate arvu.

See vĂ”ib tekitada raskusi, sest sĂ”ltumata sellest, kas kasutame Amazoni vĂ”i mĂ”nda muud pilveteenust, ei tea Kubernetes midagi kasutatavate masinate arvust. Tal ei ole tööriista, mis vĂ”imaldaks sĂŒsteemi skaleerida nootide tasemel.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Seega peame hoolitsema nii sÔlmede kui ka podide eest. Uute sÔlmede kÀivitamise suurendamine on lihtne AWS API ja skaleerimisgrupi (Scaling group) masinate abil, et seadistada Kubernetes'e töötlusettevÔtete arv. Samuti saab kasutada cloud-init vÔi sarnast skripti, et registreerida sÔlmed Kubernetes'e klastri.

Uus masin kĂ€ivitub Scaling group'is, algatab end sĂ”lmena, registreerib end Ă”hhis ja alustab tööd. PĂ€rast seda saab suurendada replikate arvu, et kasutada moodustunud sĂ”lmedes. Skaala vĂ€hendamine nĂ”uab suuremaid pingutusi, kuna on vajalik tagada, et seesugune samm ei viiks juba töötavate rakenduste hĂ€vitamiseni pĂ€rast "mittevajalike" masinate vĂ€ljalĂŒlitamist. Sellise stsenaariumi vĂ€ltimiseks tuleb viia sĂ”lmed 'unschedulable' olekusse. See tĂ€hendab, et planeerija ignoreerib neid sĂ”lmi DaemonSet'i pod'ide plaanimisel. Planeerija ei eemalda midagi nende serverite pealt, kuid ei hakka sinna ka uusi konteineri kĂ€ivitama. JĂ€rgmine samm on sĂ”lme drenaĆŸ, s.t. töötavate pod'ide ĂŒleviimine teisele masinale vĂ”i teistele sĂ”lmedele, mis omavad sellele piisavat mahtu. Kui on veendunud, et nendel sĂ”lmedel ei ole enam kontaine, saab need Kubernetesest eemaldada. PĂ€rast seda lakkavad nad Kuberneteses olemast. Edasi tuleb kasutada AWS API-d, et vĂ€ljalĂŒlitada mittevajalikke sĂ”lmi vĂ”i masinaid.
Te saate kasutada Amdatu Scalerd - veel ĂŒht avatud lĂ€htekoodiga tööriista skaleerimiseks, mis sarnaneb AWS API-le. See pakub CLI-d klastrisse sĂ”lmede lisamiseks vĂ”i eemaldamiseks. Selle huvitavaks omaduseks on vĂ”imalus seadistada ajakava jĂ€rgmise json-failiga.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

Kood, mis on nÀidatud, vÀhendab klastrivÔimsust öösiti poole vÔrra. See on seadistatud nii olemasolevate replikate arvu kui ka soovitud Amazon'i klastrivÔimsuse jaoks. Selle ajakava kasutamine vÀhendab automaatselt sÔlmede arvu öösel ja suurendab seda hommikul, vÔimaldades kokku hoida kulusid sÔlmede kasutamisel sellises pilveteenuses nagu Amazon. See funktsioon ei ole Kubernetes'e sisse ehitatud, kuid Scalerd'i kasutamine vÔimaldab teil seda platvormi skaleerida meelepÀrasel viisil.

Soovin juhtida tĂ€helepanu sellele, et paljud inimesed ĂŒtlevad mulle: "See kĂ”ik on hea, aga mis saab minu andmebaasist, mis tavaliselt on staatilises olekus?" Kuidas on vĂ”imalik midagi sellist kĂ€ivitada dĂŒnaamilises keskkonnas nagu Kubernetes? Minu arvates ei peaks te seda tegema, ei peaks proovima korraldada andmehoidla toimimist Kuberneteses. Tehniliselt on see vĂ”imalik, ja internetis on selle kohta juhiseid, kuid see raskendab tĂ”siselt teie elu.

Jah, Kuberneteses on olemas pĂŒsivate andmehoidlate mĂ”isted, ja vĂ”ite proovida kĂ€ivitada andmehoidlaid nagu Mongo vĂ”i MySQL, kuid see on ĂŒsna aeganĂ”udev ĂŒlesanne. See on seotud sellega, et andmehoidlad ei toeta tĂ€ielikult suhtlemist dĂŒnaamilises keskkonnas. Enamik andmebaase nĂ”uab olulist seadistamist, sealhulgas kĂ€sitsi klastrite seadistamist ning ei armasta automaatset skaleerimist ja muid sarnaseid asju.
SeetĂ”ttu ei tasu endale elu keeruliseks teha, pĂŒĂŒdes andmesalvestust Kuberneteses kĂ€ivitada. korraldage nende töö traditsiooniliselt tuttavate teenuste abil ja laske Kubernetesel neid kasutada.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

KokkuvÔtteks tahaksin teid tutvustada Cloud RTI platvormiga, mis pÔhineb Kubernetesel ja mille kallal töötab minu meeskond. See pakub keskset logide haldamist, rakenduste ja klastrite monitooringut ning omab palju teisi kasulikke funktsioone, mis vÔivad teile kasuks tulla. Platvormil kasutatakse erinevaid avatud lÀhtekoodiga tööriistu, nagu Grafana monitooringu kuvamiseks.

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

DEVOXX UK. Kubernetes tootmises: Blue/Green juurutamine, automaatne skaleerimine ja juurutamise automatiseerimine. Osa 2

KĂŒsimus kerkis, miks kasutada Kubernetesega koos koormuse jaotajat ha-proxy. HĂ€sti esitatud kĂŒsimus, kuna praegu on olemas 2 koormuse jaotustasandit. Kubernetes teenused asuvad endiselt virtuaalsetel IP-aadressidel. Te ei saa neid kasutada vĂ€liste host-masinate portidele, kuna kui Amazon ĂŒle koormab oma pilvema, muutub aadress. SellepĂ€rast asetame ha-proxy teenuste ette — et luua stabiilsem struktuur, et liiklus saaks sujuvalt suhelda Kubernetesega.

Veel hea kĂŒsimus – kuidas hoolitseda andmebaasi skeemi muutmise eest blue/green deployment'i puhul? Tegelikult on andmebaasi skeemi muutmine keeruline ĂŒlesanne, sĂ”ltumata Kubernetes'i kasutamisest. Peate tagama vana ja uue skeemi ĂŒhilduvuse, seejĂ€rel saate andmebaasi uuendada ja seejĂ€rel rakendusi. Saate teostada „kuuma vahetuse“ andmebaasi, seejĂ€rel uuendada rakendusi. Tunnen inimesi, kes on laadinud tĂ€iesti uue andmebaasi klastri uue skeemiga, see on variant, kui teil on schemeless andmebaas nagu Mongo, kuid igal juhul ei ole see lihtne ĂŒlesanne. Kui kĂŒsimusi rohkem ei ole, tĂ€nan tĂ€helepanu eest!

Vaata videot

Veidi reklaami 🙂

AitĂ€h, et olete meiega. Kas teile meeldivad meie artiklid? Kas soovite nĂ€ha rohkem huvitavaid materjale? Toetage meid, tehes tellimuse vĂ”i soovitades meid tuttavatele. pilve VPS arendajatele alates $4,99, ainulaadne sisenemise taseme serverite analoog, mille oleme teie jaoks vĂ€lja mĂ”elnud: Kogu tĂ”de VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps alates $19 vĂ”i kuidas Ă”ieti serverit jagada? (saadaval on RAID1 ja RAID10 variandid, kuni 24 sĂŒdamikku ja kuni 40GB DDR4).

Kas Dell R730xd on kaks korda odavam Equinixi Tier IV andmete keskuses Amsterdamis? Ainult meie juures 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB alates $199 Hollandi turul! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — alates $99! Lugege, kuidas Luua ettevĂ”tte tasemel infrastruktuur Dell R730xd E5-2650 v4 serveritega, mille hind on 9000 eurot, madala hinnaga?

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster