Ata ua saunia mo k8s

O le tala lenei e uiga i le auala tatou te faʻaogaina ai pusa i totonu o se siosiomaga gaosiga, aemaise lava Kubernetes. O le tusiga e tuʻuina atu i le aoina o metrics ma ogalaau mai pusa, faʻapea foʻi ma le fausiaina o ata.

Ata ua saunia mo k8s

O matou e mai le kamupani fintech Exness, lea e atiaʻe auaunaga mo fefaʻatauaʻiga i luga ole laiga ma oloa faʻatekinisi mo B2B ma B2C. O la matou R & D e tele 'au eseese, o le matagaluega o atinaʻe e 100+ tagata faigaluega.

Matou te fai ma sui o le 'au e nafa ma le faʻavae mo a matou atinaʻe e aoina ma faʻatautaia code. Aemaise lava, matou te nafa ma le aoina, teuina ma le lipotiina o fuataga, ogalaau, ma mea na tutupu mai talosaga. O loʻo matou faʻagaioia nei pe tusa ma le tolu afe Docker containers i totonu o se siosiomaga gaosiga, tausia a matou 50 TB tele faʻamaumauga faʻamaumauga, ma tuʻuina atu fofo faʻataʻitaʻiga o loʻo fausia i luga oa matou atinaʻe: Kubernetes, Rancher, ma le tele o faʻasalalauga lautele. 

O lo tatou faaosofiaga

O le a le mea ua mu? E leai se tasi e mafai ona tali mai. O fea le afi? E faigata ona malamalama. O anafea na mu ai? E mafai ona e mauaina, ae le o le taimi lava lena. 

Ata ua saunia mo k8s

Aisea ua tutu ai isi koneteina a o isi ua pa'u'u? O le fea container na tuuaia? A uma mea uma, o fafo o koneteina e tutusa, ae o totonu e tofu lava ma lona Neo.

Ata ua saunia mo k8s

O matou tagata atiaeina o ni tagata agavaa. Latou te faia ni auaunaga lelei e maua ai tupe mama i le kamupani. Ae o lo'o i ai fa'aletonu pe a se'e ese containers ma talosaga. O le tasi koneteina e tele naua le PPU, o le isi e faʻaaogaina le fesoʻotaʻiga, o le lona tolu e faʻaaogaina galuega I / O, ma le lona fa e matua le manino pe o le a le mea e fai i sockets. E pau uma ma goto le vaa. 

Suisuaga

Ina ia malamalama i mea o loʻo tupu i totonu, na matou filifili e tuʻu saʻo sui i totonu o pusa.

Ata ua saunia mo k8s

O nei sooupu o loʻo taofiofia polokalame e taofia ai pusa i se tulaga e le malepelepe ai le tasi ma le isi. O lo'o fa'asalaina sui, ma e fa'atagaina ai se fa'ata'ita'iga fa'ata'ita'iga i le tautuaina o koneteina. 

I la matou tulaga, e tatau i sui ona tuʻuina atu ogalaau i se tulaga masani, faʻailogaina ma faʻapipiʻi. E tatau fo'i ona latou tu'uina mai ia i matou ni fua fa'atatau e mafai ona fa'alauteleina mai se va'aiga o talosaga fa'apisinisi.

O sui o lona uiga o mea aoga mo le faʻaogaina ma le tausiga e mafai ona galue i faiga faʻapipiʻi eseese e lagolagoina ata eseese (Debian, Alpine, Centos, ma isi).

Ma le mea mulimuli, e tatau i sui ona lagolagoina CI / CD faigofie e aofia ai faila Docker. A leai, o le a malepe le vaʻa, aua o le a amata ona tuʻuina atu pusa i luga o ala "piʻopiʻo".

Fausia le faʻagasologa ma faʻaoga ata masini

Ina ia faʻamautu mea uma ma faʻatautaia, e manaʻomia ona mulimulitaʻia nisi o faiga faʻavae masani. O le mea lea, na matou filifili e aoina pusa i pusa - o le toe faʻafoʻi lea.

Ata ua saunia mo k8s

O i'i o koneteina o lo'o fa'atusalia e ni auivi mautu. I le taimi lava e tasi, na latou filifili ai e tuu i totonu ia i latou pusa tufatufaina ina ia "le foliga mai o le olaga e pei o vine." Aisea na faia ai lenei mea, o le a matou faʻamatalaina i lalo.
 
O le taunuuga o se meafaigaluega fau-se pusa faʻapitoa faʻapitoa e faʻasino i faʻasalalauga faʻapitoa faʻasalalauga ma faʻamaumauga faʻapitoa.

E faapefea ona tatou faaaogaina? E iai le matou Docker Hub o lo'o iai se atigipusa. Matou te fa'ata i totonu o la matou faiga e aveese ai fa'alagolago i fafo. O le taunuuga o se atigipusa ua makaina i le samasama. Matou te faia se faʻataʻitaʻiga e faʻapipiʻi uma tufatufaga ma tusitusiga matou te manaʻomia i totonu o le koneteina. A maeʻa lena, matou te faʻapipiʻiina se ata ua saunia e faʻaaoga: e tuʻuina e le au atinaʻe le code ma nisi o latou lava faʻalagolago i ai. 

O le a le lelei o lenei faiga? 

  • Muamua, fa'atonuga atoatoa o mea faigaluega fau - fau pusa, fa'amaumauga ma fa'asoa fa'asologa. 
  • Lona lua, ua matou ausia tulaga faʻataʻatia: matou te faia faʻataʻitaʻiga, ata vaeluaga ma sauni-e faʻaoga i le auala lava e tasi. 
  • Tolu, o koneteina e tu'uina mai ia i tatou le feavea'i. O le asō matou te faʻaaogaina Gitlab, ma taeao o le a matou fesuiaʻi i TeamCity poʻo Jenkins ma o le a mafai ona faʻatautaia a matou koneteina i le auala lava e tasi. 
  • Lona fa, faaitiitia le faalagolago. E le o se mea faʻafuaseʻi na matou tuʻuina pusa tufatufaina i totonu o le atigipusa, aua e mafai ai ona matou aloese mai le siiina mai i luga ole Initaneti i taimi uma. 
  • Lona lima, ua faʻateleina le saoasaoa o le fausiaina - o le i ai o kopi faʻapitonuʻu o ata e mafai ai ona e aloese mai le faʻaumatia taimi i le siiina mai, talu ai o loʻo i ai se ata faʻapitonuʻu. 

I se isi faaupuga, ua matou ausia se faʻagasologa faʻatonutonu ma fetuutuunai faʻapotopotoga. Matou te fa'aogaina meafaigaluega lava e tasi e fau ai so'o se koneteina atoatoa. 

E fa'afefea ona fa'atino a tatou faiga faufale

Ata ua saunia mo k8s

O le faʻapotopotoga e faʻalauiloa i le tasi poloaiga, o le faagasologa o loʻo faʻatinoina i le ata (faʻailogaina i le mumu). O loʻo i ai i le tagata atiaʻe se faila Docker (faʻailogaina i le samasama), matou te tuʻuina atu, suia fesuiaiga i tau. Ma i luga o le ala matou te faaopoopo ai ulutala ma vae - o matou sui ia. 

Ulu fa'aopoopo fa'asoa mai ata fa'atatau. Ma faʻapipiʻi e footer a matou 'auʻaunaga i totonu, faʻapipiʻi le faʻalauiloaina o galuega, logging ma isi sui, sui tulaga ulufale, ma isi. 

Ata ua saunia mo k8s

Na matou mafaufau mo se taimi umi pe faʻapipiʻi se supavaisa. I le faaiuga, sa matou filifili matou te manaomia o ia. Na matou filifilia le S6. E tu'uina atu e le supavaisa le puleaina o pusa: fa'atagaina oe e fa'afeso'ota'i i ai pe a pa'u le fa'agasologa autu ma tu'uina atu le fa'atonuga o le koneteina e aunoa ma le toe faia. O ogalaau ma metrics o faiga ia o lo'o fa'agasolo i totonu o le koneteina. E manaʻomia foʻi ona pulea i latou i se isi itu, ma matou faia lenei mea i le fesoasoani a se supavaisa. Ma le mea mulimuli, o le S6 e tausia le fale, faʻailoga faʻailoga ma isi galuega.

Talu ai tatou te faʻaogaina faiga faʻapipiʻi eseese, pe a uma le fausiaina ma le taʻavale, e tatau ona malamalama le pusa poʻo le a le siosiomaga o loʻo i ai ma galue e tusa ai ma le tulaga. Faataitaiga:
O lenei mea e mafai ai ona matou fausia se ata e tasi ma faʻatautaia i faiga faʻapipiʻi eseese, ma o le a faʻalauiloaina e faʻatatau i faʻamatalaga patino o lenei faiga faʻapipiʻi.

 Ata ua saunia mo k8s

Mo le pusa lava e tasi tatou te maua ai laʻau faʻagasologa eseese i Docker ma Kubernetes:

Ata ua saunia mo k8s

O le uta o loʻo faʻatinoina i lalo o le vaavaaiga a le S6. Fa'alogo i le aoina ma mea e tutupu - o matou sui ia e nafa ma ogalaau ma fua. E le maua e Kubernetes, ae o Docker e maua. Aisea? 

Afai tatou te vaʻavaʻai i le faʻamatalaga o le "pod" (o loʻo mulimuli mai - Kubernetes pod), o le a tatou vaʻai o loʻo faʻatinoina le pusa mea na tupu i totonu o se pusa, o loʻo i ai se pusa faʻapipiʻi ese e faʻatino le galuega o le aoina o fua ma ogalaau. E mafai ona matou fa'aogaina le agava'a o Kubernetes: ta'avale pusa i totonu o le tasi pod, i se faiga e tasi ma/po'o le avanoa feso'otaiga. Fa'ailoa moni atu au sooupu ma fai nisi o galuega. Ma afai o le pusa lava lea e tasi e faʻalauiloaina i Docker, o le a maua uma lava gafatia tutusa e pei o le gaosiga, o lona uiga, o le a mafai ona tuʻuina atu ogalaau ma metrics, talu ai o le a faʻalauiloaina sui i totonu. 

Fuafuaga ma ogalaau

O le tuʻuina atu o fua faʻatatau ma ogalaau o se galuega faigata. E tele vaega o lana filifiliga.
O atina'e ua faia mo le fa'atinoina o le uta, ae le mo le fa'aolaina tele o ogalaau. O lona uiga, o lenei faiga e tatau ona fa'atinoina i ni mea e mana'omia. Matou te taumafai e fesoasoani ia matou atinaʻe: "Auina se koneteina Docker Hub, faʻatautaia, ma e mafai ona matou tuʻuina atu ogalaau." 

O le itu lona lua o le faʻatapulaʻaina o le tele o ogalaau. Afai o le siʻitia o le tele o ogalaau e tupu i totonu o le tele o koneteina (o le talosaga e maua ai se faʻaputu-tala i totonu o se matasele), o le uta i luga o le PPU, fesoʻotaʻiga fesoʻotaʻiga, ma le faʻaogaina o ogalaau e faʻateleina, ma e aʻafia ai le faʻagaioiga o le talimalo o se atoa ma isi koneteina i luga o le talimalo, ona o nisi taimi e oʻo atu ai i le "pa'ū" o le talimalo. 

O le itu lona tolu e tatau ona lagolagoina le tele o metotia o le aoina mai o metotia mai le pusa. Mai le faitauina o faila ma palota Prometheus-endpoint i le faʻaaogaina o faʻasalalauga faʻapitoa.

Ma o le itu mulimuli o le faʻaitiitia o le faʻaaogaina o punaoa.

Na matou filifilia se faʻamatalaga tatala Go solution e taʻua Telegraf. Ole feso'ota'iga lautele lea e lagolagoina ai le sili atu i le 140 ituaiga o ala fa'aulu (input plugins) ma le 30 ituaiga o output channels (output plugins). Ua matou faʻamaeʻaina ma o lea o le a matou taʻuina atu ia te oe le auala matou te faʻaaogaina ai le Kubernetes e fai ma faʻataʻitaʻiga. 

Ata ua saunia mo k8s

Fa'apea e fa'atino e se tagata fa'atupu le galuega ma maua e Kubernetes se talosaga e fai se pod. I le taimi nei, o se koneteina e taʻua o le Collector e otometi lava ona faia mo pod taʻitasi (matou te faʻaogaina le mutation webhook). Ole tagata aoina o lo tatou sui. I le amataga, o lenei atigipusa e faʻapipiʻi ia lava e galulue ma Prometheus ma le faiga o le aoina o ogalaau.

  • Ina ia faia lenei mea, e faʻaaogaina faʻamatalaga pod, ma faʻalagolago i lona anotusi, fatuina, fai mai, se Prometheus end-point; 
  • Fa'avae i luga o le fa'amatalaga o le pod ma fa'atulagaga fa'apitoa koneteina, e filifili pe fa'apefea ona tu'uina atu ogalaau.

Matou te aoina ogalaau e ala i le Docker API: e manaʻomia e tagata atiaʻe ona tuʻu i totonu o le stdout poʻo le stderr, ma o le a faʻavasegaina e le tagata aoina. O ogalaau e aoina i ni pusi ma sina fa'atuai e taofia ai le tele o uta. 

O fua fa'atatau e aoina i fa'asologa o galuega (fa'agasolo) i totonu o pusa. O mea uma e faʻailoga: igoa avanoa, lalo, ma isi, ona liliu lea i le Prometheus format - ma avanoa mo le aoina (sei vagana ai ogalaau). Matou te lafoina foi ogalaau, metrics ma mea na tutupu i Kafka ma isi:

  • O lo'o maua fa'amaumauga i Graylog (mo su'esu'ega va'aia);
  • Ogalaau, metrics, mea na tutupu e lafoina i Clickhouse mo le teuina umi.

E tutusa lelei mea uma i le AWS, naʻo matou sui Graylog ma Kafka ma Cloudwatch. Matou te lafoina ogalaau iina, ma o mea uma e foliga mai e faigofie tele: e vave lava ona manino poʻo fea fuifui ma pusa latou te iai. E tutusa foi mo Google Stackdriver. O lona uiga, o la matou polokalame e galue i luga ole fale ma Kafka ma ile ao. 

Afai e leai ni a matou Kubernetes ma pods, o le polokalame e sili atu le lavelave, ae e galue i luga o mataupu faavae tutusa.

Ata ua saunia mo k8s

O faiga lava e tasi o loʻo faʻatinoina i totonu o le koneteina, o loʻo faʻatulagaina e faʻaaoga ai le S6. O fa'agasologa tutusa uma o lo'o fa'agasolo i totonu o le pusa e tasi.

I le faaiuga

Ua matou fatuina se fofo atoatoa mo le fausiaina ma le tatalaina o ata, faatasi ai ma filifiliga mo le aoina ma le lafoina o ogalaau ma fua:

  • Na matou atiina ae se faiga faʻapitoa i le faʻapipiʻiina o ata, ma faʻavae i luga na matou atiaʻe ai faʻataʻitaʻiga CI;
  • O sui o le aoina o faʻamatalaga o a matou faʻaopoopoga Telegraf. Sa matou tofotofoina lelei i latou i le gaosiga;
  • Matou te fa'aogaina le mutation webhook e fa'atino ai atigipusa fa'atasi ai ma sui i pods; 
  • Tu'ufa'atasi i totonu o le fa'alapotopotoga fa'anatura o Kubernetes/Rancher;
  • E mafai ona tatou fa'atinoina ia pusa tutusa i faiga fa'aputuga eseese ma maua le taunu'uga tatou te fa'amoemoeina;
  • Fausia se fa'atonuga atoatoa o le pulega o pusa. 

Tusitala faatasi: Ilya Prudnikov

puna: www.habr.com

Faaopoopo i ai se faamatalaga