Tu'uina atu talosaga i VM, Nomad ma Kubernetes

Talofa uma! O loʻu igoa o Pavel Agaletsky. Ou te galue o se 'au e taʻitaʻia i se 'au e atiaʻe le Lamoda delivery system. I le 2018, na ou tautala ai i le HighLoad++ conference, ma o le asō ou te fia tuʻuina atu se faʻamatalaga o laʻu lipoti.

O laʻu autu e tuuto atu i le poto masani a le matou kamupani i le faʻaogaina o faiga ma auaunaga i siosiomaga eseese. Amata mai o tatou taimi anamua, ina ua matou faʻaogaina uma faiga i totonu o sapalai masani masani, faʻaiʻu i le suiga malie mai Nomad i le faʻapipiʻiina i Kubernetes. O le a ou taʻu atu ia te oe le mafuaʻaga na matou faia ai ma o a faʻafitauli na matou i ai i le faagasologa.

Tu'uina atu o talosaga ile VM

Sei o tatou amata i le mea moni o le 3 tausaga talu ai na faʻapipiʻiina uma faiga ma auaunaga a le kamupani i luga o sapalai masani masani. I le tulaga faʻapitoa, na faʻatulagaina i se auala e teu ai ma faʻapipiʻi uma tulafono mo a tatou faiga e faʻaaoga ai meafaigaluega faʻapipiʻi otometi, e faʻaaoga ai jenkins. I le fa'aaogaina o le Ansible, na fa'asolo mai i la matou fa'atonuga fa'atonuga i 'au'aunaga mata'utia. E le gata i lea, o faiga taʻitasi o loʻo i ai i la matou kamupani na faʻapipiʻiina i le itiiti ifo ma le 2 'auʻaunaga: o le tasi i luga o le ulu, o le lona lua i le siʻusiʻu. O nei faiga e lua e matua tutusa lava le tasi i le isi i o latou tulaga uma, mana, faʻatulagaina, ma isi. Na pau lava le eseesega i le va o le ulu na maua ai fefaʻatauaiga a tagata, ae o le siʻusiʻu e leʻi mauaina lava fefaʻatauaiga.

Aisea na faia ai lenei mea?

Ina ua matou faʻapipiʻi faʻasalalauga fou o la matou talosaga, matou te manaʻo e faʻamautinoa se faʻaogaina lelei, o lona uiga, e aunoa ma ni taunuuga iloga mo tagata faʻaoga. Na ausia lenei mea ona o le mea moni o le isi faʻasalalauga tuʻufaʻatasia e faʻaaoga ai le Ansible na taʻavale i le siʻusiʻu. O iina, o tagata na aʻafia i le faʻapipiʻiina e mafai ona siaki ma faʻamautinoa o loʻo lelei mea uma: o metric uma, vaega ma talosaga o loʻo galue; o lo'o fa'alauiloa atu tusitusiga mana'omia. Ina ua uma ona latou talitonu ua lelei mea uma, na suia le taavale. Na amata alu i le 'auʻaunaga na muamua siʻusiʻu. Ma o le tasi sa avea muamua ma ulu na tumau pea e aunoa ma le faʻaaogaina o tagata faʻaoga, aʻo iai pea le lomiga muamua o la matou talosaga i luga.

O lea sa faigofie mo tagata faʻaoga. Aua o le fesuiaiga e vave lava, talu ai na o le suia o le paleni. E faigofie lava ona e toe fo'i i tua i le lomiga muamua i le na'o le suia o le paleni i tua. E mafai foi ona matou faʻamaonia o le talosaga na mafai ona gaosia e tusa lava pe leʻi mauaina fefaʻatauaiga a tagata, lea e faigofie tele.

O ā ni aogā na tatou vaaia i nei mea uma?

  1. Muamua lava, ua lava e aoga lava. E malamalama tagata uma pe faʻafefea ona faʻaogaina se polokalame faʻapipiʻi, aua o le toʻatele o tagata na faʻapipiʻiina i luga o sapalai masani masani.
  2. Ua lava lea faʻatuatuaina, talu ai e faigofie le faʻaogaina o tekinolosi, faʻataʻitaʻiina e le faitau afe o kamupani. E faitau miliona 'au'aunaga o lo'o fa'aogaina i lenei auala. E faigata ona talepe se mea.
  3. Ma mulimuli ane na mafai ona matou maua fa'apipi'i atomika. Deployments e tupu i le taimi e tasi mo tagata faʻaoga, e aunoa ma se tulaga iloga o le fesuiaiga i le va o le tuai ma le fou.

Ae na matou vaaia foi le tele o faaletonu i nei mea uma:

  1. I le faʻaopoopoga i le gaosiga o le siosiomaga, o le atinaʻeina o le siosiomaga, o loʻo i ai isi siosiomaga. Mo se faʻataʻitaʻiga, qa ma le muaʻi gaosia. I lena taimi sa tele a matou 'auʻaunaga ma pe a ma le 60 auaunaga. Mo lenei mafuaaga sa tatau ai mo au'aunaga ta'itasi, fa'atumauina le lomiga aupito lata mai mo ia masini komepiuta. E le gata i lea, afai e te manaʻo e faʻafouina faletusi pe faʻapipiʻi ni faʻalagolago fou, e tatau ona e faia lenei mea i siosiomaga uma. E te manaʻomia foʻi e faʻafetaui le taimi o le a e faʻapipiʻiina ai le isi lomiga fou o lau talosaga ma le taimi e faʻatino ai e devops tulaga talafeagai o le siosiomaga. I lenei tulaga, e faigofie lava ona oʻo i se tulaga o le a fai si ese ai lo tatou siosiomaga i siosiomaga uma i le taimi e tasi. Mo se faʻataʻitaʻiga, i totonu o se siosiomaga QA o le ai ai nisi o lomiga o faletusi, ma i totonu o se siosiomaga gaosiga o le ai ai ni mea eseese, lea o le a oʻo atu ai i faʻafitauli.
  2. Faigata fa'afou fa'alagolago lau talosaga. E le faalagolago ia te oe, ae o le isi au. O lona uiga, mai le au devops o loʻo tausia le 'auʻaunaga. E tatau ona e tuʻuina atu ia i latou se galuega talafeagai ma se faʻamatalaga o mea e te manaʻo e fai.
  3. I lena taimi, sa matou mananao foi e vaevae le tele o monoliths tetele sa matou maua i ni auaunaga laiti eseese, talu ai sa matou malamalama o le a sili atu ma sili atu. I lena taimi, ua uma ona matou maua le sili atu i le 100. Mo auaunaga fou taʻitasi, sa manaʻomia le fatuina o se masini fou fou, lea e manaʻomia foi ona tausia ma faʻapipiʻi. E le gata i lea, e te le manaʻomia se taavale e tasi, ae a itiiti ifo ma le lua. Faʻaopoopo i nei mea uma o le QA environment. E mafua ai faʻafitauli ma faʻafaigata ai mo oe le fausiaina ma faʻatautaia faiga fou. lavelave, taugata ma umi le faagasologa.

O le mea lea, na matou filifili ai e sili atu ona faigofie le alu ese mai le faʻapipiʻiina o masini komepiuta masani i le faʻapipiʻiina oa matou talosaga i totonu o se koneteina docker. Afai e iai sau docker, e te manaʻomia se faiga e mafai ona faʻatautaia le talosaga i se fuifui, talu ai e le mafai ona e siiina se atigipusa. E masani lava e te mana'o e siaki pe fia ni koneteina o lo'o si'i ina ia otometi ona si'i. Mo lenei mafuaʻaga, matou te manaʻomia le filifilia o se faiga faʻatonutonu.

Sa umi se taimi sa matou mafaufau ai po o le fea e mafai ona matou aveina. O le mea moni o le taimi lena o lenei faʻapipiʻi faʻapipiʻi i luga o servers virtual masani ua fai si tuai, talu ai latou te leʻi maua ni faʻamatalaga fou o faiga faʻaoga. I se taimi, sa i ai foi FreeBSD, lea sa le faigofie tele ona lagolagoina. Na matou malamalama e tatau ona matou faimalaga i le docker i le vave e mafai ai. O matou tagata faʻapitoa na vaʻavaʻai i lo latou poto masani i fofo eseese ma filifilia se faiga e pei o Nomad.

Su'e ile Nomad

Nomad o se oloa a HashiCorp. Ua lauiloa foi i latou mo isi fofo:

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

"Konesula" ose meafaigaluega mo le su'eina o auaunaga.

"Terraform" - o se faiga mo le puleaina o 'auʻaunaga e faʻatagaina oe e faʻapipiʻi i latou e ala i le faʻatulagaina, le mea e taʻua o infrastructure-as-a-code.

"Vagrant" fa'atagaina oe e fa'apipi'i masini fa'apitonu'u i le lotoifale po'o totonu o le ao e ala i faila fa'atulagaina patino.

Nomad i lena taimi na foliga mai o se fofo faigofie e mafai ona vave suia e aunoa ma le suia o mea uma. E le gata i lea, e matua faigofie lava ona aʻoaʻoina. O le mea lena na matou filifilia ai e fai ma fa'amama mo la matou koneteina.

O le a le mea e te manaʻomia e faʻapipiʻi ai lau polokalama i Nomad?

  1. Muamua lava e te manaʻomia ata faufale lau talosaga. E te manaʻomia le fausiaina ma tuʻu i totonu o le fale teu oloa ata. I la matou tulaga, o se mea faʻatauvaʻa - o se faiga e mafai ai ona e tuleia mea eseese o ituaiga eseese i totonu. E mafai ona teuina fa'amaumauga, ata faifa'ato'aga, fatuga PHP afifi, afifi NPM, ma isi.
  2. E manaʻomia foʻi faila faatulagaina, lea o le a taʻu atu ia Nomad le mea, o fea ma le aofaʻi e te manaʻo e faʻapipiʻi.

A tatou talanoa e uiga ia Nomad, e faʻaaogaina le gagana HCL e fai ma faʻamatalaga faila faila, lea e tu mo HashiCorp Configuration Language. Ole superset lea ole Yaml e mafai ai ona e fa'amatala lau 'au'aunaga ile Nomad.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

E faʻatagaina oe e taʻu atu le tele o koneteina e te manaʻo e faʻapipiʻi, mai ai ata e pasi atu ai taʻiala eseese ia i latou i le taimi o le faʻapipiʻiina. O le mea lea, e te fafagaina lenei faila ia Nomad, ma faʻalauiloa pusa i le gaosiga e tusa ai ma ia.

I la matou tulaga, na matou iloa ai o le na o le tusiaina o faila HCL tutusa tutusa mo auaunaga taitasi o le a le faigofie tele, aua e tele naua auaunaga ma o nisi taimi e te manaʻo e faʻafouina. E tupu e tasi le auʻaunaga e faʻapipiʻiina e le o se tasi faʻataʻitaʻiga, ae i le tele o mea eseese. Mo se faʻataʻitaʻiga, o se tasi o faiga o loʻo i ai i le gaosiga e sili atu i le 100 faʻataʻitaʻiga i le gaosiga. Latou te taufetuli mai ata lava e tasi, ae eseese i faʻatulagaga faʻatulagaina ma faila faila.

O le mea lea, na matou filifili ai o le a faigofie mo i matou e teu uma a matou faila faʻapipiʻi mo le faʻapipiʻiina i totonu o se fale masani e tasi. O le auala lea na iloa ai: sa faigofie ona tausia ma mafai ona matou vaʻai poʻo a faiga sa matou maua. Afai e manaʻomia, e faigofie foʻi ona faʻafouina pe suia se mea. O le fa'aopoopoina o se faiga fou e le faigata foi - na'o lou mana'omia e fai se faila fa'aopoopo i totonu o le lisi fou. I totonu o loʻo i ai faila nei: service.hcl, o loʻo i ai se faʻamatalaga o la matou auaunaga, ma nisi faila faila e mafai ai ona faʻatulagaina lenei lava auaunaga, o loʻo faʻapipiʻiina i le gaosiga.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

Ae ui i lea, o nisi o tatou faiga o loʻo faʻapipiʻiina i le gaosiga e le o se kopi e tasi, ae i le tele i le taimi e tasi. O le mea lea, na matou filifili ai e faigofie mo i matou ona teuina e le o le configs i lo latou foliga mama, ae o latou faʻataʻitaʻiga. Ma sa matou filifili jinja 2. I lenei faatulagaga, matou te teuina uma configs o le auaunaga lava ia ma env faila e manaomia mo ia.

E le gata i lea, ua matou tuʻuina i totonu o le faleoloa se faʻasalalauga faʻapipiʻi masani i galuega uma, lea e mafai ai ona e faʻalauiloa ma faʻapipiʻi lau auaunaga i le gaosiga, i totonu o le siosiomaga e manaʻomia, i totonu o le faʻamoemoega manaʻomia. I le tulaga na matou liliu ai le matou HCL config i se faʻataʻitaʻiga, ona fai lea o le faila HCL, lea sa avea muamua ma Nomad config masani, i lenei tulaga na amata ona foliga ese teisi.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

O lona uiga, na matou suia nisi o fesuiaiga o nofoaga faʻapipiʻi ma faʻapipiʻi fesuiaiga e ave mai faila env poʻo isi punaoa. E le gata i lea, matou te maua le avanoa e aoina ai faila HCL ma le malosi, o lona uiga, e mafai ona matou faʻaogaina e le gata o faʻapipiʻi masani masani. Talu ai e lagolagoina e jinja faʻamau ma tulaga, e mafai foi ona e fatuina faila faila iina, lea e suia e faʻatatau i le mea tonu e te faʻaogaina ai au talosaga.

Mo se faʻataʻitaʻiga, e te manaʻo e faʻapipiʻi lau 'auʻaunaga i le muai gaosiga ma le gaosiga. Se'i fai mai i le mua'i gaosiga e te le mana'o e fa'agasolo cron scripts, ae na'o le mana'o e va'ai i le tautua i se isi vaega e fa'amautinoa ai o lo'o galue. Mo soʻo se tasi e faʻapipiʻiina le auaunaga, o le faagasologa e foliga faigofie ma manino. Pau lava le mea e tatau ona e faia o le faʻatinoina o le faila deploy.sh, faʻamaonia po o le fea auaunaga e te manaʻo e faʻapipiʻi ma o le fea le faʻamoemoe. Mo se faʻataʻitaʻiga, e te manaʻo e faʻapipiʻi se faiga faʻapitoa i Rusia, Belarus poʻo Kazakhstan. Ina ia faia lenei mea, naʻo le suia o se tasi o parakalafa, ma o le ae maua le faila faʻatulagaina saʻo.

A maeʻa ona tuʻuina atu le auaunaga Nomad i lau fuifui, e pei o lenei.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

Muamua, e te manaʻomia se ituaiga paleni i fafo, lea o le a maua uma fefaʻatauaiga a tagata faʻaoga. O le a galulue faʻatasi ma le Konesula ma suʻe mai ai poʻo fea, i luga o le a le node, o le a le tuatusi IP o loʻo i ai se auaunaga faʻapitoa e fetaui ma se igoa faʻapitoa. Au'aunaga i Konesula e sau mai Nomad lava ia. Talu ai o oloa ia mai le kamupani lava e tasi, e matua feso'ota'i le tasi i le isi. E mafai ona matou fai atu o Nomad i fafo o le pusa e mafai ona resitala uma auaunaga na faʻalauiloaina i totonu o le Konesula.

O le taimi lava e iloa ai e lau paleni uta pito i luma po o le fea auaunaga e lafo i ai fefaʻatauaiga, ona tuʻuina atu lea i le pusa talafeagai poʻo le tele o pusa e fetaui ma lau talosaga. E masani lava, e tatau foi ona mafaufau e uiga i le saogalemu. E ui lava o auaunaga uma o loʻo faʻatautaia i luga o masini komepiuta tutusa i totonu o pusa, e masani ona manaʻomia le puipuia o avanoa saoloto mai soʻo se auaunaga i soʻo se isi. Na matou ausia lenei mea e ala i le vaevaeina. Ta'itasi 'au'aunaga na fa'alauiloa i lana lava feso'otaiga vavave, lea na fa'atonuina ai tulafono fa'atonutonu ma tulafono mo le fa'atagaina/te'ena o avanoa i isi faiga ma auaunaga. E mafai ona maua i totonu o lenei fuifui ma fafo. Mo se faʻataʻitaʻiga, afai e te manaʻo e taofia se 'auʻaunaga mai le fesoʻotaʻi atu i se faʻamaumauga faʻapitoa, e mafai ona faia lenei mea e ala i le vaeluaga o fesoʻotaʻiga. O lona uiga, e tusa lava pe sese, e le mafai ona e faʻafuaseʻi ona faʻafesoʻotaʻi mai le siosiomaga o suʻega i lau faʻamaumauga o gaosiga.

O le a le tele o le suiga na tau ia i matou i tulaga o tagata faigaluega?

O le suiga o le kamupani atoa i Nomad e tusa ma le 5-6 masina. Na matou siitia i luga o se auaunaga-ma-auaunaga, ae i se saoasaoa vave. E tatau i 'au ta'itasi ona fai a latou koneteina mo sauniga.

Ua matou faʻaaogaina se auala e nafa ai 'au taʻitasi ma ata faʻataʻitaʻi o latou faiga tutoatasi. O loʻo tuʻuina atu e DevOps le tele o atinaʻe e manaʻomia mo le faʻapipiʻiina, o lona uiga, lagolago mo le fuifui lava ia, lagolago mo le CI system, ma isi. Ma i lena taimi, e sili atu nai lo le 60 faiga na siitia atu i Nomad, lea e tusa ma le 2 afe pusa.

Devops e nafa ma atinaʻe lautele o mea uma e fesoʻotaʻi ma le faʻapipiʻiina ma 'auʻaunaga. Ma o au atinaʻe taʻitasi, i le isi itu, e nafa ma le faʻatinoina o pusa mo lana faiga faʻapitoa, talu ai o le 'au e iloa mea masani e manaʻomia i totonu o se atigipusa faapitoa.

Mafuaaga mo le lafoaia o Nomad

O a ni mea lelei na matou maua e ala i le fesuiaʻi i le faʻaogaina e faʻaaoga ai Nomad ma docker, ma isi?

  1. Ua tatou i ai tuuina atu tulaga tutusa mo siosiomaga uma. I le atinaʻe, QA siosiomaga, muai gaosiga, gaosiga, faʻaoga tutusa ata pusa, faʻatasi ai ma faʻalagolago tutusa. E tusa ai, e toetoe lava a leai sou avanoa e faʻapea o le mea o le a iʻu i le gaosiga e le o le mea na e suʻeina muamua i le lotoifale poʻo lau siosiomaga suʻega.
  2. Na matou iloa foi ua lava faigofie ona fa'aopoopo se auaunaga fou. Mai se vaaiga faʻapipiʻi, soʻo se faiga fou e faʻalauiloa faigofie lava. Na'o le alu i le faleteuoloa o lo'o teu ai configs, fa'aopoopo se isi config mo lau system iina, ma ua e sauni uma. E mafai ona e fa'aogaina lau faiga i le gaosiga e aunoa ma se taumafaiga fa'aopoopo mai devops.
  3. uma faila faatulagaina i se tasi fale teu oloa masani na aliali mai o lo'o i lalo o le iloiloga. I le taimi na matou faʻapipiʻiina ai a matou faiga e faʻaaoga ai masini komepiuta, na matou faʻaogaina le Ansible, lea sa i ai le configs i le fale e tasi. Ae ui i lea, mo le tele o tagata atiaʻe na fai si faigata tele ona galulue i ai. O le tele o configs ma code e te manaʻomia e faʻaopoopo e faʻapipiʻi ai le auaunaga ua faʻaititia tele. Ma le isi, e faigofie tele mo devops ona faʻaleleia pe suia. I le tulaga o suiga, mo se faʻataʻitaʻiga, i se lomiga fou o Nomad, e mafai ona latou ave ma faʻafouina faila uma o loʻo faʻaogaina i le nofoaga e tasi.

Ae na matou feagai foi ma ni nai tulaga le lelei:

Na foliga mai o matou e le'i mafai ona ausia le fa'aogaina lelei i le tulaga o Nomad. Pe a taʻavale i fafo koneteina i lalo o tulaga eseese, e mafai ona faʻaalia o loʻo tamoʻe, ma na iloa e Nomad o se atigipusa ua sauni e talia feoaiga. Na tupu lenei mea a'o le'i maua le avanoa e fa'alauiloa ai le talosaga i totonu. Mo lenei mafuaʻaga, na amata ai e le faiga faʻapipiʻi 500 mea sese mo se taimi puupuu, aua na amata ona alu le taʻavale i se pusa e leʻi sauni e talia.

Sa matou fetaiai ma nisi mea sese. O le mea pito sili ona taua o le Nomad e le lelei le taulimaina o se fuifui tele pe afai e tele au faiga ma pusa. A e manaʻo e ave i fafo se tasi o 'auʻaunaga o loʻo aofia i le Nomad cluster mo le tausiga, o loʻo i ai se tulaga maualuga maualuga o le a le lagona lelei le fuifui ma o le a malepelepe. O nisi koneteina atonu, mo se faʻataʻitaʻiga, paʻu ae le toe tulaʻi - o le a sili atu lou tau i se taimi mulimuli ane pe afai o au gaosiga uma o loʻo i totonu o se fuifui e pulea e Nomad.

O lea na ma filifili ai e mafaufau po o fea e tatau ona sosoo ai. I lena taimi, na sili atu ona matou iloa mea matou te mananao e ausia. O lona uiga: matou te mananaʻo i le faʻatuatuaina, sili atu galuega nai lo le Nomad saunia, ma se faiga sili atu ona matua, sili atu ona mautu.

I lenei tulaga, o la matou filifiliga na pa'ū i luga o Kubernetes o le tulaga sili ona lauiloa mo le faʻalauiloaina o fuifui. Aemaise lava ona o le tele ma le numera o a matou koneteina sa lava tele. Mo ia faʻamoemoega, o Kubernetes na foliga mai o le faiga sili ona talafeagai e mafai ona tatou vaʻai i ai.

Suiga i Kubernetes

O le a ou taʻu atu ia te oe se mea itiiti e uiga i mataupu faavae o Kubernetes ma pe faʻafefea ona ese mai Nomad.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

Muamua lava, o le manatu sili ona taua i Kubernetes o le manatu o pod. Vae o se vaega o se tasi pe sili atu pusa e tamomoe faatasi i taimi uma. Ma latou te galulue i taimi uma e pei o se tasi masini masini. E mafai ona maua e le tasi le isi e ala i le IP 127.0.0.1 i luga o ports eseese.

Seʻi tatou faʻapea o loʻo i ai sau faʻaoga PHP e aofia ai le nginx ma le php-fpm - o le faiga masani. E foliga mai, e te manaʻo e faʻapipiʻi uma pusa nginx ma php-fpm i taimi uma. Kubernetes fa'atagaina oe e ausia lenei mea e ala i le fa'amatalaina o se tasi o pusa masani. O le mea tonu lea e le mafai ona matou maua i Nomad.

O le manatu lona lua o le faʻapipiʻiina. O le mea moni o le pod lava ia o se mea ephemeral; e amata ma mou atu. E te mana'o e tape muamua uma au koneteina muamua, ona fa'alauiloa loa lea o fa'amatalaga fou i le taimi e tasi, pe e te mana'o e ta'avale malie i fafo?O le fa'agasologa lea e nafa ma le manatu o le fa'apipi'i. O lo'o fa'amatalaina pe fa'afefea ona e fa'aogaina au pods, pe o le a le aofa'i ma pe fa'afefea ona fa'afouina.

O le manatu lona tolu o le tautua. O lau 'au'aunaga o lau 'au'aunaga moni, lea e maua ai ni fefa'ataua'iga ona tu'uina atu lea i se tasi pe sili atu pods e fetaui ma lau 'au'aunaga. O lona uiga, e mafai ai ona e fai atu o fefaʻatauaʻiga uma o loʻo oʻo mai i sea ma se auaunaga faʻapea ma se igoa faapena e tatau ona lafo i nei pods patino. Ma i le taimi lava e tasi e tuʻuina atu ia te oe le paleni o feoaiga. O lona uiga, e mafai ona e faʻalauiloaina ni pusa se lua o lau talosaga, ma o fefaʻatauaiga uma o loʻo oʻo mai o le a paleni tutusa i le va o pods e fesoʻotaʻi ma lenei auaunaga.

Ma o le manatu faavae lona fa Faʻailoga. Ole 'au'aunaga lea o lo'o fa'agaoioi ile vaega Kubernetes. E galue e pei o se paleni uta fafo e ave uma talosaga. I le fa'aaogaina o le Kubernetes API, e mafai e Ingress ona fuafua po'o fea e tatau ona lafo ai nei talosaga. E le gata i lea, na te faia lenei mea e matua fetuutuunai. E mafai ona e fai atu o talosaga uma i lenei talimalo ma faapena ma faapena URL e auina atu i lenei auaunaga. Ma o nei talosaga e sau i lenei talimalo ma se isi URL e auina atu i se isi auaunaga.

O le mea sili ona manaia mai le manatu o se tasi na te atiaʻe se talosaga e mafai ona e faʻatautaia uma oe lava. E ala i le setiina o le Ingress config, e mafai ona e auina atu feʻaveaʻi uma e oʻo mai i lea ma se API e tuʻueseese pusa ua tusia, mo se faʻataʻitaʻiga, i le Go. Ae o lenei fefaʻatauaʻiga, e oʻo mai i le itu lava e tasi, ae i se isi URL, e tatau ona tuʻuina atu i koneteina o loʻo tusia i le PHP, lea e tele naua manatu, ae e le o vave tele.

Afai tatou te faʻatusatusa nei manatu uma ma Nomad, e mafai ona tatou fai atu o manatu muamua e tolu o loʻo faʻatasi uma Auaunaga. Ma o le manatu mulimuli e le o iai i Nomad lava ia. Na matou faʻaaogaina se paleni fafo e pei ona i ai: e mafai ona avea ma haproxy, nginx, nginx +, ma isi. I le tulaga o se pusa, e te le manaʻomia le faʻalauiloaina o lenei manatu faʻaopoopo eseese. Ae peitaʻi, afai e te vaʻavaʻai i totonu o le Ingress, o le nginx, haproxy, poʻo le traefik, ae o le ituaiga o fausia i totonu o Kubernetes.

O faʻamatalaga uma na ou faʻamatalaina, o le mea moni, o punaoa o loʻo iai i totonu o le Kubernetes cluster. Ina ia faʻamatalaina i totonu o le pusa, o loʻo faʻaaogaina se yaml format, lea e sili atu ona faigofie ma masani nai lo faila HCL i le tulaga o Nomad. Ae faʻatulagaina latou faʻamatalaina le mea lava e tasi i le tulaga o, mo se faʻataʻitaʻiga, pod. Latou te fai mai - Ou te manaʻo e faʻapipiʻi ia mea ma mea faapena iina, faʻatasi ai ma ata faʻapea, i le tele ma le tele.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

E le gata i lea, na matou iloa matou te leʻi manaʻo e fatuina punaoa taʻitasi i lima: faʻapipiʻiina, tautua, Ingress, ma isi. Nai lo lena, matou te mananaʻo e faʻamatalaina a matou faiga taʻitasi i tulaga o Kubernetes i le taimi o le faʻapipiʻiina, ina ia matou le toe faia ma le lima ia faʻalagolago uma punaoa talafeagai i le faasologa saʻo. Na filifilia Helm e fai ma faiga na mafai ai ona tatou faia lenei mea.

Manatu faavae i Helm

O le foeuli pule paketi mo Kubernetes. E talitutusa lava ma le auala e galue ai pule o pusa i gagana polokalame. Latou te faʻatagaina oe e teu se 'auʻaunaga e aofia ai, mo se faʻataʻitaʻiga, deployment nginx, deployment php-fpm, config mo Ingress, configmaps (o se faʻalapotopotoga lea e mafai ai ona e setiina le env ma isi taʻiala mo lau polokalama) i le tulaga o so- ta'ua o siata. I le taimi lava e tasi Helm e tamoe i luga o Kubernetes. O lona uiga, e le o se ituaiga faiga e tu ese, ae na o se isi auaunaga na faʻalauiloaina i totonu o le pusa. E te fegalegaleai ma ia e ala i lana API e ala i se faʻatonuga faʻamafanafana. O lona faigofie ma le matagofie e tusa lava pe gau le foe pe e te aveese mai le fuifui, o le a le mou atu au tautua, talu ai o le foeuli e na o le amataina o le faiga. Kubernetes lava ia e nafa ma le faatinoga ma le tulaga o auaunaga.

Sa matou iloaina foi lena mea fa'ata'ita'iga, lea na faʻamalosia muamua i matou e fai i matou lava e ala i le faʻaofiina o jinja i totonu o matou configs, o se tasi lea o vaega autu o le foeuli. O configs uma e te fatuina mo au faiga o loʻo teuina i le foeuli i foliga o faʻataʻitaʻiga, e foliga tutusa ma jinja, ae, o le mea moni, faʻaaogaina le faʻataʻitaʻiga o le gagana Go, lea e tusia ai le foeuli, pei o Kubernetes.

Ua fa'aopoopoina e foeuli ni nai manatu mo i tatou.

siata - o se fa'amatalaga lea o lau 'au'aunaga. I isi pule o pusa e taʻua o se afifi, fusi poʻo se mea faapena. O lea ua ta'ua o le siata.

Taunuʻuga o fesuiaiga ia e te manaʻo e faʻaoga e fausia ai au configs mai templates.

tatala. O taimi uma e maua ai e se au'aunaga o lo'o fa'aogaina le foeuli se fa'aopoopoga fa'aopoopo o le fa'asalalauga. E manatua e Helm le mea sa i ai le config auaunaga i le faʻasalalauga muamua, le faʻamalolo muamua, ma isi. O le mea lea, afai e te manaʻomia le toe foʻi i tua, naʻo le faʻatonuina o le foeuli callback command, faʻasino i le faʻasalalauga muamua. E tusa lava pe le maua le fa'atulagaina tutusa i lau fale teu i le taimi o le toe fa'afo'i, o le a manatua pea e le foe le mea sa i ai ma o le a toe fa'afo'i lau masini i le tulaga sa i ai i le fa'asalalauga muamua.

I le tulaga pe a matou faʻaogaina foʻi, o faʻamautu masani mo Kubernetes e faʻaaogaina foi ma faʻataʻitaʻiga e mafai ai ona faʻaoga fesuiaiga, galuega, ma faʻaoga faʻamatalaga tuutuuga. O le auala lea e mafai ai ona e aoina lau config config e faalagolago ile siosiomaga.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

I le faʻataʻitaʻiga, na matou filifili e fai mea e ese teisi nai lo le mea na matou faia ma Nomad. Afai i Nomad e lua faʻapipiʻi configs ma n-suia e manaʻomia e faʻaogaina ai la matou auaunaga na teuina i totonu o le fale e tasi, o iinei na matou filifili ai e vaevae i latou i ni faleoloa eseese se lua. O le faleteuoloa "deploy" e na'o n-suiaiga e mana'omia mo le fa'apipi'iina, ma o le faleteuoloa "o le foeuli" e teu ai fa'amaumauga po'o siata.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

O le a le mea na tuuina mai e lenei mea ia i tatou?

E ui lava i le mea moni tatou te le teuina soʻo se faʻamatalaga maʻaleʻale i totonu o faila faʻatulagaina latou lava. Mo se faʻataʻitaʻiga, passwords i databases. O loʻo teuina i latou e avea ma mealilo i Kubernetes, ae ui i lea, o loʻo i ai pea nisi mea iina tatou te le manaʻo e tuʻuina atu i tagata uma le avanoa. O le mea lea, o le avanoa i le "deploy" faleteuoloa e sili atu ona faʻatapulaʻaina, ma o le "foiuli" fale teuoloa o loʻo i ai se faʻamatalaga o le tautua. Mo lenei mafua'aga, e mafai ona maua ma le saogalemu e se lautele lautele o tagata.

Talu ai e le gata ina matou gaosiga, ae faʻapea foʻi isi siosiomaga, faʻafetai i lenei teteʻa e mafai ona matou toe faʻaaogaina a matou siata foeuli e faʻapipiʻi ai auaunaga e le gata i le gaosiga, ae faʻapea foi, mo se faʻataʻitaʻiga, i se siosiomaga QA. E oo lava i le faʻapipiʻiina i latou i le lotoifale faʻaaogaina Minikube - ole mea lea mo le fa'agaioia o Kubernetes ile lotoifale.

I totonu o fale teu oloa taʻitasi, matou te tuʻuina se vaevaega i faʻamaumauga eseese mo auaunaga taʻitasi. O lona uiga, i totonu o lisi taʻitasi o loʻo i ai faʻataʻitaʻiga e fesoʻotaʻi ma le siata fetaui ma faʻamatalaina punaoa e manaʻomia ona faʻapipiʻiina e faʻalauiloa ai la tatou polokalama. Na matou tuua na o envs i le "deploy" fale teu oloa. I lenei tulaga, matou te leʻi faʻaogaina le faʻataʻitaʻiga e faʻaaoga ai le jinja, aua o le foeuli lava ia e maua ai faʻataʻitaʻiga mai le pusa - o se tasi lea o ana galuega autu.

Na matou tu'ua se fa'ata'ita'iga - deploy.sh, lea e fa'afaigofie ma fa'ata'atia le fa'alauiloa mo le fa'aogaina e fa'aaoga ai le foeuli. O lea la, mo soʻo se tasi e manaʻo e faʻapipiʻi, o le faʻapipiʻiina o fesoʻotaʻiga e foliga tutusa lava ma le taimi na faʻapipiʻiina ai e ala i Nomad. Le tutusa deploy.sh, le igoa o lau auaunaga, ma le mea e te manaʻo e faʻapipiʻi ai. E mafua ai ona amata le foe i totonu. I le isi itu, e aoina mai faʻamaufaʻailoga mai faʻataʻitaʻiga, faʻapipiʻi faila taua e manaʻomia i totonu ia i latou, ona faʻapipiʻiina lea, faʻalauiloa i totonu o Kubernetes.

sailiiliga

O le auaunaga Kubernetes e foliga mai e sili atu le lavelave nai lo Nomad.

Tu'uina atu talosaga i VM, Nomad ma Kubernetes

O lea e sau ai femalagaiga i fafo i Ingress. E na'o le pule pito i luma, lea e ave uma talosaga ma mulimuli ane tu'uina atu i auaunaga e fetaui ma fa'amaumauga o talosaga. E fa'amauina i latou e fa'atatau i configs o se vaega o le fa'amatalaga o lau talosaga i le foeuli ma o lo'o fa'atulaga e le au atina'e latou lava. O le 'au'aunaga e tu'uina atu talosaga i ona po'o, o lona uiga, pusa fa'apitoa, fa'apaleni felauaiga o lo'o o'o mai i le va o koneteina uma o lo'o iai i lenei tautua. Ma, ioe, e le tatau ona galo ia i tatou e le tatau ona tatou o atu i soo se mea mai le saogalemu i le tulaga o fesoʻotaʻiga. O le mea lea, o le vaeluaga e galue i le Kubernetes cluster, lea e faʻavae i luga o le faʻailoga. O au'aunaga uma e iai fa'ailoga fa'apitoa e feso'ota'i ai aia tatau a au'aunaga i nisi o puna'oa i fafo/i totonu po'o fafo o le fuifui.

A o matou faia le suiga, na matou vaʻaia o Kubernetes o loʻo i ai uma le gafatia o Nomad, lea na matou faʻaaogaina muamua, ma faʻaopoopoina le tele o mea fou. E mafai ona faʻalauteleina e ala i plugins, ma o le mea moni e ala i ituaiga o punaoa masani. O lona uiga, e te maua le avanoa e le naʻo le faʻaaogaina o se mea e sau ma Kubernetes mai le pusa, ae ia fatuina au lava punaoa ma auʻaunaga e faitau lau punaoa. E tu'uina atu ia te oe filifiliga fa'aopoopo e fa'alautele ai lau faiga e aunoa ma le toe fa'atūina o Kubernetes ma e aunoa ma le mana'omia o ni suiga.

O se faʻataʻitaʻiga o lea faʻaoga o le Prometheus, lea e tafe i totonu o le matou Kubernetes cluster. Ina ia mafai ona amata aoina metrics mai se auaunaga faapitoa, matou te manaʻomia le faʻaopoopoina o se isi ituaiga o punaoa, o le mea e taʻua o le mataʻituina o auaunaga, i le faʻamatalaga o auaunaga. Prometheus, ona o le mea moni e mafai ona faitau se ituaiga punaoa masani pe a faʻalauiloaina i Kubernetes, otometi ona amata aoina metrics mai le faiga fou. E fai si faigofie.

O le fa'asalalauga muamua na matou faia i Kubernetes o Mati 2018. Ma i le taimi lea matou te leʻi oʻo lava i ni faʻafitauli. E galue malosi e aunoa ma ni fa'aletonu taua. E le gata i lea, e mafai ona tatou faʻalauteleina atili. O aso nei ua lava a matou gafatia o loʻo i ai, ma matou te fiafia tele i le saoasaoa o le atinaʻeina o Kubernetes. I le taimi nei, e silia ma le 3000 containers o loʻo i totonu o Kubernetes. O le fuifui o lo'o nofoia le tele o Nodes. I le taimi lava e tasi, e mafai ona faʻaaogaina, mautu ma sili ona pulea.

puna: www.habr.com

Faaopoopo i ai se faamatalaga