Ko nga whakaahua kua rite mo te k8s

Ko tenei korero e pa ana ki te whakamahi ipu i roto i te taiao whakaputa, ina koa ko Kubernetes. Ko te tuhinga e whakatapua ana ki te kohi inenga me nga raarangi mai i nga ipu, me te hanga whakaahua.

Ko nga whakaahua kua rite mo te k8s

No te kamupene fintech a Exness, e whakawhanake ana i nga ratonga mo te hokohoko tuihono me nga hua fintech mo B2B me B2C. He maha nga roopu rereke o ta maatau R&D, ko te tari whanaketanga he 100+ nga kaimahi.

Ko matou te tohu mo te roopu e kawe ana i te turanga mo o maatau kaihanga ki te kohikohi me te whakahaere waehere. Ina koa, kei a matou te kawenga mo te kohikohi, te penapena me te ripoata i nga inenga, nga raarangi, me nga huihuinga mai i nga tono. I tenei wa ka whakahaerehia e matou nga ipu Docker tata ki te toru mano i roto i te taiao whakangao, pupuri i a matou 50 TB rokiroki raraunga nui, me te whakarato otinga hoahoanga e hangaia ana huri noa i o maatau hanganga: Kubernetes, Rancher, me nga momo kaiwhakarato kapua whanui. 

To tatou hihiri

He aha te tahu? Kaore e taea e tetahi te whakahoki. Kei hea te kaa ahi? He uaua ki te mohio. Nonahea ka wera? Ka taea e koe te mohio, engari kaore i te wa tonu. 

Ko nga whakaahua kua rite mo te k8s

He aha i tu ai etahi ipu, kua taka etahi? Ko tehea ipu te he? Ka mutu, he rite tonu te waho o nga ipu, engari kei roto i ia tangata tona ake Neo.

Ko nga whakaahua kua rite mo te k8s

He tangata mohio a maatau kaiwhakawhanake. Ka mahia e ratou nga ratonga pai e whai hua ana ki te kamupene. Engari he rahunga ina kotiti ke nga ipu me nga tono. He nui rawa te PTM o tetahi ipu, ka pau te whatunga tetahi, ka pau te tuatoru i nga mahi I/O, a ko te tuawha kaore i te tino marama he aha tana mahi ki nga turanga. Ka hinga katoa, ka totohu te kaipuke. 

Nga Kaihoko

Kia mohio ai matou ki nga mahi o roto, i whakatau matou ki te whakanoho tika i nga kaihoko ki roto i nga ipu.

Ko nga whakaahua kua rite mo te k8s

Ko enei apiha kei te aukati i nga kaupapa e pupuri ana i nga ipu kia kore e pakaru tetahi ki tetahi. Kua whakatauritehia nga kaihoko, a ka taea e tenei te huarahi paerewa ki te mahi i nga ipu. 

I roto i a maatau, me whakarato nga kaihoko i nga raarangi i roto i te whakatakotoranga paerewa, tohuhia me te tarai. Me whakarato hoki ki a maatau i nga inenga paerewa e taea ana mai i te tirohanga tono pakihi.

Ko te tikanga o nga kaihoko he taputapu mo te mahi me te tiaki ka taea te mahi i roto i nga punaha whakahiato rereke e tautoko ana i nga whakaahua rereke (Debian, Alpine, Centos, etc.).

Ka mutu, me tautoko nga kaihoko ki te CI/CD ngawari kei roto nga konae Docker. Ki te kore, ka pakaru te kaipuke, na te mea ka timata nga ipu ki te tuku i runga i nga reera "piko".

Hanga tukanga me te pūrere whakapakoko ūnga

Hei pupuri i nga mea katoa kia paerewa me te whakahaere, me whai etahi momo tikanga hanga paerewa. Na reira, i whakatau matou ki te kohi ipu ma nga ipu - he recursion tenei.

Ko nga whakaahua kua rite mo te k8s

I konei ka tohuhia nga ipu ki nga whakahuahua totoka. I te hoê â taime, ua opua a‘era ratou e tuu i te mau pute opereraa i roto ia ratou “ia ore te oraraa mai te huru raspberries.” He aha i penei ai, ka whakamaramahia e matou i raro nei.
 
Ko te hua he taputapu hanga—he ipu-putanga motuhake e tohutoro ana i nga putanga tohatoha motuhake me nga momo tuhinga tuhi.

Me pehea tatou e whakamahi ai? Kei a matou he Docker Hub kei roto he ipu. Ka whakaatahia e matou i roto i to maatau punaha ki te whakakore i nga whakawhirinaki o waho. Ko te hua he ipu kua tohua ki te kowhai. Ka hangaia e matou he tauira hei whakauru i nga tohatoha me nga tuhinga katoa e hiahiatia ana ki roto i te ipu. Whai muri i tera, ka kohia e matou he ahua rite-ki-te whakamahi: ka tukuna e nga kaiwhakawhanake he waehere me etahi o o ratou ake whakawhirinakitanga motuhake ki roto. 

He aha te pai o tenei huarahi? 

  • Tuatahi, ko te mana whakahaere o nga taputapu hanga - hanga ipu, tuhinga me nga putanga tohatoha. 
  • Tuarua, kua tutuki i a maatau te paerewa paerewa: ka hangaia e matou nga tauira, te ahua takawaenga me te rite ki te whakamahi i te ahua ano. 
  • Tuatoru, ko nga ipu te kawe i a tatou. I tenei ra ka whakamahia e matou a Gitlab, a apopo ka huri matou ki TeamCity, ki Jenkins ranei ka taea e matou te whakahaere i a matou ipu i te huarahi ano. 
  • Tuawha, te whakaiti i te whakawhirinaki. Ehara i te mea pohehe i hoatu e matou nga kete tohatoha ki roto i te ipu, na te mea ka taea e matou te karo i te tango mai i te Ipurangi i nga wa katoa. 
  • Tuarima, kua piki ake te tere o te hanga - te noho mai o nga kape o nga whakaahua o te rohe ka taea e koe te karo i te moumou taima ki te tango, na te mea he ahua o te rohe. 

Arā, kua tutuki i a mātou he hātepe whakahiatotanga me te ngawari. Ka whakamahia e matou nga taputapu rite ki te hanga i nga ipu kua oti te whakaputa. 

Me pehea te mahi a to maatau hangahanga

Ko nga whakaahua kua rite mo te k8s

Ka whakarewahia te huihuinga me te whakahau kotahi, ka mahia te tukanga i roto i te ahua (kua tohua ki te whero). Ko te kaiwhakawhanake he konae Docker (kua tohua ki te kowhai), ka tukuna e matou, ka whakakapi i nga taurangi me nga uara. A i runga i te huarahi ka taapirihia e matou nga pane me nga hiku - ko o matou kaihoko enei. 

Ka taapirihia e te Pane nga tohatoha mai i nga whakaahua e pa ana. Ka whakauruhia e te hiku a maatau ratonga ki roto, ka whirihora i te whakarewatanga o nga mahi, te takiuru me etahi atu kaihoko, whakakapi i te waahi urunga, aha atu. 

Ko nga whakaahua kua rite mo te k8s

I whakaaro matou mo te wa roa me whakauru he kaitirotiro. I te pae hopea, ua faaoti matou e e hinaaro matou ia ’na. I tohua e matou te S6. Ka whakaratohia e te kaitirotiro te whakahaere ipu: ka taea e koe te hono atu mena ka pakaru te mahinga matua me te whakarato i te whakahaere a-ringa o te ipu me te kore e hanga ano. Ko nga raarangi me nga inenga he tukanga e rere ana i roto i te ipu. Me whakahaere ano ratou, a ka mahia e matou ma te awhina o tetahi kaitirotiro. Ka mutu, ko te S6 te tiaki whare, te tukatuka tohu me etahi atu mahi.

I te mea ka whakamahia e matou nga punaha orkestra rereke, i muri i te hanga me te oma, me maarama te ipu he aha te taiao kei roto me te mahi i runga i te ahuatanga. Hei tauira:
Ma tenei ka taea e tatou te hanga i tetahi ahua me te whakahaere i roto i nga punaha whakahaere rereke, ka whakarewahia ma te whakaaro ki nga ahuatanga o tenei punaha whakahaere.

 Ko nga whakaahua kua rite mo te k8s

Mo te ipu kotahi ka whiwhi tatou i nga rakau tukatuka rereke i Docker me Kubernetes:

Ko nga whakaahua kua rite mo te k8s

Ko te utu utu ka mahia i raro i te tirotiro a S6. Kia whai whakaaro ki te kaikohi me nga huihuinga - ko o maatau kaihoko te kawenga mo nga raarangi me nga inenga. Karekau a Kubernetes, engari kei a Docker. He aha? 

Mena ka titiro tatou ki nga korero o te "pod" (i muri nei - Kubernetes pod), ka kite tatou kei te mahia nga ipu takahanga ki roto i te pota, he ipu kaikohi motuhake kei te mahi i te mahi o te kohi ine me nga raarangi. Ka taea e tatou te whakamahi i nga kaha o Kubernetes: te whakahaere ipu i roto i te pona kotahi, i roto i te tukanga kotahi me te mokowā whatunga. Me whakauru mai o kaihoko me te mahi i etahi mahi. A, ki te whakarewahia taua ipu ki Docker, ka rite katoa nga kaha ki te whakaputa, ara, ka taea e ia te tuku rakau me nga inenga, na te mea ka whakarewahia nga kaihoko ki roto. 

Nga inenga me nga raarangi

He mahi uaua te tuku inenga me nga raarangi. He maha nga waahanga mo tana whakatau.
Ka hangaia nga hanganga mo te mahi o te utu, kaua mo te tuku papatipu o nga rakau. Arā, me mahi tenei tukanga me te iti o nga whakaritenga rauemi ipu. Ka whakapau kaha matou ki te awhina i o maatau kaiwhakawhanake: "Tikina he ipu Docker Hub, whakahaere, ka taea e matou te tuku i nga raarangi." 

Ko te waahanga tuarua ko te whakawhāiti i te rōrahi o ngā rākau. Mena ka puta te pikinga o te rōrahi o nga poroporo i roto i nga ipu maha (ka puta te tono he tohu-papa i roto i te kopikopiko), ka piki ake te kawenga o te PTM, nga waahana korero, me te punaha tukatuka poro, ka pa tenei ki te mahi a te kaihautu. katoa me etahi atu ipu kei runga i te kaihautu, katahi ka arai tenei ki te "hinga" o te kaihautu. 

Ko te ahua tuatoru me tautoko i te maha o nga tikanga kohinga inenga ka taea i waho o te pouaka. Mai i te panui i nga konae me te pooti i te Prometheus-endpoint ki te whakamahi i nga kawa motuhake tono.

A ko te waahanga whakamutunga ko te whakaiti i te kohi rawa.

I whiriwhiria e matou he otinga Haere tuwhera-puna ko Telegraf. He hononga honohono tenei e tautoko ana i te 140 nga momo waahana whakauru (whakauru whakauru) me nga momo 30 o nga takere whakaputa (whakaputa mono). Kua oti i a maatau, inaianei ka korero atu ki a koe me pehea te whakamahi ma te whakamahi i a Kubernetes hei tauira. 

Ko nga whakaahua kua rite mo te k8s

Me kii ka tukuna e te kaiwhakawhanake he taumahatanga mahi ka whiwhi tono a Kubernetes ki te hanga i tetahi putunga. I tenei wa, ka hanga aunoatia he ipu e kiia nei ko te Kohikohi mo ia pona (ka whakamahi matou i te maataki tukutuku whakawhiti). Ko te Kaikohi to maatau kaihoko. I te timatanga, ka whirihora tenei ipu ki a ia ano kia mahi tahi me Prometheus me te punaha kohinga poro.

  • Ki te mahi i tenei, ka whakamahia e ia nga kupu tuhipoka, a, i runga ano i ona ihirangi, ka hanga, me kii, he tohu mutunga Prometheus; 
  • I runga i te whakatakotoranga o te pod me nga tautuhinga ipu motuhake, ka whakatauhia me pehea te tuku pororakau.

Ka kohia e matou nga raarangi ma te Docker API: me whakauru noa e nga kaiwhakawhanake ki te stdout, ki te stderr ranei, ma te Kaikohi e whakariterite. Ka kohia nga poro poroporo me etahi wa roa hei aukati i te taumaha o te kaihautu. 

Ka kohia nga inenga puta noa i nga wa mahi (tukatuka) i roto i nga ipu. Ka tohua nga mea katoa: mokowā ingoa, kei raro, me etahi atu, ka huri ki te whakatakotoranga Prometheus - ka waatea mo te kohinga (haunga nga raarangi). Ka tukuna ano e matou nga raarangi, nga inenga me nga huihuinga ki Kafka me etahi atu:

  • Kei te waatea nga raarangi i Graylog (mo te tātari tirohanga);
  • Ka tukuna nga raarangi, nga inenga, nga huihuinga ki Clickhouse mo te rokiroki mo te wa roa.

He rite tonu nga mahi katoa i roto i te AWS, ka whakakapihia e matou a Graylog me Kafka me te Cloudwatch. Ka tukuna e matou nga rakau ki reira, ka tino pai nga mea katoa: ka marama tonu ko wai te kahui me te ipu no ratou. He pera ano mo Google Stackdriver. Arā, ka mahi to maatau kaupapa i runga i te waahi me Kafka me te kapua. 

Mena karekau he Kubernetes me nga poti, he uaua ake te kaupapa, engari he rite tonu nga kaupapa.

Ko nga whakaahua kua rite mo te k8s

Ko nga tikanga ano ka mahia i roto i te ipu, he mea whakarite ma te whakamahi i te S6. He rite tonu nga mahi katoa kei roto i te ipu kotahi.

Ka rite ki te hua,

Kua hanga e matou he otinga katoa mo te hanga me te whakarewa whakaahua, me nga whiringa mo te kohi me te tuku i nga raarangi me nga inenga:

  • I whakawhanakehia e matou he huarahi paerewa mo te whakahiato whakaahua, a, i runga i tera i hangaia e matou nga tauira CI;
  • Ko nga kaihoko kohinga raraunga ko o maatau toronga Telegraf. He pai ta matou whakamatau i a raatau i roto i nga mahi hanga;
  • Ka whakamahi matou i te matawaewae whakawhiti hei whakatinana i nga ipu me nga apiha i roto i nga pene; 
  • Kua whakauruhia ki roto i te punaha rauropi Kubernetes/Rancher;
  • Ka taea e tatou te whakahaere i nga ipu ano i roto i nga punaha whakahiato rereke ka whiwhi i nga hua e tumanakohia ana;
  • I hangaia he whirihoranga whakahaere ipu tino hihiri. 

Kaituhi-tahi: Ilya Prudnikov

Source: will.com

Tāpiri i te kōrero