Chanzo: www.hackerone.com – Mwandishi: Konstantinos Stavropoulos. Kuamua kwamba kituo cha kwanza katika safari kinapaswa kuwa nguzo ya CI, timu ilianza kuandaa mipango. Mipango ya jinsi wangefika huko, ni aina gani ya miundombinu ya msingi ambayo wangehitaji, jinsi kila kontena ingepakiwa na kutekelezwa, na ni zana gani ingehakikisha kuwa viwango vya dhiki vitahifadhiwa chini iwezekanavyo wakati wa safari. Walakini, haingekuwa hadi Septemba ya mwaka huo huo kwamba safari ilianza. Katika siku chache tu, nguzo ya usimamizi wa ARGOCD na VPC nyingi mpya ziliundwa, unganisho la kutazama na VPN za VPN zilianzishwa, na “shehena” – zana kama Wakala wa Datadog & Fasient kidogo – ziliwekwa kwenye nguzo. EKS (huduma ya elastic Kubernetes) ilikuwa tayari kuanza! Vivyo hivyo, ilikuwa karibu wakati huo huo nilifika Hackerone, kiu cha adha. Siku chache za kwanza kwenye helm tulikuwa nje ya bandari wakati changamoto iliyokuwa mbele yetu ilianza kuangalia sana! Je! Wakimbiaji wa Gitlab wangewekwaje vizuri kwenye nguzo ya Kubernetes, na tunawezaje kuhakikisha kuwa walikuwa na ruhusa zote walizohitaji? Tulihitaji mbinu sahihi za urambazaji katika mazingira haya mapya na yasiyokuwa na mwisho. Mwanzoni, tulidhani tunapaswa kujaribu kuweka hii kwa mikono ili tuweze kufaidika kwa kupata uelewa zaidi wa vitu vyote tofauti ambavyo vinahitaji kuunganishwa pamoja; Vyombo, maganda, majukumu ya IAM, matukio ya EC2, Kubernetes RBAC, na zaidi. Tulisafiri kwa miduara kwa siku chache, tukijaribu kuchukua suala hilo kutoka kwa mambo tofauti, na kuweka maelezo ya majaribio yote ambayo tulikuwa tukifanya. Baada ya kufanikisha maendeleo kidogo, tulikuwa tumechoka na kufadhaika. Nakumbuka nikifikiria, “Kuunda chombo rahisi cha Runner Gitlab haipaswi kuwa ngumu! Nimefanya hapo awali, hii sio sawa. ” Kwa hivyo, tulibadilisha mtazamo wetu. “Tumekuwa tukiangalia hii vibaya wakati wote !,” Tulihitimisha. “Tunapaswa kutumia chati rasmi ya Helm,” tulisema, na tukakubali kufanya maisha yetu kuwa rahisi kwa kupakia kazi ya mwongozo kwa kile Gitlab yenyewe hutoa, na jamii nzima huko tayari hutumia. Tulipata tena, tukateleza, na tukabuniwa jozi. Tuliingia sana ndani ya viboreshaji vya impromptu, mikutano ya zoom iliyopangwa mapema, na tukachukua maelezo mengi ambayo tulipitia timu nzima. Tulianza haraka kuona maendeleo. Siku kadhaa ndani, tulikuwa na mkimbiaji wetu wa kwanza na kukimbia. Siku chache baadaye, tulianza kuangalia katika kufanya mkimbiaji wetu mpya kuwa salama iwezekanavyo. Wiki mbili baada ya sisi kupigwa, tulikuwa na kazi yetu ya kwanza, kutoka kwa hazina ya miundombinu, inayoendesha Kubernetes. Tuliandika nyaraka sahihi, na kisha tukafungua champagne na kutuliza kwa siku chache. Kukamata upepo mara tu, tulianza kujiuliza. Hakika, ndio, tulikuwa tumeweza kuunda mkimbiaji kamili na salama wa Gitlab, mwenye uwezo wa kuendesha kazi rahisi. Lakini ilikuwa ni bahari? Tulijua jibu lilikuwa hapana. Ilibidi tuje na kitu bora, kitu kikubwa, kitu ambacho kingechukua kazi ngumu za Mradi wa Core na kuziendesha kama hakuna kesho. Kwa hivyo, tuliunda mkimbiaji mwingine. Hii ilikuwa karibu kufanana lakini haikuundwa sawa na ya kwanza. Iliundwa na uwezo wa kuendesha kazi ngumu na kwa hivyo ilikuwa na marupurupu zaidi. Tunaweza, kwa kweli, kuweka wakimbiaji wote, kwani kila mmoja angefanya kusudi tofauti. Na hapo ilikuwa wakati wa kuangalia kuongeza shughuli zetu. Ombi moja la MR (unganisha) Bomba la Mradi wa Core lina kazi zaidi ya 180, karibu 170 ambazo huanza kwa wakati mmoja. Kila moja ya kazi hizi hutafsiri kwa sufuria ya Kubernetes. Maganda haya yote yanahitaji CPU na kumbukumbu, ambayo nodi (matukio ya EC2) hutoa. Kwa kuongezea, mara nyingi tumeona bomba 6 au zaidi zinazoendesha wakati huo huo. Kwa hivyo, changamoto yetu iliyofuata ilikuwa wazi: tunawezaje kutoa nguvu ya compute ambayo – muhimu sana – mizani haraka wakati bomba linaanza na – kwa usawa – mizani chini wakati hakuna kazi zinafanya kazi? Moja ya malengo yetu kama timu imekuwa daima kuongeza miundombinu yetu, badala ya kutupa pesa kwenye shida za utendaji. Tuliamua kuongeza zana nyingine kwenye nguzo yetu; Karpenter. Hata kama Karpenter alikuwa katika beta wakati huo, ilionekana kuahidi sana, na jamii tayari ilikuwa imeanza kuona thamani kubwa ndani yake kutokana na maamuzi yake ya usanifu, lakini pia kuunganishwa kwake na AWS. Inaweza kuunda nodi mpya kwa chini ya dakika moja na inaruhusu sisi kuweka alama nzuri chini ya tamaa za moyo wetu. Walakini, bado tulijitahidi kuiboresha kwa toleo la hivi karibuni la beta-ni moja wapo ya changamoto tunazokabili mara nyingi kama wahandisi wa miundombinu katika jaribio letu la kumaliza la kuweka zana zote za kisasa, kwani mende huletwa mara kwa mara na kisha kupakwa Katika sasisho ndogo za toleo ndogo. Mwishowe, tukiwa tayari miezi miwili katika safari yetu kuelekea CI ya kisasa, tulikuwa na nguzo yetu ya EKS, wakimbiaji wa Gitlab, nodi zinazoongeza juu na chini kulingana na mahitaji, na pia tulikuwa na nyaraka nzuri za kwenda nayo. Tuliona ardhi kwenye upeo wa macho. Ilikuwa wakati wa kuchukua mapumziko mafupi na kujiandaa kwa bandari. Avast yes scallywags! ‘Twas sio kwa bahari kuwa na utulivu kwa muda mrefu! Utulivu kabla ya dhoruba na dhoruba kabla ya utulivu karibu na likizo yetu ya Krismasi, sote tulitamani bahari tulivu. Sio maisha ambayo tumechagua, ingawa. Na hapo ilikuwa juu, dhoruba ya dhoruba – uchovu wa IP! Inageuka kuwa kitu kidogo ambacho tulipuuza katika muundo wetu wa awali kiliunda shida katika nguzo yetu. Kujaribu kuwa mzuri, tulikuwa tumeunda VPC ndogo, na IPs chache tu zinazopatikana katika sehemu zake mbili, lakini sasa kwa kuwa tulitaka kuongeza mamia ya node na maelfu ya maganda, hakukuwa na IPS ya kutosha kutoa. Ilibidi turudishe nguzo nzima! Sauti ya kutisha, lakini sisi tumepata miguu yetu ya bahari muda mrefu uliopita tayari, tulikuwa na kila kitu katika IAC. Kuwa iwe ni terraform, usanidi wa chati ya helm, au moja kwa moja yaml, kila kitu kimeandikwa na nambari iliyokaguliwa na rika. Kwa hivyo, tulifanikiwa kuwa na VPC nzima, viunganisho vyake vya kutazama, na nguzo nzima ya EKS na zana yake ya juu na kukimbia katika nusu ya siku! Hiyo ilikuwa uthibitisho wa maendeleo ambayo tumekuwa tukifanya. Tulipitia dhoruba bila shida na katika hali ya pristine. Kwa wiki kadhaa zijazo, tulielekeza mawazo yetu kwa mambo mengine ya haraka, kwani pia tulikuwa tunakaribia mwezi wa tatu wa Q4, na OKR ilihitaji kusukuma nyuma ya mstari wa kumaliza. Maisha kwenye Dokta likizo za msimu wa baridi zilikuja na kwenda, na sote tulifanikiwa kupumzika kwa siku chache. Kwa shauku na roho mpya, tulianza kuweka kazi za Core kwenye wakimbiaji wa Kubernetes, polepole lakini hakika. Bwana baada ya Mr. kuunganishwa katika tawi la kukuza, na hivi karibuni vya kutosha, tulikuwa tumefika karibu na OKR yetu, pia. Tuliingia bandarini, lakini hatukupumzika. Tulijua tunahitaji kufanya matengenezo kwenye meli yetu, baada ya safari ndefu ambayo ilikuwa imetuvuta tu. Tuliunda arifu kwa nguzo ya EKS na vifaa vyake. Tuliandika vitabu vya kucheza vya tukio kwenda na arifu hizi. Tuliandika utaratibu wa usimamizi wa kiraka ili kuhakikisha tunaweka zana zetu kusasishwa. Tuliandika nyaraka zaidi ili kueneza kwa urahisi kile tulichojifunza wakati wa safari yetu kwa mtu yeyote anayevutiwa na mada hiyo; Miongozo ya utatuzi wa shida, maelezo ya dhana, hoja nyuma ya maamuzi, na zaidi. Na kisha pia tulianza kufanya marekebisho. Kwa kuchunguza kuendelea na tabia ya usanidi katika vitendo, tulikuwa tumepata mashimo katika muundo wetu. Ndio, tulikuwa tumepima na kukagua utendaji wa nguzo na tuliridhika nayo, lakini pia tunategemea kitanzi cha maoni kuendelea ili kujiboresha na miundombinu ya kampuni. Kusudi letu ni kuwa na usanidi mdogo, mzuri, na wa kufanya. Tulirekebisha usanidi wetu wa Karpenter mara nyingine tena, ili kupunguza gharama na wakati huo huo kuboresha muda wa bomba. Tulifanya hivyo kwa kufanikisha hali kulingana na kazi za bomba la msingi wa Mradi, na kwa kufanikisha kazi wenyewe, kwa kutenga CPU ya kutosha na kumbukumbu kwao. Hii ilifanya node zetu kushughulikia mzigo wa kazi hata kwa ufanisi zaidi. Kwa hivyo, sasa, CPU na utumiaji wa kumbukumbu huongezeka sawasawa, na nodi hutumiwa kwa kiwango cha juu cha uwezo wao. Tulishughulikia maswala mapya kabisa na ya kufurahisha na ugawaji wa rasilimali (CPU na kumbukumbu) ambayo ilihitaji mahesabu mengi na mengine na mipaka ya mtandao wa mtandao wa Ena (elastic Network Adapter) ambayo ilitufanya tuingie ndani ya mikakati ya upangaji wa uwezo wa AWS. Bado kuna mambo kadhaa tunataka kufanya ili kuhakikisha uzoefu wa kiwango cha juu na usanidi wa uvumilivu zaidi, na tunafanya kazi kwa bidii juu yao. Walakini, tumeona kuwa wakati wa kufanya kazi wakati wa kazi umepungua. Tumegundua kuwa muda wa wastani wa kazi umepungua pia. Na, baada ya raundi chache za marekebisho na maboresho, gharama za kila siku za AWS zimeanza kushuka, kuwa chini ya gharama ya wastani ya kila siku ya wakimbiaji wa zamani. Na kwa hivyo, pia tulifikia malengo yetu na OKR, karibu bila kutambua. Tulihisi kidogo. Safari ilikuwa imemalizika. Kutamani adventure hata ingawa sasa tumekuwa tukizingatiwa kwa mwezi tayari, na bado tunafanya kazi kwa kurekebisha na kuboresha sio tu nguzo yetu ya CI lakini jukwaa lote, hamu yetu ya kunong’ona kwa masikio yetu. Tunakumbuka juu ya safari yetu, tukigundua ilikuwa ngumu na isiyotabirika. Sio tu kwamba tuliingia sana kwenye mada mpya kabisa, kubwa, na ya kisasa, lakini pia tulichagua nguzo ya CI kama kituo cha kwanza. Nguzo ya CI ambayo inahitaji kuongeza mara moja kutoka 0 hadi 100, haswa katika suala la node. Nguzo ya CI ambayo inashughulikia zaidi ya aina moja ya mzigo wa kazi, na inahitaji kuwa salama zaidi kwa sababu hiyo. Nguzo ya CI ambayo, kwa nyakati za kilele, itakuwa na maganda mengi kuliko nguzo zingine zozote ambazo tutaunda katika siku zijazo, labda hata pamoja. Walakini, tukionyesha sasa na kugundua kuwa tumefanikiwa katika changamoto hii, tunaangalia kwa ujasiri tena. Upeo ambao hauna kazi zaidi na bomba kwenye nguzo yetu ya CI lakini pia maoni mpya ya kufurahisha, mbinu, na zana! Tunajua ni nini huko kugundua: visa vya Graviton na usanifu wa mkono ambao utaongeza ufanisi zaidi na kushuka kwa gharama, usawa wa usawa kulingana na metriki zenye busara kama saizi ya foleni au latency, kijani-bluu na kupelekwa kwa canary kwa kuboresha mazingira ya maendeleo ambayo yatazidisha zaidi Wezesha ukuzaji wa programu, wima ya wima kulingana na utumiaji wa rasilimali, watawala wa uandikishaji, na meshes za huduma kwa vikwazo vya usalama vilivyoongezwa, na mengi zaidi. Tunajua safari inayofuata ya Kubernetes itakuwa changamoto pia. Na yule baada ya hapo pia. Lakini tunahisi ujasiri katika kuchukua changamoto hizi na kuamini kazi yetu ya pamoja na hamu, na uwezo wetu wa kufanya kazi kwa kina kuwashinda. Tunatamani kupanda meli yetu mara nyingine tena, kunyoosha meli, kupanda masts, na kukabiliana na kile bahari isiyo na mwisho ya teknolojia itatupa dhidi yetu. Hivi karibuni tutasafiri tena, na tunawaalika kila mtu aingie ndani ya meli yetu. URL ya chapisho la asili: https://www.hackerone.com/blog/kubernetes-journey-has-just-begun