Na-ebuga ngwa na VM, Nomad na Kubernetes

Ndewo, unu niile! Aha m bụ Pavel Agaletsky. M na-arụ ọrụ dị ka onye ndu otu n'ime otu ndị na-emepụta usoro nnyefe Lamoda. Na 2018, ekwuru m okwu na ogbako HighLoad ++, ma taa, m ga-achọ ịnye transcript nke akụkọ m.

Enyere isiokwu m maka ahụmịhe ụlọ ọrụ anyị na-ebuga sistemụ na ọrụ na gburugburu dị iche iche. Malite site n'oge ochie anyị, mgbe anyị bufere sistemu niile n'ime sava ndị nkịtị, na-ejedebe na ntughari nke nta nke nta site na Nomad gaa na mbugharị na Kubernetes. Aga m agwa gị ihe mere anyị ji mee ya na nsogbu ndị anyị nwere na usoro ahụ.

Na-ebuga ngwa na VM

Ka anyị bido n'eziokwu na afọ 3 gara aga etinyere sistemụ na ọrụ ụlọ ọrụ niile na sava mebere oge niile. N'ụzọ nkà na ụzụ, a haziri ya n'ụzọ na-echekwa ma na-agbakọta koodu niile maka usoro anyị site na iji ngwaọrụ mgbakọ na-akpaghị aka, na-eji jenkins. N'iji ike eme ihe, ewepụtara ya site na sistemụ njikwa ụdị anyị gaa na sava mebere. Ọzọkwa, a na-etinye usoro ọ bụla nke ụlọ ọrụ anyị nwere na ọ dịkarịa ala sava 2: otu n'ime ha n'isi, nke abụọ na ọdụ. Sistemu abụọ a yiri ibe ha na ntọala ha niile, ike, nhazi, wdg. Naanị ihe dị iche n'etiti ha bụ na isi natara okporo ụzọ onye ọrụ, ebe ọdụ anaghị enweta okporo ụzọ onye ọrụ.

Gịnị mere e ji mee nke a?

Mgbe anyị webatara mpụta ọhụrụ nke ngwa anyị, anyị chọrọ ịhụ na mwepụta enweghị nkebi, ya bụ, na-enweghị nsonaazụ pụtara ìhè maka ndị ọrụ. Emere nke a n'ihi na ntọhapụ na-esote chịkọtara site na iji Ansible ka ewepụrụ na ọdụ. N'ebe ahụ, ndị na-etinye aka na ntinye ahụ nwere ike ịlele ma jide n'aka na ihe niile dị mma: metrik niile, ngalaba na ngwa na-arụ ọrụ; A na-ewepụta edemede ndị dị mkpa. Naanị mgbe ha kwenyesiri ike na ihe niile dị mma, a gbanwere okporo ụzọ ahụ. Ọ malitere ịga na nkesa nke bụbu ọdụ. Na nke bụbu isi nọgidere na-enweghị okporo ụzọ onye ọrụ, ebe ọ ka nwere ụdị ngwa anyị gara aga na ya.

Ya mere ọ bụ enweghị nkebi maka ndị ọrụ. N'ihi na mgbanwe ahụ na-adị ngwa ngwa, ebe ọ bụ na ọ na-agbanwe naanị ihe nkwụnye ego. Ị nwere ike ịghachite azụ na ụdị nke gara aga n'ụzọ dị mfe site n'ịgbanwee balancer azụ. Anyị nwekwara ike ịchọpụta na ngwa ahụ nwere ike ịmepụta ọbụna tupu ọ nata okporo ụzọ onye ọrụ, nke dị nnọọ mma.

Olee uru ndị anyị hụrụ n'ihe a niile?

  1. Nke mbụ, o zuru ezu ọ na-arụ ọrụ. Onye ọ bụla na-aghọta ka atụmatụ mbugharị dị otú ahụ si arụ ọrụ, n'ihi na ọtụtụ ndị mmadụ ebugala na sava mebere oge niile.
  2. Nke a ezuola pụrụ ịdabere, ebe ọ bụ na nkà na ụzụ ntinye aka dị mfe, nke ọtụtụ puku ụlọ ọrụ na-anwale. A na-ebuga ọtụtụ nde sava n'ụzọ a. O siri ike imebi ihe.
  3. Na n'ikpeazụ anyị nwere ike nweta atomiki ntinye. Nkwanye na-eme n'otu oge maka ndị ọrụ, na-enweghị ọkwa a na-ahụ anya nke ịgbanwee n'etiti ụdị ochie na nke ọhụrụ.

Mana anyị hụkwara ọtụtụ adịghị ike na ihe a niile:

  1. Na mgbakwunye na gburugburu mmepụta ihe, gburugburu ebe mmepe, e nwere gburugburu ndị ọzọ. Dịka ọmụmaatụ, qa na mmalite. N'oge ahụ anyị nwere ọtụtụ sava na ihe dị ka ọrụ 60. N'ihi nke a ọ dị mkpa maka ọrụ ọ bụla, debe ụdị ọhụrụ maka ya igwe mebere. Ọzọkwa, ọ bụrụ na ịchọrọ imelite ọba akwụkwọ ma ọ bụ wụnye ndabere ọhụrụ, ịkwesịrị ime nke a na gburugburu ebe niile. Ịkwesịrị ịmekọrịta oge mgbe ị ga-ebuga ụdị ngwa ọhụrụ na-esote ya na oge mgbe devops na-eme ntọala gburugburu ebe dị mkpa. N'okwu a, ọ dị mfe ịbanye n'ọnọdụ ebe gburugburu ebe obibi anyị ga-adịtụ iche na gburugburu ebe niile n'otu oge. Dịka ọmụmaatụ, na mpaghara QA a ga-enwe ụfọdụ nsụgharị nke ụlọ akwụkwọ, na ebe mmepụta ihe ga-adị iche iche, nke ga-eduga ná nsogbu.
  2. Ọ siri ike imelite ndabere ngwa gị. Ọ dabere na gị, kama na otu nke ọzọ. Ya bụ, site na ndị otu devops na-echekwa ihe nkesa. Ị ga-enyerịrị ha ọrụ kwesịrị ekwesị na nkọwa nke ihe ịchọrọ ime.
  3. N'oge ahụ, anyị chọkwara ikesa nnukwu nnukwu monoliths anyị nwere n'ime obere ọrụ dị iche iche, ebe anyị ghọtara na a ga-enwekwu ọtụtụ n'ime ha. N'oge ahụ, anyị enweelarị ihe karịrị 100 n'ime ha. Maka ọrụ ọhụrụ ọ bụla, ọ dị mkpa ịmepụta igwe ọhụụ ọhụrụ dị iche iche, nke dịkwa mkpa ka a na-elekọta ma na-ebugharị. Na mgbakwunye, ị chọrọ ọ bụghị otu ụgbọ ala, ma ọ dịkarịa ala abụọ. Agbakwunyere na ihe a niile bụ gburugburu QA. Nke a na-akpata nsogbu na-eme ka ọ na-esiri gị ike ịmepụta na ịmepụta usoro ọhụrụ. usoro mgbagwoju anya, ọnụ na ogologo oge.

Ya mere, anyị kpebiri na ọ ga-adaba adaba ịkwaga site na ibugharị igwe mebere oge niile gaa na-ebuga ngwa anyị n'ime akpa docker. Ọ bụrụ na ị nwere docker, ị ga-achọ sistemụ nwere ike ịme ngwa ahụ na ụyọkọ, ebe ị nweghị ike ibuli akpa. Ọ na-adịkarị, ịchọrọ ịdekọ arịa ole a na-ebuli elu ka ha na-ebuli ya na-akpaghị aka. N'ihi nke a, anyị kwesịrị ịhọrọ usoro nchịkwa.

Anyị chere ogologo oge banyere nke anyị ga-ewere. Nke bụ́ eziokwu bụ na n’oge ahụ, njupụta a na-ebunye ihe n’ebe a na-edebe ihe n’ike n’ike bụ nke oge ochie, ebe ọ bụ na ha enweghị ụdị sistemụ arụmọrụ kacha ọhụrụ. N'oge ụfọdụ, enwere ọbụna FreeBSD, nke na-adịghị mma ịkwado. Anyị ghọtara na anyị kwesịrị ịkwaga na docker ngwa ngwa o kwere mee. Ndị devops anyị lere ahụmịhe ha dị na ngwọta dị iche iche wee họrọ usoro dịka Nomad.

Banye na Nomad

Nomad bụ ngwaahịa nke HashiCorp. A makwaara ha maka ngwọta ha ndị ọzọ:

Na-ebuga ngwa na VM, Nomad na Kubernetes

"Consul" bụ ngwá ọrụ maka nchọpụta ọrụ.

"Teraform" - usoro maka ijikwa sava na-enye gị ohere ịhazi ha site na nhazi, nke a na-akpọ akụrụngwa-as-a-koodu.

"Onye nzuzu" na-enye gị ohere ibugharị igwe mebere na mpaghara ma ọ bụ n'igwe ojii site na faịlụ nhazi akọwapụtara.

Ndị na-akwagharị n'oge ahụ dị ka ihe ngwọta dị mfe nke enwere ike ịgbanwe ngwa ngwa na-agbanweghị akụrụngwa niile. Na mgbakwunye, ọ dị nnọọ mfe ịmụta. Ọ bụ ya mere anyị ji họrọ ya dị ka usoro nzacha maka akpa anyị.

Kedu ihe ịchọrọ iji bufee sistemụ gị na Nomad?

  1. Mbụ niile ị chọrọ ihe onyonyo docker ngwa gị. Ịkwesịrị ịrụ ya ma tinye ya na ebe nchekwa ihe onyonyo docker. N'ọnọdụ anyị, nke a bụ arịa ụlọ - usoro na-enye gị ohere ịkwanye ihe dị iche iche nke ụdị dị iche iche n'ime ya. Ọ nwere ike chekwaa ebe nchekwa, ihe onyonyo docker, ngwugwu PHP onye na-ede ihe, ngwugwu NPM, na ihe ndị ọzọ.
  2. Achọrọkwa nhazi faịlụ, nke ga-agwa Nomad ihe, ebe na n'ụdị nke ịchọrọ ibuga.

Mgbe anyị na-ekwu maka Nomad, ọ na-eji asụsụ HCL dị ka usoro faịlụ ozi ya, nke pụtara Asụsụ nhazi HashiCorp. Nke a bụ nnukwu Yaml nke na-enye gị ohere ịkọwa ọrụ gị n'usoro Nomad.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Ọ na-enye gị ohere ikwu ọtụtụ arịa ịchọrọ ibuga, nke ihe oyiyi ga-esi na-ebufe ha dị iche iche n'oge ntinye. Ya mere, ị na-azụ faịlụ a na Nomad, ọ na-ebupụta arịa n'ime mmepụta dịka ya si dị.

N'ọnọdụ anyị, anyị ghọtara na naanị ide faịlụ HCL yiri nke ahụ maka ọrụ ọ bụla agaghị adị mma, n'ihi na enwere ọtụtụ ọrụ na mgbe ụfọdụ ịchọrọ imelite ha. Ọ na-eme na a na-ebugharị otu ọrụ ọ bụghị n'otu oge, mana n'ụdị dị iche iche. Dịka ọmụmaatụ, otu n'ime usoro ndị anyị nwere na mmepụta nwere ihe karịrị 100 ugboro na mmepụta. Ha na-agba ọsọ site na otu ihe oyiyi, ma dị iche na nhazi nhazi na faịlụ nhazi.

Ya mere, anyị kpebiri na ọ ga-adịrị anyị mma ịchekwa faịlụ nhazi anyị niile maka ntinye n'otu ebe nchekwa. N'ụzọ dị otú a, a na-ahụ ha: ha dị mfe ịnọgide na-enwe ma anyị nwere ike ịhụ ụdị usoro anyị nwere. Ọ bụrụ na ọ dị mkpa, ọ dịkwa mfe imelite ma ọ bụ gbanwee ihe. Ịgbakwunye usoro ọhụrụ adịghịkwa esiri ike - naanị ịkwesịrị ịmepụta faịlụ nhazi n'ime ndekọ ọhụrụ. N'ime ya bụ faịlụ ndị a: service.hcl, nke nwere nkọwa nke ọrụ anyị, yana ụfọdụ faịlụ env na-enye ohere ka ahazi ọrụ a, nke etinyere na mmepụta.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Agbanyeghị, a na-etinye ụfọdụ sistemụ anyị na mmepụta ọ bụghị n'otu ntabi anya, mana n'ọtụtụ n'otu oge. Ya mere, anyị kpebiri na ọ ga-adabara anyị na-echekwa ọ bụghị configs na ha dị ọcha ụdị, ma ha templated ụdị. Anyị họọrọ jinja 2. Na usoro a, anyị na-echekwa ma nhazi nke ọrụ ahụ n'onwe ya yana faịlụ env achọrọ maka ya.

Tụkwasị na nke ahụ, anyị etinyela n'ime ebe nchekwa ihe ederede ntinye aka na-emekarị na ọrụ niile, nke na-enye gị ohere ịmalite ma tinye ọrụ gị n'ime mmepụta, n'ime ebe a chọrọ, n'ime ihe achọrọ. N'okwu ahụ mgbe anyị tụgharịrị nhazi HCL anyị ka ọ bụrụ ndebiri, mgbe ahụ faịlụ HCL, nke bụbu nhazi Nomad mgbe niile, na nke a malitere ịdịtụ iche.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Ya bụ, anyị jiri mgbanwe etinyere dochie ụfọdụ mgbanwe ọnọdụ nhazi nke ewepụtara na faịlụ env ma ọ bụ isi mmalite ndị ọzọ. Na mgbakwunye, anyị nwetara ohere ịnakọta faịlụ HCL n'ike, ya bụ, anyị nwere ike iji ọ bụghị naanị ntinye mgbanwe nkịtị. Ebe ọ bụ na jinja na-akwado loops na ọnọdụ, ị nwekwara ike ịmepụta faịlụ nhazi ebe ahụ, nke na-agbanwe dabere na ebe ị na-ebuga ngwa gị.

Dịka ọmụmaatụ, ịchọrọ ibuga ọrụ gị tupu mmepụta na mmepụta. Ka anyị kwuo na na tupu mmepụta, ị chọghị ịgba ọsọ cron scripts, mana naanị ịchọrọ ịhụ ọrụ na ngalaba dị iche iji jide n'aka na ọ na-arụ ọrụ. Maka onye ọ bụla na-ebuga ọrụ ahụ, usoro a na-ele anya dị mfe ma doo anya. Ihe niile ị ga - eme bụ igbu faịlụ deploy.sh, kọwaa ọrụ ịchọrọ ibuga na nke ebumnuche. Dịka ọmụmaatụ, ịchọrọ ibuga ụfọdụ usoro na Russia, Belarus ma ọ bụ Kazakhstan. Iji mee nke a, gbanwee otu n'ime paramita ahụ, ị ​​ga-enwekwa faịlụ nhazi ziri ezi.

Mgbe etinyelarị ọrụ Nomad na ụyọkọ gị, ọ dị ka nke a.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Nke mbụ, ịchọrọ ụfọdụ ụdị nhazi n'èzí, nke ga-enweta okporo ụzọ ndị ọrụ niile. Ọ ga-arụkọ ọrụ ọnụ na Consul wee chọpụta site na ya ebe, na ihe ọnụ, na ihe adreesị IP a kpọmkwem ọrụ dị na kwekọrọ na otu ngalaba aha. Ọrụ dị na Consul sitere na Nomad n'onwe ya. Ebe ọ bụ na ndị a bụ ngwaahịa sitere n'otu ụlọ ọrụ, ha na-ejikọta ibe ha. Anyị nwere ike ịsị na Nomad site na igbe ahụ nwere ike ịdebanye aha ọrụ niile ewepụtara na ya n'ime Consul.

Ozugbo onye na-ahụ maka ibu dị n'ihu matara ọrụ ị ga-ezigara okporo ụzọ, ọ na-ebuga ya na akpa kwesịrị ekwesị ma ọ bụ ọtụtụ akpa dabara na ngwa gị. Dị ka o kwesịrị ịdị, ọ dịkwa mkpa iche echiche banyere nchekwa. Agbanyeghị na ọrụ niile na-agba n'otu igwe mebere n'ime akpa, nke a na-achọkarị igbochi ohere ịnweta ọrụ ọ bụla na ndị ọzọ. Anyị nwetara nke a site na nkewa. Emebere ọrụ ọ bụla n'ime netwọkụ mebere nke ya, bụ nke enyere iwu usoro na iwu maka inye ohere/ịjụ ịnweta sistemụ na ọrụ ndị ọzọ. Enwere ike ịchọta ha ma n'ime ụyọkọ a ma n'èzí ya. Dịka ọmụmaatụ, ọ bụrụ na ịchọrọ igbochi ọrụ ijikọ na nchekwa data akọwapụtara, enwere ike ime nke a site na nkewa ọkwa netwọkụ. Ya bụ, ọbụlagodi na ndudue, ịnweghị ike jikọọ na mberede site na gburugburu ule na nchekwa data mmepụta gị.

Ego ole ka mgbanwe ahụ riri anyị n'ihe gbasara akụrụngwa mmadụ?

Ntugharị nke ụlọ ọrụ ahụ dum na Nomad were ihe dịka ọnwa 5-6. Anyị gara n'usoro ọrụ site na ọrụ, mana ọ na-aga ngwa ngwa. Otu ọ bụla ga-emepụta akpa nke ha maka ọrụ ahụ.

Anyị ewerela usoro a nke na otu ọ bụla na-ahụ maka onyonyo docker nke sistemụ ha n'onwe ha. DevOps na-enye akụrụngwa n'ozuzu dị mkpa maka mbugharị, ya bụ, nkwado maka ụyọkọ n'onwe ya, nkwado maka usoro CI, na ihe ndị ọzọ. Na n'oge ahụ, anyị nwere ihe karịrị 60 usoro kwagara Nomad, nke ruru ihe dị ka 2 puku containers.

Devops na-ahụ maka akụrụngwa n'ozuzu nke ihe niile metụtara ntinye na sava. Na otu mmepe nke ọ bụla, n'aka nke ya, na-ahụ maka imejuputa arịa maka sistemụ ya, ebe ọ bụ na ọ bụ otu ahụ maara ihe ọ na-achọkarị n'otu akpa.

Ihe kpatara ịhapụ Nomad

Kedu uru anyị nwetara site na iji Nomad na docker, n'etiti ndị ọzọ ịtụgharị gaa na mbugharị?

  1. Anyị nyere nha nha ọnọdụ maka gburugburu ebe niile. Na mmepe, QA gburugburu ebe obibi, tupu mmepụta, mmepụta, a na-eji otu ihe oyiyi akpa ahụ, na-adabere na ya. N'ihi ya, ị nweghị ohere ọ bụla na ihe ga-ejedebe na mmepụta abụghị ihe ị nwalere na mbụ na mpaghara ma ọ bụ na gburugburu ule gị.
  2. Anyị chọpụtakwara na o zuola dị mfe ịgbakwunye ọrụ ọhụrụ. Site n'echiche mbugharị, a na-ewepụta sistemụ ọhụrụ ọ bụla n'ụzọ dị mfe. Naanị gaa na ebe nchekwa nke na-echekwa configs, tinye nhazi ọzọ maka sistemụ gị ebe ahụ, ị ​​ga-edozi ya. Ị nwere ike ibuga usoro gị na mmepụta na-enweghị mgbalị ọ bụla ọzọ site na devops.
  3. All nhazi faịlụ n'otu ebe nchekwa tụgharịrị ka a na-enyocha ya. N'oge anyị bufere sistemụ anyị site na iji sava mebere, anyị na-eji ike, nke configs nọ n'otu ebe nchekwa. Agbanyeghị, maka ọtụtụ ndị mmepe nke a siri ike ịrụ ọrụ na ya. N'ebe a, olu nhazi na koodu nke ịchọrọ ịgbakwunye iji tinye ọrụ ahụ adịla ntakịrị. Na mgbakwunye, ọ dị mfe maka deps idozi ma ọ bụ gbanwee ya. N'ihe gbasara ntụgharị, dịka ọmụmaatụ, gaa na ụdị Nomad ọhụrụ, ha nwere ike iwere ma kwalite faịlụ niile arụ ọrụ dị n'otu ebe.

Mana anyị hụkwara ọtụtụ ọghọm:

Ọ tụgharịrị na anyị enweghị ike nweta ntinye ọrụ enweghị nkebi n'ihe banyere Nomad. Mgbe a na-ebupụ arịa n'okpuru ọnọdụ dị iche iche, ọ nwere ike ịpụta na ọ na-agba ọsọ, Nomad ghọtara na ọ bụ akpa dị njikere ịnata okporo ụzọ. Nke a mere tupu ngwa n'ime ya enwee ohere ịmalite. N'ihi nke a, usoro ahụ malitere ịmepụta njehie 500 maka oge dị mkpirikpi, n'ihi na okporo ụzọ malitere ịbanye na akpa nke na-adịbeghị njikere ịnakwere ya.

Anyị zutere ụfọdụ ahụhụ. Ihe kacha mkpa bụ na Nomad anaghị ejikwa nnukwu ụyọkọ nke ọma ma ọ bụrụ na ị nwere ọtụtụ sistemu na arịa. Mgbe ịchọrọ ịwepụ otu n'ime sava ndị agụnyere na ụyọkọ Nomad maka mmezi, enwere ike dị elu na ụyọkọ ahụ agaghị adị mma nke ukwuu wee daa. Ụfọdụ arịa nwere ike, dịka ọmụmaatụ, daa ma ghara ibili - nke a ga-efu gị nnukwu ego ma emechaa ma ọ bụrụ na usoro mmepụta gị niile dị na ụyọkọ nke Nomad na-achịkwa.

Ya mere, anyị kpebiri iche echiche banyere ebe anyị ga-aga ọzọ. N’oge ahụ, anyị bịara matakwuo ihe anyị chọrọ ime. Ya bụ: anyị chọrọ ntụkwasị obi, ntakịrị ọrụ karịa Nomad na-enye, yana usoro tozuru oke, kwụsie ike.

N'akụkụ a, nhọrọ anyị dabara na Kubernetes dị ka ikpo okwu kachasị ewu ewu maka ịmalite ụyọkọ. Karịsịa n'ihi na nha na ọnụ ọgụgụ nke akpa anyị buru ibu zuru oke. Maka ebumnuche ndị dị otú ahụ, Kubernetes yiri ka ọ bụ usoro kachasị mma nke anyị nwere ike ile anya.

Ntughari na Kubernetes

Aga m agwa gị ntakịrị gbasara echiche ndị bụ isi nke Kubernetes na otu ha si dị iche na Nomad.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Nke mbụ, echiche kachasị na Kubernetes bụ echiche nke pod. Pod bụ otu akpa ma ọ bụ karịa na-agbakọ ọnụ mgbe niile. Ha na-arụkwa ọrụ mgbe niile dị ka a ga-asị na ọ bụ naanị otu igwe mebere. A na-enweta ha site na IP 127.0.0.1 na ọdụ ụgbọ mmiri dị iche iche.

Ka anyị were ya na ị nwere ngwa PHP nke mejupụtara nginx na php-fpm - atụmatụ kpochapụ. O yikarịrị, ị ga-achọ idobe akpa nginx na php-fpm ọnụ oge niile. Kubernetes na-enye gị ohere ime nke a site n'ịkọwa ha dịka otu pọd nkịtị. Nke a bụ kpọmkwem ihe anyị na Nomad enweghị ike inweta.

Echiche nke abụọ bụ nhazi. Nke bụ́ eziokwu bụ na pọd ahụ n’onwe ya bụ ihe ephemeral; ọ na-amalite wee pụọ. Ịchọrọ ibu ụzọ gbuo arịa gị niile, wee malite ụdị ọhụrụ ozugbo, ka ọ bụ na ịchọrọ iwepụta ha nke nta nke nta? Ọ na-akọwa otu esi ebuga pọd gị, n'ụdị na otu esi emelite ha.

Echiche nke atọ bụ ọrụ. Ọrụ gị bụ sistemụ gị, nke na-enweta ụfọdụ okporo ụzọ wee bufee ya na otu pọd ma ọ bụ karịa dabara na ọrụ gị. Ya bụ, ọ na-enye gị ohere ikwu na okporo ụzọ niile na-abata na ụdị ọrụ dị otú ahụ na ụdị aha a ga-ezigara na pọd ndị a kpọmkwem. Ma n'otu oge ahụ ọ na-enye gị nguzozi okporo ụzọ. Ya bụ, ị nwere ike ịmalite pọd abụọ nke ngwa gị, na okporo ụzọ niile na-abata ga-abụ nke ziri ezi n'etiti pọd ndị metụtara ọrụ a.

Na echiche nke anọ bụ isi bụ Nje. Nke a bụ ọrụ na-arụ na ụyọkọ Kubernetes. Ọ na-arụ ọrụ dị ka ihe nkwụnye ibu nke mpụga na-eweghara arịrịọ niile. Iji Kubernetes API, Ingress nwere ike ikpebi ebe a ga-eziga arịrịọ ndị a. Ọzọkwa, ọ na-eme nke a nke ukwuu. Ị nwere ike ịsị na a na-ezigara arịrịọ niile nke onye ọbịa a na URL dị otú ahụ na ọrụ a. Arịrịọ ndị a na-abịara ndị ọbịa a na URL ọzọ ka a na-ezigara na ọrụ ọzọ.

Ihe kacha mma site n'echiche nke onye na-emepụta ngwa bụ na ị nwere ike ijikwa ya niile n'onwe gị. Site na ịtọ ntọala Ingress, ị nwere ike izipu okporo ụzọ niile na-abịa na ụdị API dị otú ahụ iji kewaa arịa edere, dịka ọmụmaatụ, na Go. Ma okporo ụzọ a, na-abịa n'otu ngalaba ahụ, ma na URL dị iche, kwesịrị iziga ya na arịa e dere na PHP, ebe enwere ọtụtụ echiche, ma ha adịghị ngwa ngwa.

Ọ bụrụ na anyị atụnyere echiche ndị a niile na Nomad, anyị nwere ike ịsị na echiche atọ mbụ bụ ọnụ Ọrụ. Ma echiche ikpeazụ adịghị na Nomad n'onwe ya. Anyị na-eji ihe ngbanwe nke mpụga dị ka ya: ọ nwere ike ịbụ haproxy, nginx, nginx +, na ndị ọzọ. N'ihe banyere cube, ịkwesighi iwebata echiche a ọzọ iche. Agbanyeghị, ọ bụrụ na ị lelee Ingress n'ime, ọ bụ nginx, haproxy, ma ọ bụ traefik, mana ụdị arụnyere n'ime Kubernetes.

Echiche niile m kọwapụtara bụ, n'ezie, akụrụngwa dị n'ime ụyọkọ Kubernetes. Iji kọwa ha na cube, a na-eji usoro yaml, nke a na-agụ ma mara nke ọma karịa faịlụ HCL n'ihe gbasara Nomad. Ma n'usoro ha na-akọwa otu ihe ahụ n'ihe banyere, dịka ọmụmaatụ, pod. Ha na-ekwu - Achọrọ m ibuga ndị dị otú ahụ na ndị dị otú ahụ pods n'ebe ahụ, na ndị dị otú ahụ na ndị dị otú ahụ oyiyi, na ndị dị otú ahụ na ndị dị otú ahụ quantities.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Na mgbakwunye, anyị chọpụtara na anyị achọghị iji aka mepụta ihe onwunwe nke ọ bụla: ntinye, ọrụ, Ingress, wdg. Kama, anyị chọrọ ịkọwa usoro anyị nke ọ bụla n'ihe gbasara Kubernetes n'oge a na-ebuga ya, ka anyị wee ghara iji aka megharịa ihe ndabere niile dị mkpa n'usoro ziri ezi. A họọrọ Helm dị ka usoro nke nyere anyị ohere ime nke a.

Echiche ndị bụ isi na Helm

Helm bụ njikwa ngwugwu maka Kubernetes. Ọ yikwara ka ndị njikwa ngwugwu n'asụsụ mmemme si arụ ọrụ. Ha na-enye gị ohere ịchekwa ọrụ nke gụnyere, dịka ọmụmaatụ, nginx na-ebugharị, ntinye php-fpm, nhazi maka Ingress, configmaps (nke a bụ ihe na-enye gị ohere ịtọ env na parampat ndị ọzọ maka sistemụ gị) n'ụdị so- akpọrọ chaatị. N'otu oge ahụ Helm na-agba ọsọ n'elu Kubernetes. Ya bụ, nke a abụghị ụdị sistemụ guzoro n'akụkụ, kama ọ bụ naanị ọrụ ọzọ ewepụtara n'ime cube. Ị na-emekọrịta ya site na API ya site na iwu njikwa. Ọ dị mma na ịma mma ya bụ na ọbụlagodi ma ọ bụrụ na okpu agbaji ma ọ bụ wepụ ya na ụyọkọ ahụ, ọrụ gị agaghị apụ apụ, ebe ọ bụ na hel na-eje ozi naanị ịmalite usoro ahụ. Kubernetes n'onwe ya na-ahụ maka arụmọrụ na ọnọdụ ọrụ.

Anyị chọpụtakwara nke ahụ ndebiri, nke a manyere anyị na mbụ ime onwe anyị site n'iwebata jinja n'ime nhazi anyị, bụ otu n'ime ihe ndị bụ isi nke helm. A na-echekwa nhazi niile ị mepụtara maka sistemụ gị n'ụdị ndebiri, dị ka jinja, mana, n'ezie, na-eji templating nke asụsụ Go, nke e dere okpu agha, dị ka Kubernetes.

Helm na-agbakwunyere anyị echiche ole na ole ọzọ.

Chart - nke a bụ nkọwa ọrụ gị. Na ndị njikwa ngwugwu ndị ọzọ, a ga-akpọ ya ngwugwu, ngwugwu ma ọ bụ ihe yiri ya. Ebe a ka a na-akpọ chaatị.

Ụkpụrụ bụ mgbanwe ndị ịchọrọ iji wuo nhazi gị site na ndebiri.

ntọhapụ. Oge ọ bụla ọrụ etinyere na-eji helm na-enweta ụdị ntọhapụ agbakwunyere. Helm na-echeta ihe nhazi ọrụ dị na ntọhapụ gara aga, ntọhapụ tupu nke ahụ, na ihe ndị ọzọ. Ya mere, ọ bụrụ na ịchọrọ ịtụgharịghachi azụ, mee naanị usoro oku ịkpọghachi azụ, na-atụ ya aka na ụdị ntọhapụ gara aga. Ọbụlagodi na nhazi ya kwekọrọ na ebe nchekwa gị adịghị n'oge nlọghachi azụ, helm ka ga-echeta ihe ọ bụ na ọ ga-atụgharị sistemụ gị gaa na steeti ọ nọ na ntọhapụ gara aga.

N'okwu ahụ mgbe anyị na-eji helm, nhazi oge niile maka Kubernetes na-aghọkwa ndebiri nke enwere ike iji mgbanwe, ọrụ, na itinye nkwupụta ọnọdụ. Otu a ị nwere ike ịnakọta nhazi ọrụ gị dabere na gburugburu ebe obibi.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Na omume, anyị kpebiri ime ihe dịtụ iche karịa ka anyị na Nomad mere. Ọ bụrụ n'ime Nomad ma a na-echekwa configs na n-variables nke achọrọ iji buo ọrụ anyị n'otu ebe nchekwa, ebe a anyị kpebiri ikewa ha ụzọ abụọ dị iche iche. Ebe nchekwa “deploy” na-echekwa naanị n-variables achọrọ maka ibuga, yana ebe nchekwa “helm” na-echekwa nhazi ma ọ bụ eserese.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Gịnị ka nke a nyere anyị?

N'agbanyeghị eziokwu na anyị adịghị echekwa ọ bụla n'ezie mmetụta data na nhazi faịlụ onwe ha. Dịka ọmụmaatụ, okwuntughe na ọdụ data. A na-echekwa ha dị ka ihe nzuzo na Kubernetes, mana agbanyeghị, a ka nwere ihe ụfọdụ anyị na-achọghị inye onye ọ bụla ohere. Ya mere, ịnweta ebe nchekwa "deploy" dị oke karịa, ebe nchekwa "helm" nwere nanị nkọwa nke ọrụ ahụ. N'ihi nke a, ọtụtụ ndị mmadụ nwere ike ịnweta ya n'enweghị nsogbu.

Ebe ọ bụ na anyị nwere ọ bụghị naanị mmepụta, kamakwa gburugburu ndị ọzọ, ekele maka nkewa a, anyị nwere ike iji chaatị helm mee ihe iji tinye ọrụ ọ bụghị naanị maka mmepụta, kamakwa, dịka ọmụmaatụ, na gburugburu QA. Ọbụna iji bugharịa ha na mpaghara Minikube - nke a bụ ihe na-agba ọsọ Kubernetes na mpaghara.

N'ime ebe nchekwa ọ bụla, anyị hapụrụ nkewa n'ime akwụkwọ ndekọ aha dị iche iche maka ọrụ ọ bụla. Ya bụ, n'ime akwụkwọ ndekọ aha ọ bụla, e nwere ndebiri metụtara eserese kwekọrọ na ịkọwa ihe onwunwe ndị a ga-ebuga iji mee ka usoro anyị rụọ ọrụ. Anyị hapụrụ naanị envs na ebe nchekwa "deploy". N'okwu a, anyị ejighị templating jiri jinja, n'ihi na helm n'onwe ya na-enye templating nke igbe - nke a bụ otu n'ime isi ọrụ ya.

Anyị hapụrụ script nsonye - deploy.sh, nke na-eme ka ọ dị mfe ma na-ahazi mmalite maka mbugharị site na iji helm. Yabụ, maka onye ọ bụla chọrọ ibuga, ihe nrụnye ọrụ na-adị ka ọ dị ka ọ na-ebuga ya na Nomad. Otu deploy.sh, aha ọrụ gị, yana ebe ịchọrọ ibunye ya. Nke a na-eme ka hel malite n'ime. Ya, n'aka nke ya, na-anakọta configs site na ndebiri, tinye faịlụ ụkpụrụ dị mkpa n'ime ha, na-ebuga ha, na-ebuga ha na Kubernetes.

Nchoputa

Ọrụ Kubernetes yiri ka ọ dị mgbagwoju anya karịa Nomad.

Na-ebuga ngwa na VM, Nomad na Kubernetes

Ebe a okporo ụzọ na-apụ apụ na-abịa na Ingress. Nke a bụ naanị njikwa ihu, nke na-eweghara arịrịọ niile wee ziga ha na ọrụ ndị kwekọrọ data arịrịọ. Ọ na-ekpebi ha dabere na configs bụ akụkụ nke nkọwa nke ngwa gị na hel na ndị mmepe setịpụrụ n'onwe ha. Ọrụ ahụ na-eziga arịrịọ na pọd ya, ya bụ, arịa dị iche iche, na-edozi okporo ụzọ na-abata n'etiti akpa niile nke ọrụ a. Na, n'ezie, anyị ekwesịghị ichefu na anyị ekwesịghị ịga ebe ọ bụla site na nchekwa na ọkwa netwọk. Ya mere, nkewa na-arụ ọrụ na ụyọkọ Kubernetes, nke dabere na mkpado. Ọrụ niile nwere mkpado ụfọdụ nke ejikọrọ ikike ịnweta ọrụ ụfọdụ akụrụngwa mpụga/ime n'ime ma ọ bụ n'èzí ụyọkọ ahụ.

Ka anyị na-eme mgbanwe ahụ, anyị hụrụ na Kubernetes nwere ikike niile nke Nomad, nke anyị jibu mee ihe, ma tinyekwa ọtụtụ ihe ọhụrụ. Enwere ike ịgbasa ya site na plugins, na n'ezie site na ụdị akụrụngwa omenala. Ya bụ, ị nwere ohere ọ bụghị naanị iji ihe na-abịa na Kubernetes site na igbe ahụ, kama ịmepụta ihe onwunwe na ọrụ nke gị nke ga-agụ ihe onwunwe gị. Nke a na-enye gị nhọrọ ndị ọzọ iji gbasaa sistemụ gị na-enweghị ịwụnye Kubernetes na-achọghị mgbanwe.

Otu ihe atụ nke ojiji a bụ Prometheus, nke na-agba n'ime ụyọkọ Kubernetes anyị. Ka ọ malite ịnakọta metrics site na otu ọrụ, anyị kwesịrị ịgbakwunye ụdị akụ ọzọ, ihe a na-akpọ nlekota ọrụ, na nkọwa ọrụ. Prometheus, n'ihi n'eziokwu na ọ nwere ike ịgụ ụdị akụrụngwa omenala mgbe emebere ya na Kubernetes, na-amalite na-anakọta metrics na sistemụ ọhụrụ. Ọ dabara nke ọma.

Mbugharị mbụ anyị mere na Kubernetes bụ na Machị 2018. Na n'oge a, ọ dịghị mgbe anyị nwetara nsogbu ọ bụla na ya. Ọ na-arụ ọrụ nke ọma na-enweghị nnukwu ahụhụ. Na mgbakwunye, anyị nwere ike ịgbasawanye ya. Taa, anyị nwere ezuru ike nke o nwere, na anyị nwere mmasị n'ezie ijeụkwụ mmepe nke Kubernetes. Ugbu a, ihe karịrị arịa 3000 dị na Kubernetes. Ụyọkọ ahụ nwere ọtụtụ Nodes. N'otu oge ahụ, ọ na-eje ozi, kwụsie ike na nke ukwuu ịchịkwa.

isi: www.habr.com

Tinye a comment