Kubernetes faiga sili. Fausia ni koneteina laiti

Kubernetes faiga sili. Fausia ni koneteina laiti

O le laasaga muamua o le faʻapipiʻiina i Kubernetes o le tuʻuina lea o lau talosaga i totonu o se pusa. I lenei fa'asologa, o le a tatou va'ava'ai pe fa'apefea ona e faia se ata la'ititi, fa'amautu le atigipusa.
Faʻafetai ia Docker, o le fatuina o ata atigipusa e leʻi faigofie lava. Fa'ailoa se ata fa'avae, fa'aopoopo au suiga, ma fai se koneteina.

Kubernetes faiga sili. Fausia ni koneteina laiti

E ui o lenei metotia e lelei tele mo le amataina, o le faʻaaogaina o ata faʻavae e le mafai ona oʻo atu ai i galuega le saogalemu ma ata tetele e tumu i faʻafitauli.

E le gata i lea, o le tele o ata i Docker e faʻaaoga Debian poʻo le Ubuntu mo le ata faʻavae, ma e ui o lenei mea e maua ai le fetaui lelei ma faigofie faʻapitoa (o se faila Docker e naʻo le lua laina o le code), o ata faʻavae e mafai ona faʻaopoopo le selau megabytes o uta faaopoopo i lau pusa. Mo se fa'ata'ita'iga, o se faila faigofie node.js mo le Go "hello-world" application e tusa ma le 700 megabytes, a'o lau talosaga moni e na'o ni nai megabytes le tele.

Kubernetes faiga sili. Fausia ni koneteina laiti

O lea la, o nei galuega fa'aopoopo uma o se fa'ama'imau o avanoa fa'akomepiuta ma se nofoaga lelei e lafi ai mo fa'aletonu saogalemu ma fa'aletonu. Se'i o tatou va'ava'ai i ni auala se lua e fa'aitiitia ai le lapo'a o se ata atigipusa.

Muamua o le faʻaogaina o ata faʻavae laiti, o le lona lua o le faʻaogaina o le Faufautua Faufautua. O le fa'aogaina o ata fa'avae laiti atonu o le auala pito sili lea ona faigofie e fa'aitiitia ai le lapo'a o lau koneteina. E foliga mai, o le gagana po'o le fa'aputuga o lo'o e fa'aogaina e maua ai se ata fa'aoga muamua e la'ititi tele nai lo le ata fa'aletonu. Se'i o tatou va'ai i la tatou koneteina node.js.

Kubernetes faiga sili. Fausia ni koneteina laiti

Ona o le faaletonu i Docker, o le node: 8 le tele o le ata o le 670 MB, ma le node: 8-alpine ata tele e na o le 65 MB, o lona uiga, 10 taimi laʻititi. I le faʻaaogaina o le ata Alpine laʻititi laʻititi, o le a faʻaitiitia ai le tele o lau pusa. Alpine o se faʻasalalauga Linux laʻititi ma mama e sili ona lauiloa i tagata faʻaoga Docker aua e fetaui ma le tele o talosaga aʻo faʻatumauina koneteina laiti. E le pei o le ata masani a Docker "node", "node: alpine" e aveesea ai le tele o faila faila ma polokalame, ae naʻo mea e lava e faʻatino ai lau talosaga.

Ina ia alu i se ata laʻititi laʻititi, naʻo le faʻafouina o le Dockerfile e amata galue ai ma le ata fou:

Kubernetes faiga sili. Fausia ni koneteina laiti

I le taimi nei, e le pei o le ata tuai onbuild, e tatau ona e kopi lau code i totonu o le pusa ma faʻapipiʻi soʻo se faʻalagolago. I se Dockerfile fou, o le koneteina e amata i se node:alpine image, ona fai lea o se lisi mo le code, faʻapipiʻi faʻalagolago e faʻaaoga ai le NPM package manager, ma mulimuli ane faʻatautaia server.js.

Kubernetes faiga sili. Fausia ni koneteina laiti

O lenei fa'aleleia e maua ai se atigipusa e 10 taimi e la'ititi ai. Afai o lau gagana fa'apolokalame po'o le fa'aputuga e leai ni fa'atinoga fa'aitiitiga ata, fa'aaoga le Alpine Linux. O le a tu'uina atu ai fo'i le agava'a e pulea atoatoa mea o lo'o i totonu o le atigipusa. O le fa'aogaina o ata fa'avae laiti ose auala sili lea e vave faia ai ni atigipusa laiti. Ae e sili atu le faʻaitiitiga e mafai ona ausia e faʻaaoga ai le Faufale Faufautua.

Kubernetes faiga sili. Fausia ni koneteina laiti

I gagana fa'aliliuina, e muamua tu'u atu le fa'aupuga i le fa'aliliu upu ona fa'atino sa'o ai lea. I gagana tu'ufa'atasia, e fa'aliliu muamua le fa'apogai i le fa'ailoga tu'ufa'atasi. Ae ui i lea, o le tuʻufaʻatasiga e masani ona faʻaaogaina meafaigaluega e le manaʻomia moni e faʻatautaia ai le code. O lona uiga e mafai ona e aveese atoa nei meafaigaluega mai le pusa mulimuli. E mafai ona e fa'aogaina le Fausiaina o le Mamanu mo lenei mea.

Kubernetes faiga sili. Fausia ni koneteina laiti

Ua faia le code i totonu o le pusa muamua ma tuufaatasia. Ona afifiina lea o le code tuufaatasia i totonu o se koneteina mulimuli e aunoa ma le tuufaatasia ma meafaigaluega e manaomia e tuufaatasia ai lena code. Se'i o tatou fa'agasolo se talosaga a le Go i lenei faiga. Muamua, o le a tatou o ese mai le ata i luga o le fausiaina i Alpine Linux.

Kubernetes faiga sili. Fausia ni koneteina laiti

I le Dockerfile fou, o le koneteina e amata i se golang: ata alpine. Ona faia lea o se lisi mo le code, kopi i totonu o le code source, fausia lena code source, ma faʻatautaia le talosaga. O lenei atigipusa e sili atu ona laʻititi nai lo le onbuild container, ae o loʻo i ai pea le tuʻufaʻatasia ma isi meafaigaluega Go tatou te le manaʻomia tele. Se'i o tatou aveese mai le polokalame ua tuufaatasia ma tuu i totonu o lana lava koneteina.

Kubernetes faiga sili. Fausia ni koneteina laiti

E mafai ona e matauina se mea uiga ese i lenei faila Docker: o loʻo i ai laina FROM e lua. O le vaega muamua o le 4 laina e foliga tutusa ma le Dockerfile talu ai sei vagana ua faʻaaogaina le upu AS e taʻu ai lenei laasaga. O le isi vaega e iai se laina FROM fou e amata ai se ata fou, lea nai lo le golang: ata alpine o le a tatou faʻaogaina ai le Raw alpine e fai ma ata faʻavae.

Raw Alpine Linux e leai ni tusi faamaonia SSL faʻapipiʻiina, lea e mafua ai ona le manuia le tele o telefoni API i luga o le HTTPS, seʻi o tatou faʻapipiʻi nisi o tusi faamaonia CA.

O lea ua oʻo mai le vaega malie: e kopi le code tuʻufaʻatasia mai le pusa muamua i le lona lua, e mafai ona e faʻaogaina le COPY poloaiga o loʻo i luga o le laina 5 o le vaega lona lua. E na'o le tasi le faila o le talosaga e kopiina ma e le afaina ai meafaigaluega aoga Go. O le faila fou Docker multi-stage o le a iai se ata atigipusa e na o le 12 megabytes le lapopoa, faʻatusatusa i le ata muamua o le koneteina e 700 megabytes, o se eseesega tele!
O le fa'aaogaina la o ata fa'avae laiti ma le Faufale Mamanu o ni auala lelei ia e fai ai ni atigipusa laiti e aunoa ma le tele o galuega.
E mafai ona fa'atatau i le fa'aputuga o talosaga, e iai ni auala fa'aopoopo e fa'aitiitia ai le ata ma le lapo'a o koneteina, peita'i pe o iai moni lava se fa'amanuiaga fuaina o koneteina laiti? Se'i o tatou va'ai i ni vaega se lua o lo'o matua aoga ai pusa laiti - fa'atinoga ma le saogalemu.

Ina ia iloilo le faʻatupulaia o le faʻatinoga, mafaufau i le umi o le faagasologa o le fatuina o se atigipusa, faʻaofi i totonu o le resitala (tulei), ona toe aumai lea mai iina (toso). E mafai ona e vaʻaia o se atigipusa laʻititi e sili atu lona lelei nai lo se pusa lapoa.

Kubernetes faiga sili. Fausia ni koneteina laiti

O le Docker o le a faʻapipiʻi ia laulau ina ia o le a vave tele le fausiaina o isi mea. Ae ui i lea, o le tele o faiga CI na faʻaaogaina e fausia ma suʻe pusa e le faʻapipiʻiina ni faʻailoga, o lea e tele ai taimi e teu ai. E pei ona mafai ona e vaʻai, o le taimi e fausia ai se atigipusa tele, faʻalagolago i le malosi o lau masini, e mai le 34 i le 54 sekone, ma pe a faʻaaogaina se atigipusa faʻaititia e faʻaaoga ai le Faufale Faufautua - mai le 23 i le 28 sekone. Mo fa'agaioiga o lenei ituaiga, o le fa'atupulaia o le gaosiga o le a 40-50%. Mafaufau la i le tele o taimi e te fausia ma suʻe lau code.

A uma ona fausia le koneteina, e tatau ona e tuleia lona ata (push container image) i totonu o le koneteina resitala ina ia mafai ona e faʻaogaina i lau Kubernetes cluster. Ou te fautuaina le faʻaaogaina o Google Container Registry.

Kubernetes faiga sili. Fausia ni koneteina laiti

Faatasi ai ma le Google Container Registry (GCR), e te totogia naʻo le teuina ma le upega tafailagi, ma e leai ni totogi faaopoopo mo le puleaina o pusa. E faalilolilo, malupuipuia ma vave tele. E fa'aaogaina e le GCR le tele o togafiti e fa'avave ai le galuega toso. E pei ona mafai ona e vaʻaia, faʻapipiʻi se Docker Container Image container e faʻaaoga ai le go: onbuild o le a alu mai le 15 i le 48 sekone, e faʻatatau i le faʻaogaina o le komepiuta, ma o le gaioiga lava e tasi ma se pusa laʻititi o le a alu mai le 14 i le 16 sekone, ma mo masini e le aoga. o le lelei i le faʻagaioiga saoasaoa faʻateleina i le 3 taimi. Mo masini tetele, o le taimi e tutusa lava, talu ai e faʻaogaina e le GCR se faʻaogaina o le lalolagi mo se faʻamaumauga faʻasoa o ata, o lona uiga e te le manaʻomia le utaina. I totonu o se komepiuta e maualalo le malosi, o le PPU o le bottleneck, o lea o le lelei o le faʻaaogaina o pusa laiti e sili atu iinei.

Afai o lo'o e fa'aogaina le GCR, ou te fautuaina tele le fa'aogaina o le Google Container Builder (GCB) e fai ma vaega o lau faufale.

Kubernetes faiga sili. Fausia ni koneteina laiti

E pei ona mafai ona e vaʻaia, o lona faʻaaogaina e mafai ai ona e ausia ni taunuuga sili atu i le faʻaitiitia o le umi o le Fausia + Push faʻagaioiga nai lo se masini gaosi oloa - i lenei tulaga, o le faagasologa o le fausiaina ma le lafoina o pusa i le talimalo e faʻavaveina e toetoe lava 2 taimi. . E le gata i lea, e te mauaina 120 free build minute i aso uma, lea e aofia ai au mea e manaʻomia i le tele o tulaga.

E soso'o mai le metric fa'atinoga sili ona taua - o le saoasaoa o le toe aumai, po'o le la'uina mai, Pull containers. Ma afai e te le popole tele i le taimi e faʻaalu i luga o se faʻagaioiga tulei, o le umi o le tosoina o le faagasologa o loʻo i ai se aafiaga ogaoga i le faʻatinoina o le faiga atoa. Fa'apea e iai sau fuifui e tolu nodes ae le manuia le tasi. Afai o loʻo e faʻaogaina se faiga faʻatonutonu e pei ole Google Kubernetes Engine, o le a otometi lava ona suia le pona mate i se mea fou. Ae ui i lea, o lenei node fou o le a matua gaogao ma e tatau ona e toso uma au koneteina i totonu ina ia amata galue. Afai e umi le fa'agaioiga o le tosoina, o lau fuifui o le a tamo'e i lalo le fa'atinoga i le taimi atoa.

E tele tulaga e mafai ona tupu ai lenei mea: faʻaopoopoina se node fou i se fuifui, faʻaleleia nodes, poʻo le sui foi i se pusa fou mo le faʻapipiʻiina. O le mea lea, o le fa'aitiitia o le taimi e toso ai e avea ma mea taua. E le mafai ona fa'afitia o se tama'i koneteina e la'u mai e sili atu le vave nai lo le lapo'a. Afai o lo'o e fa'atautaia ni koneteina se tele i totonu o se fa'aputuga Kubernetes, e mafai ona taua le fa'asaoina o le taimi.

Kubernetes faiga sili. Fausia ni koneteina laiti

Va'ai i le fa'atusatusaga lenei: o le tosoina o koneteina laiti e 4-9 taimi e fa'aitiitia ai le taimi, fa'atatau i le malosi o le masini, nai lo le fa'agaioiga tutusa e fa'aaoga ai le go:onbuild. O le fa'aaogaina o ata fa'asoa, tama'i koneteina fa'avae e matua fa'atelevaveina ai le taimi ma le saosaoa e mafai ai ona fa'apipi'i nodes fou Kubernetes ma sau i luga ole laiga.

Sei o tatou tilotilo i le mataupu o le saogalemu. O pusa laiti e manatu e sili atu le saogalemu nai lo le lapopoa ona e laʻititi laʻititi le osofaʻiga. E moni ea? O se tasi o vaega sili ona aoga o le Google Container Registry o le mafai lea e otometi ona suʻesuʻe au koneteina mo faʻafitauli. I ni nai masina talu ai na ou faia uma i luga ole fale ma multistage containers, seʻi o tatou vaʻai pe iai ni faʻafitauli iina.

Kubernetes faiga sili. Fausia ni koneteina laiti

O le taunuuga e ofoofogia: naʻo le 3 tulaga vaivai na maua i totonu o se atigipusa laʻititi, ma 16 faʻalavelave ma 376 isi faʻafitauli na maua i totonu o se pusa tele. Afai tatou te vaʻavaʻai i mea o loʻo i totonu o se atigipusa tele, e mafai ona tatou iloa o le tele o faʻafitauli saogalemu e leai se mea e fai i la tatou talosaga, ae e fesoʻotaʻi ma polokalame tatou te le faʻaaogaina. A talanoa la tagata e uiga i se osofaʻiga tele, o le uiga lena o latou.

Kubernetes faiga sili. Fausia ni koneteina laiti

E manino le ave'esea: fausia ni atigipusa laiti aua latou te maua ai le faʻatinoga moni ma faʻamanuiaga saogalemu i lau masini.

Kubernetes faiga sili. Fa'alapotopotoga a Kubernetes ma igoa avanoa

O nisi faʻasalalauga 🙂

Faafetai mo le nofo faatasi ma i matou. E te fiafia i a matou tala? E te mana'o e va'ai i mea e sili atu ona manaia? Lagolago i matou e ala i le tuʻuina atu o se faʻatonuga pe fautuaina i uo, cloud VPS mo tagata atiae mai le $4.99, o se faʻatusa tulaga ese o sapalai tulaga ulufale, lea na matou faia mo oe: O le mea moni atoa e uiga i VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai le $ 19 pe faʻafefea ona faʻasoa se server? (avanoa ma RAID1 ma RAID10, e oʻo atu i 24 cores ma oʻo atu i le 40GB DDR4).

Dell R730xd 2x taugofie i Equinix Tier IV nofoaga autu o faamatalaga i Amsterdam? Na'o iinei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai le $199 i Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai le $99! Faitau e uiga i Fa'afefea ona fausia infrastructure corp. vasega faʻatasi ma le faʻaogaina o Dell R730xd E5-2650 v4 servers aoga 9000 euros mo se pene?

puna: www.habr.com

Faaopoopo i ai se faamatalaga