Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Is e a’ chiad cheum de bhith a’ cleachdadh gu Kubernetes an tagradh agad a chuir ann an soitheach. San t-sreath seo, seallaidh sinn ri mar as urrainn dhut ìomhaigh soitheach beag, tèarainte a chruthachadh.
Taing do Docker, cha robh e a-riamh cho furasta ìomhaighean container a chruthachadh. Sònraich ìomhaigh bunaiteach, cuir ris na h-atharrachaidhean agad, agus cruthaich soitheach.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Ged a tha an dòigh seo math airson tòiseachadh, faodaidh cleachdadh ìomhaighean bunaiteach leantainn gu obair neo-shàbhailte le ìomhaighean mòra làn so-leòntachd.

A bharrachd air an sin, bidh a’ mhòr-chuid de dh’ ìomhaighean ann an Docker a’ cleachdadh Debian no Ubuntu airson an ìomhaigh bhunaiteach, agus ged a tha seo a’ toirt seachad co-chòrdalachd sàr-mhath agus gnàthachadh furasta (chan eil faidhle Docker a’ toirt ach dà loidhne de chòd), faodaidh ìomhaighean bunaiteach na ceudan megabytes de luchd a bharrachd a chur ris a’ ghobhar agad. Mar eisimpleir, tha faidhle node.js sìmplidh airson tagradh Go “hello-world” timcheall air 700 megabytes, fhad ‘s nach eil an tagradh agad ach beagan megabytes ann am meud.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Mar sin tha an t-uallach obrach a bharrachd seo na sgudal air àite didseatach agus na àite falaich math airson so-leòntachd tèarainteachd agus biastagan. Mar sin leig dhuinn sùil a thoirt air dà dhòigh air meud ìomhaigh container a lughdachadh.

Is e a’ chiad fhear cleachdadh ìomhaighean beaga bunaiteach, is e an dàrna fear cleachdadh Pàtran Togail. Is dòcha gur e cleachdadh ìomhaighean bunaiteach nas lugha an dòigh as fhasa air meud an t-soithich agad a lughdachadh. Nas coltaiche, tha an cànan no an stac a tha thu a 'cleachdadh a' toirt seachad ìomhaigh tagraidh tùsail a tha mòran nas lugha na an ìomhaigh àbhaisteach. Bheir sinn sùil air ar soitheach node.js.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Gu gnàthach ann an Docker, is e an nód: meud ìomhaigh bonn 8 670 MB, agus an nód: chan eil meud ìomhaigh 8-alpach ach 65 MB, is e sin, 10 tursan nas lugha. Le bhith a’ cleachdadh an ìomhaigh bonn Alpach nas lugha, lughdaichidh tu gu mòr meud an t-soithich agad. Is e cuairteachadh Linux beag agus aotrom a th’ ann an Alpach a tha mòr-chòrdte am measg luchd-cleachdaidh Docker leis gu bheil e co-chòrdail ri mòran thagraidhean fhad ‘s a chumas iad soithichean beag. Eu-coltach ri ìomhaigh àbhaisteach Docker “node”, bidh “node:alpine” a’ toirt air falbh mòran de fhaidhlichean seirbheis agus phrògraman, a’ fàgail dìreach an fheadhainn a tha gu leòr airson an tagradh agad a ruith.

Gus gluasad gu ìomhaigh bhunaiteach nas lugha, dìreach ùraich an Dockerfile gus tòiseachadh air obrachadh leis an ìomhaigh bhunaiteach ùr:

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

A-nis, eu-coltach ris an t-seann ìomhaigh togail, feumaidh tu do chòd a chopaigeadh a-steach don ghobhar agus eisimeileachd sam bith a chuir a-steach. Ann an Dockerfile ùr, bidh an soitheach a’ tòiseachadh le nód: ìomhaigh alpach, an uairsin a’ cruthachadh eòlaire airson a’ chòd, a’ stàladh eisimeileachd a’ cleachdadh manaidsear pacaid NPM, agus mu dheireadh a’ ruith server.js.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Mar thoradh air an ùrachadh seo bidh soitheach a tha 10 tursan nas lugha ann am meud. Mura h-eil comas lughdachadh ìomhaigh bunaiteach aig a’ chànan prògramaidh no an stac agad, cleachd Alpine Linux. Bheir e cuideachd an comas làn riaghladh a dhèanamh air susbaint an t-soithich. Tha cleachdadh ìomhaighean beaga bunaiteach na dhòigh math air soithichean beaga a chruthachadh gu sgiobalta. Ach faodar eadhon lughdachadh nas motha a choileanadh le bhith a’ cleachdadh Pàtran Togail.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Ann an cànanan eadar-mhìneachaidh, thèid an còd tùsail a chuir chun eadar-theangair an toiseach agus an uairsin a chuir gu bàs gu dìreach. Ann an cànanan cruinnichte, thèid an còd tùsail atharrachadh gu còd cruinnichte an toiseach. Ach, bidh cruinneachadh gu tric a’ cleachdadh innealan nach eil a dhìth gus an còd a ruith. Tha seo a’ ciallachadh gun urrainn dhut na h-innealan sin a thoirt air falbh gu tur bhon ghobhar mu dheireadh. Faodaidh tu Builder Pattern a chleachdadh airson seo.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Tha an còd air a chruthachadh anns a 'chiad bhogsa agus air a chur ri chèile. Tha an còd cruinnichte an uairsin air a phacaigeadh a-steach do shoitheach deireannach às aonais an luchd-cruinneachaidh agus na h-innealan a dh’ fheumar gus an còd sin a chuir ri chèile. Feuch an ruith sinn tagradh Go tron ​​​​phròiseas seo. An toiseach, gluaisidh sinn bhon ìomhaigh onbuild gu Alpine Linux.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Anns an Dockerfile ùr, bidh an soitheach a’ tòiseachadh le ìomhaigh golang:alpach. Bidh e an uairsin a’ cruthachadh eòlaire airson a’ chòd, ga chopaigeadh a-steach don chòd stòr, a’ togail a’ chòd stòr sin, agus a’ ruith an aplacaid. Tha an soitheach seo tòrr nas lugha na an soitheach air togail, ach tha an inneal-cruinneachaidh agus innealan Go eile ann fhathast nach eil a dhìth oirnn. Mar sin leig leinn dìreach am prògram cruinnichte a thoirt a-mach agus a chuir anns a’ ghobhar aige fhèin.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Is dòcha gu mothaich thu rudeigin neònach san fhaidhle Docker seo: tha dà loidhne FROM ann. Tha a’ chiad earrann loidhne 4 a’ coimhead dìreach mar a tha an Dockerfile roimhe ach a-mhàin gu bheil e a’ cleachdadh am prìomh fhacal AS gus an ìre seo ainmeachadh. Tha loidhne ùr FROM anns an ath earrann gus ìomhaigh ùr a thòiseachadh, far an àite an ìomhaigh golang:alpach cleachdaidh sinn Raw alpach mar an ìomhaigh bhunaiteach.

Chan eil teisteanasan SSL aig Raw Alpine Linux air an cur a-steach, a dh’ adhbhraicheas a’ mhòr-chuid de ghlaodhan API thairis air HTTPS, mar sin stàlaich sinn cuid de theisteanasan root CA.

A-nis thig am pàirt spòrsail: gus an còd cruinnichte a chopaigeadh bhon chiad ghobhar chun dàrna fear, faodaidh tu dìreach an àithne COPY a tha suidhichte air loidhne 5 den dàrna earrann a chleachdadh. Cha dèan e lethbhreac ach aon fhaidhle tagraidh agus cha toir e buaidh air innealan Go utility. Anns an fhaidhle Docker ioma-ìre ùr bidh ìomhaigh container nach eil ach 12 megabytes ann am meud, an taca ris an ìomhaigh container tùsail a bha 700 megabytes, a tha na eadar-dhealachadh mòr!
Mar sin tha cleachdadh ìomhaighean beaga bunaiteach agus Builder Pattern nan dòighean math air soithichean mòran nas lugha a chruthachadh gun mòran obrach.
Tha e comasach, a rèir stac an tagraidh, gu bheil dòighean a bharrachd ann airson ìomhaigh agus meud soitheach a lughdachadh, ach a bheil buannachd a ghabhas tomhas aig soithichean beaga? Bheir sinn sùil air dà raon far a bheil soithichean beaga air leth èifeachdach - coileanadh agus tèarainteachd.

Gus measadh a dhèanamh air an àrdachadh coileanaidh, smaoinich air fad a 'phròiseas a bhith a' cruthachadh soitheach, ga chuir a-steach don chlàr (putadh), agus an uairsin ga thoirt air ais às an sin (tarraing). Chì thu gu bheil buannachd shònraichte aig soitheach nas lugha thairis air soitheach nas motha.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Bidh Docker a’ tasgadh na sreathan gus am bi togail às deidh sin gu math luath. Ach, chan eil mòran de shiostaman CI a thathas a’ cleachdadh airson soithichean a thogail agus deuchainn a dhèanamh a’ cumail sreathan, agus mar sin tha sàbhalaidhean mòra ùine ann. Mar a chì thu, tha an ùine airson soitheach mòr a thogail, a rèir cumhachd an inneil agad, bho 34 gu 54 diogan, agus nuair a bhios tu a ’cleachdadh soitheach air a lughdachadh le bhith a’ cleachdadh Pàtran Builder - bho 23 gu 28 diogan. Airson gnìomhachd den t-seòrsa seo, bidh an àrdachadh cinneasachd 40-50%. Mar sin dìreach smaoinich air cia mheud uair a thogas tu agus a nì thu deuchainn air do chòd.

Às deidh don ghobhar a bhith air a thogail, feumaidh tu an ìomhaigh aige a phutadh (putadh air ìomhaigh an t-soithich) a-steach don chlàr container gus an urrainn dhut an uairsin a chleachdadh anns a ’chruinneachadh Kubernetes agad. Tha mi a’ moladh a bhith a’ cleachdadh Clàr-gleidhidh Google.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Le Google Container Registry (GCR), cha phàigh thu ach airson stòradh amh agus lìonrachadh, agus chan eil cosgaisean riaghlaidh soithichean a bharrachd ann. Tha e prìobhaideach, tèarainte agus gu math luath. Bidh GCR a’ cleachdadh mòran chleasan gus an obair tarraing a luathachadh. Mar a chì thu, bheir cuir a-steach inneal Ìomhaigh Docker Container Image a ’cleachdadh go:onbuild bho 15 gu 48 diogan, a rèir coileanadh a’ choimpiutair, agus bheir an aon obrachadh le inneal nas lugha bho 14 gu 16 diogan, agus airson innealan nach eil cho cinneasach. tha buannachd ann an astar obrachaidh ag àrdachadh 3 tursan. Airson innealan nas motha, tha an ùine timcheall air an aon rud, leis gu bheil GCR a’ cleachdadh tasgadan cruinne airson stòr-dàta co-roinnte de dhealbhan, a’ ciallachadh nach fheum thu an luchdachadh idir. Ann an coimpiutair le cumhachd ìosal, is e an CPU am botail, agus mar sin tha a’ bhuannachd a bhith a’ cleachdadh soithichean beaga tòrr nas motha an seo.

Ma tha thu a’ cleachdadh GCR, tha mi a’ moladh gu mòr a bhith a’ cleachdadh Google Container Builder (GCB) mar phàirt den t-siostam togail agad.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Mar a chì thu, leigidh a chleachdadh leat toraidhean fada nas fheàrr a choileanadh ann a bhith a’ lughdachadh fad gnìomhachd Build + Push na eadhon inneal cinneasach - anns a ’chùis seo, tha am pròiseas togail agus cur shoithichean chun aoigh air a luathachadh faisg air 2 uair. . A bharrachd air an sin, gheibh thu 120 mionaid togail an-asgaidh gach latha, a tha a’ còmhdach na feumalachdan togail shoithichean agad sa mhòr-chuid de chùisean.

An ath rud thig am meatrach coileanaidh as cudromaiche - astar faighinn air ais, no luchdachadh sìos, soithichean Tarraing. Agus mura h-eil mòran dragh agad mun ùine a thathar a’ cosg air obair putadh, tha fad a’ phròiseas tarraing a’ toirt buaidh mhòr air coileanadh iomlan an t-siostaim. Canaidh sinn gu bheil cruinneachadh de thrì nodan agad agus tha aon dhiubh a’ fàiligeadh. Ma tha thu a’ cleachdadh siostam riaghlaidh leithid Google Kubernetes Engine, cuiridh e fear ùr an àite an nód marbh gu fèin-ghluasadach. Ach, bidh an nód ùr seo gu tur falamh agus feumaidh tu na soithichean agad gu lèir a shlaodadh a-steach ann gus an tòisich e ag obair. Ma bheir an obair tarraing fada gu leòr, ruithidh do bhuidheann aig coileanadh nas ìsle fad na h-ùine.

Tha iomadh cùis ann far am faod seo tachairt: a’ cur nód ùr ri brabhsair, ag ùrachadh nodan, no eadhon ag atharrachadh gu soitheach ùr airson a chleachdadh. Mar sin, bidh lughdachadh ùine tarraing às na phrìomh fheart. Chan urrainnear a ràdh gu bheil inneal beag a’ luchdachadh sìos tòrr nas luaithe na fear mòr. Ma tha thu a’ ruith grunn shoithichean ann an cruinneachadh Kubernetes, faodaidh na sàbhalaidhean ùine a bhith cudromach.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Thoir sùil air a’ choimeas seo: bheir obair tarraing air soithichean beaga 4-9 tursan nas lugha de ùine, a rèir cumhachd an inneil, na an aon obrachadh a’ cleachdadh go:onbuild. Le bhith a’ cleachdadh ìomhaighean co-roinnte, bonn soithichean beaga bidh sin gu mòr a’ luathachadh na h-ùine agus an astar aig am faodar nodan Kubernetes ùra a chleachdadh agus tighinn air-loidhne.

Bheir sinn sùil air cùis tèarainteachd. Thathas den bheachd gu bheil soithichean nas lugha tòrr nas sàbhailte na feadhainn nas motha leis gu bheil uachdar ionnsaigh nas lugha aca. A bheil e dha-rìribh? Is e aon de na feartan as fheumaile ann an Google Container Registry an comas na soithichean agad a sganadh gu fèin-ghluasadach airson so-leòntachd. O chionn beagan mhìosan chruthaich mi an dà chuid soithichean air togail agus ioma-ìre, mar sin chì sinn a bheil so-leòntachd sam bith an sin.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Tha an toradh iongantach: cha deach ach 3 so-leòntachd meadhanach a lorg ann an soitheach beag, agus chaidh 16 so-leòntachd èiginneach agus 376 so-leòntachd eile a lorg ann an soitheach mòr. Ma choimheadas sinn air susbaint soitheach mòr, chì sinn nach eil gnothach aig a’ mhòr-chuid de na duilgheadasan tèarainteachd ris an tagradh againn, ach gu bheil iad co-cheangailte ri prògraman nach bi sinn eadhon a’ cleachdadh. Mar sin nuair a bhios daoine a’ bruidhinn mu uachdar ionnsaigh mòr, is e sin a tha iad a’ ciallachadh.

Kubernetes cleachdaidhean as fheàrr a. A 'cruthachadh soithichean beaga

Tha an takeaway soilleir: tog soithichean beaga oir tha iad a’ toirt fìor bhuannachdan coileanaidh agus tèarainteachd don t-siostam agad.

Kubernetes cleachdaidhean as fheàrr a. Buidheann Kubernetes le ainmean-àite

Cuid de shanasan 🙂

Tapadh leibh airson fuireach còmhla rinn. An toil leat na h-artaigilean againn? A bheil thu airson susbaint nas inntinniche fhaicinn? Thoir taic dhuinn le bhith a’ cur òrdugh no a’ moladh do charaidean, sgòth VPS airson luchd-leasachaidh bho $4.99, analog sònraichte de luchd-frithealaidh ìre inntrigidh, a chaidh a chruthachadh leinn dhut: An fhìrinn gu lèir mu VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps bho $ 19 no ciamar a roinn thu frithealaiche? (ri fhaighinn le RAID1 agus RAID10, suas ri 24 cores agus suas ri 40GB DDR4).

Dell R730xd 2x nas saoire ann an ionad dàta Equinix Tier IV ann an Amsterdam? A-mhàin an seo 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV bho $199 anns an Òlaind! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - bho $99! Leugh mu dheidhinn Ciamar a thogail bun-structair Corp. clas le bhith a’ cleachdadh frithealaichean Dell R730xd E5-2650 v4 luach 9000 iùro airson sgillinn?

Source: www.habr.com

Cuir beachd ann