Sary vonona amin'ny famokarana ho an'ny k8s

Ity tantara ity dia momba ny fomba ampiasantsika kaontenera amina tontolo famokarana, indrindra ny Kubernetes. Ny lahatsoratra dia natokana hanangona metrika sy diary avy amin'ny kaontenera, ary koa ny fananganana sary.

Sary vonona amin'ny famokarana ho an'ny k8s

Avy amin'ny orinasa fintech Exness izahay, izay mamolavola serivisy ho an'ny varotra an-tserasera sy ny vokatra fintech ho an'ny B2B sy B2C. Ny R&D dia manana ekipa maro samihafa, manana mpiasa 100+ ny departemanta fampandrosoana.

Izahay dia misolo tena ny ekipa tompon'andraikitra amin'ny sehatra ho an'ny mpamorona anay hanangona sy hampandeha kaody. Indrindra indrindra, tompon'andraikitra amin'ny fanangonana, fitehirizana ary tatitra ny metrika, diary ary hetsika avy amin'ny fampiharana izahay. Amin'izao fotoana izao dia miasa kaontenera Docker telo arivo eo ho eo amin'ny tontolo famokarana izahay, mitazona ny fitahirizana angon-drakitra lehibe 50 TB, ary manome vahaolana ara-javakanto izay naorina manodidina ny fotodrafitrasanay: Kubernetes, Rancher, ary mpamatsy rahona isan-karazany. 

Ny antony manosika antsika

Inona no may? Tsy misy afaka mamaly. Aiza ny afo? Sarotra ny mahatakatra izany. Oviana no nirehitra? Azonao fantarina, fa tsy eo no ho eo. 

Sary vonona amin'ny famokarana ho an'ny k8s

Nahoana ny kaontenera sasany no mijoro fa ny hafa kosa mianjera? Iza no kaontenera tokony homena tsiny? Ny ivelan'ny kaontenera rahateo dia mitovy, fa ny ao anatiny dia samy manana ny Neo azy.

Sary vonona amin'ny famokarana ho an'ny k8s

Ry zalahy mahay ny developer anay. Manao serivisy tsara izy ireo izay mitondra tombony ho an'ny orinasa. Saingy misy ny tsy fahombiazana rehefa mania ny kaontenera misy fampiharana. Ny kaontenera iray dia mandany CPU be loatra, ny iray hafa mandany ny tambajotra, ny fahatelo mandany ny asa I/O, ary ny fahefatra dia tsy mazava tsara ny ataony amin'ny sockets. Nianjera daholo ary nilentika ny sambo. 

mpiasa

Mba hahatakarana ny zava-mitranga ao anatiny dia nanapa-kevitra ny hametraka mpiasa mivantana ao anaty kaontenera izahay.

Sary vonona amin'ny famokarana ho an'ny k8s

Ireo masoivoho ireo dia manakana ny fandaharan'asa izay mitazona ny kaontenera amin'ny toe-javatra toy izany mba tsy hifampizarana. Manara-penitra ny mpiasa, ary izany dia mamela ny fomba manara-penitra amin'ny serivisy serivisy. 

Amin'ity tranga ity, ny mpiasa dia tsy maintsy manome logs amin'ny endrika manara-penitra, voamarika ary voafehy. Izy ireo koa dia tokony hanome antsika metrika manara-penitra izay azo itarina amin'ny fomba fijery fampiharana ara-barotra.

Ny agents koa dia midika hoe fitaovana ampiasaina amin'ny fampandehanana sy fikojakojana izay afaka miasa amin'ny rafitra orkestra samihafa izay manohana sary samihafa (Debian, Alpine, Centos, sns.).

Farany, ny mpiasa dia tsy maintsy manohana CI/CD tsotra izay misy rakitra Docker. Raha tsy izany, dia hirodana ny sambo, satria ny kaontenera dia hanomboka halefa amin'ny lalamby "miolakolaka".

Manamboara dingana sy fitaovana sary kendrena

Mba hitazonana ny zava-drehetra ho manara-penitra sy azo fehezina, dia mila arahina karazana dingana fananganana manara-penitra. Noho izany, nanapa-kevitra ny hanangona kaontenera amin'ny kaontenera izahay - izany no recursion.

Sary vonona amin'ny famokarana ho an'ny k8s

Eto ny kaontenera dia asehon'ny drafitra mafy. Tamin’izay fotoana izay ihany, dia nanapa-kevitra ny hametraka kitapo fanapariahana tao anatiny izy ireo mba “tsy ho toy ny voaroy ny fiainana”. Ny antony nanaovana izany dia hohazavainay eto ambany.
 
Ny vokatr'izany dia fitaovana fananganana — kaontenera manokana amin'ny dikan-teny izay manondro dikan-teny fizarana manokana sy dikan-tsoratra manokana.

Ahoana no ampiasana azy io? Manana Docker Hub misy container izahay. Mijery izany ao anatin'ny rafitray izahay mba hialana amin'ny fiankinan-doha ivelany. Ny vokatr'izany dia fitoeran-javatra misy marika mavo. Mamorona môdely izahay hametrahana ny fizarana sy ny script rehetra ilainay ao anaty container. Aorian'izay dia manangona sary efa vonona izahay: mametraka kaody sy ny sasany amin'ireo fiankinany manokana ao anatiny ny mpamorona. 

Inona no tsara amin'ity fomba fiasa ity? 

  • Voalohany, fanaraha-maso feno amin'ny fitaovana fananganana - manangana container, script ary version distribution. 
  • Faharoa, nahavita manara-penitra isika: mamorona modely, sary manelanelana ary vonona hampiasaina amin'ny fomba mitovy. 
  • Fahatelo, ny kaontenera dia manome antsika portable. Amin'izao fotoana izao dia mampiasa Gitlab izahay, ary rahampitso dia hifindra any amin'ny TeamCity na Jenkins izahay ary ho afaka hampandeha ny fitoeranay amin'ny fomba mitovy. 
  • Fahefatra, manamaivana ny fiankinan-doha. Tsy kisendrasendra ny nametrahanay kitapo fanapariahana tao anaty kaontenera, satria izany dia mamela antsika tsy hisintona azy ireo amin'ny Internet isaky ny mandeha. 
  • Fahadimy, nitombo ny hafainganam-pandehan'ny fananganana - ny fisian'ny dika mitovy eo an-toerana dia ahafahanao misoroka ny fandaniam-potoana amin'ny fampidinana, satria misy sary eo an-toerana. 

Raha lazaina amin'ny teny hafa, dia nahavita fizotry ny fivoriambe voafehy sy mora azo. Mitovy amin'ireo fitaovana ireo no ampiasainay hanamboarana ireo kaontenera feno version. 

Ny fomba fiasan'ny fomba fananganana anay

Sary vonona amin'ny famokarana ho an'ny k8s

Ny fivoriambe dia natomboka tamin'ny baiko iray, ny dingana dia tanterahina amin'ny sary (nasongadina mena). Ny mpamorona dia manana rakitra Docker (asongadina amin'ny loko mavo), avadikay izany, manolo ny fari-piainana amin'ny soatoavina. Ary eny an-dalana dia manampy lohapejy sy tongotra izahay - ireo no mpiasanay. 

Manampy fizarana avy amin'ny sary mifanaraka amin'izany ny lohapejy. Ary ny footer dia mametraka ny serivisintsika ao anatiny, manitsy ny fanombohana ny enta-mavesatry ny asa, ny logging ary ny mpiasa hafa, manolo ny fidirana, sns. 

Sary vonona amin'ny famokarana ho an'ny k8s

Nieritreritra ela izahay na hametraka mpanara-maso. Tamin'ny farany dia nanapa-kevitra izahay fa mila azy. Nifidy S6 izahay. Ny mpanara-maso dia manome ny fitantanana ny kaontenera: mamela anao hifandray amin'izany raha toa ka midona ny dingana lehibe ary manome ny fitantanana amin'ny tanana ny kaontenera nefa tsy mamerina izany. Ny logs sy ny metrika dia dingana mandeha ao anaty container. Mila fehezina ihany koa izy ireo, ary manao izany izahay miaraka amin'ny fanampian'ny mpanara-maso. Farany, ny S6 dia mikarakara fikarakarana trano, fanodinana famantarana ary asa hafa.

Koa satria mampiasa rafitra orkestra samihafa isika, aorian'ny fanorenana sy ny fandehanana, ny fitoeran-javatra dia tsy maintsy mahatakatra hoe inona ny tontolo misy azy ary mihetsika araka ny zava-misy. Ohatra:
Izany dia ahafahantsika manangana sary iray sy mampandeha azy amin'ny rafitra orkestra samihafa, ary hatomboka izany raha jerena ny mombamomba an'io rafitra orkestra io.

 Sary vonona amin'ny famokarana ho an'ny k8s

Ho an'ny kaontenera iray ihany dia mahazo hazo firosoana samihafa ao amin'ny Docker sy Kubernetes izahay:

Sary vonona amin'ny famokarana ho an'ny k8s

Ny entana dia tanterahina eo ambany fanaraha-mason'ny S6. Tandremo ny mpanangona sy ny hetsika - ireo no masoivoho tompon'andraikitra amin'ny diary sy ny metrika. Tsy manana azy ireo i Kubernetes, fa i Docker kosa manana. Nahoana? 

Raha mijery ny famaritana ny "pod" isika (avy eo - Kubernetes pod), dia ho hitantsika fa ny fitoeran-javatra hetsika dia tanterahina ao anaty pod, izay manana fitoeran-javatra mpanangona mitokana izay manao ny asa fanangonana metrika sy ny hazo. Afaka mampiasa ny fahaizan'ny Kubernetes izahay: mampandeha kaontenera ao anaty pod iray, amin'ny dingana tokana sy/na habaka tambajotra. Ampahafantaro ny masoivohonao ary manaova asa sasany. Ary raha atomboka ao amin'ny Docker io kaontenera io, dia hahazo ny fahaiza-manao mitovy amin'ny vokatra izy io, izany hoe afaka mandefa logs sy metrika, satria havoaka ao anatiny ny mpiasa. 

Metrics sy logs

Asa sarotra ny fandefasana metrika sy diary. Misy lafiny maromaro amin'ny fanapahan-keviny.
Ny fotodrafitrasa dia natao ho an'ny fanatanterahana ny enta-mavesatra, fa tsy ho an'ny fanaterana lozisialy faobe. Izany hoe, ity dingana ity dia tsy maintsy atao miaraka amin'ny fitakiana loharanon-karena kely indrindra. Miezaka manampy ny mpamorona anay izahay: "Mahazoa container Docker Hub, tanteraho izany ary afaka manatitra ny log izahay." 

Ny lafiny faharoa dia ny famerana ny habetsaky ny logs. Raha misy firongatry ny habetsaky ny logs ao anaty kaontenera maromaro (ny fampiharana dia mamoaka stack-trace ao anaty loop iray), dia mitombo ny enta-mavesatra eo amin'ny CPU, ny fantsom-pifandraisana ary ny rafitra fanodinana log, ary misy fiantraikany amin'ny fiasan'ny mpampiantrano izany. feno sy kaontenera hafa amin'ny mpampiantrano, ary indraindray izany dia mitarika ho amin'ny "fianjerana" ny mpampiantrano. 

Ny lafiny fahatelo dia ilaina ny manohana ny fomba fanangonana metrika maro araka izay azo atao ivelan'ny boaty. Avy amin'ny famakiana rakitra sy ny fitsapan-kevitra Prometheus-endpoint ka hatramin'ny fampiasana protocole manokana.

Ary ny lafiny farany dia ny fampihenana ny fanjifana loharanon-karena.

Nisafidy vahaolana Go open source antsoina hoe Telegraf izahay. Ity dia mpampitohy manerana izao rehetra izao izay manohana karazana fantsona fampidirana (plugins) 140 mahery ary karazana fantsona 30 mivoaka (plugins output). Vitanay izany ary holazainay aminao ny fomba fampiasanay azy amin'ny fampiasana Kubernetes ho ohatra. 

Sary vonona amin'ny famokarana ho an'ny k8s

Andeha hatao hoe misy mpamorona mametraka enta-mavesatra ary i Kubernetes dia mahazo fangatahana hamorona pod. Amin'izao fotoana izao, ny kaontenera antsoina hoe Collector dia noforonina ho azy ho an'ny pod tsirairay (ampiasainay ny mutation webhook). Ny mpanangona no solontenantsika. Eo am-piandohana, ity kaontenera ity dia manamboatra ny tenany hiara-miasa amin'ny Prometheus sy ny rafitra fanangonana log.

  • Mba hanaovana izany, dia mampiasa fanamarihana pod izy, ary miankina amin'ny atiny, dia mamorona, ohatra, teboka faran'ny Prometheus; 
  • Mifototra amin'ny fanondroana pod sy ny firafitry ny kaontenera manokana, dia manapa-kevitra ny fomba hanaterana ny log.

Manangona logs amin'ny alàlan'ny Docker API izahay: mila mametraka azy ireo ao amin'ny stdout na stderr ny mpamorona, ary ny Collector no handamina izany. Angonina amin'ny tapa-kazo miaraka amin'ny fahatarana kely mba hisorohana ny mety ho enta-mavesatra ny mpampiantrano. 

Angonina amin'ny trangan'asa (fizotry ny asa) ao anaty kaontenera ny metrika. Ny zava-drehetra dia nasiana marika: namespace, ambanin'ny, sy ny sisa, ary avy eo niova ho Prometheus endrika - ary lasa azo alaina ho fanangonana (afa-tsy ny logs). Mandefa diary, metrika ary hetsika ho an'i Kafka koa izahay:

  • Hita ao amin'ny Graylog ny logs (ho an'ny fanadihadiana hita maso);
  • Ny logs, ny metrika, ny hetsika dia alefa any amin'ny Clickhouse ho fitahirizana maharitra.

Mitovy tanteraka ny zava-drehetra ao amin'ny AWS, ny Graylog ihany no soloinay amin'ny Kafka amin'ny Cloudwatch. Alefantsika any ny lozisialy, ary mandeha tsara ny zava-drehetra: mazava tsara avy hatrany hoe iza amin'izy ireo ny cluster sy ny container. Toy izany koa ny Google Stackdriver. Izany hoe, miasa eny an-toerana miaraka amin'i Kafka sy amin'ny rahona ny tetikay. 

Raha tsy manana Kubernetes miaraka amin'ny pods izahay, dia sarotra kokoa ny tetika, saingy miasa amin'ny fitsipika mitovy.

Sary vonona amin'ny famokarana ho an'ny k8s

Ny dingana mitovy dia tanterahina ao anatin'ny kaontenera, voarindra amin'ny fampiasana S6. Ireo dingana mitovy rehetra dia mandeha ao anaty fitoeran-javatra iray ihany.

Ho vokany,

Namorona vahaolana feno amin'ny fananganana sy fandefasana sary izahay, miaraka amin'ny safidy hanangonana sy hanaterana diary sy metrika:

  • Namolavola fomba fiasa manara-penitra amin'ny fanangonana sary izahay, ary nifototra tamin'izany no namolavola modely CI;
  • Ireo mpandraharaha mpanangona angona no fanitarana anay Telegraf. Notsapainay tsara izy ireo tamin'ny famokarana;
  • Mampiasa webhook mutation izahay mba hampiharana kaontenera misy mpiasa ao anaty pods; 
  • Tafiditra ao anatin'ny tontolo iainana Kubernetes/Rancher;
  • Afaka manatanteraka kaontenera mitovy amin'ny rafitra orkestra samihafa isika ary mahazo ny vokatra antenainay;
  • Namorona tefy fitantanana kaontenera mavitrika tanteraka. 

mpiara-manoratra: Ilya Prudnikov

Source: www.habr.com

Add a comment