ProHoster > Blog > Rianachd > Cleachd tagraidhean thairis air grunn chlàran Kubernetes le Helm
Cleachd tagraidhean thairis air grunn chlàran Kubernetes le Helm
Mar a bhios Dailymotion a’ cleachdadh Kubernetes: Cleachdadh Iarrtais
Thòisich sinn aig Dailymotion a’ cleachdadh Kubernetes ann an cinneasachadh 3 bliadhna air ais. Ach tha e spòrsail a bhith a’ cleachdadh thagraidhean thairis air grunn bhuidhnean, agus mar sin thar nam beagan bhliadhnaichean a dh’ fhalbh tha sinn air a bhith a’ feuchainn ris na h-innealan agus na sruthan-obrach againn a leasachadh.
Càite an tòisich e
An seo còmhdaichidh sinn mar a chleachdas sinn na tagraidhean againn thairis air grunn bhuidhnean Kubernetes air feadh an t-saoghail.
Gus iomadh rud Kubernetes a chleachdadh aig an aon àm, bidh sinn a’ cleachdadh Helm, agus tha na clàran againn uile air an stòradh ann an aon stòr git. Gus stac tagraidh slàn a chleachdadh bho ghrunn sheirbheisean, bidh sinn a’ cleachdadh a’ chairt geàrr-chunntas ris an canar. Gu bunaiteach, is e clàr a tha seo a dhearbhas eisimeileachd agus a leigeas leat an API agus na seirbheisean aige a thòiseachadh le aon àithne.
Sgrìobh sinn cuideachd sgriobt Python beag air mullach Helm gus sgrùdaidhean a dhèanamh, clàran a chruthachadh, dìomhaireachdan a chuir ris, agus tagraidhean a chuir an sàs. Tha na gnìomhan sin uile air an coileanadh air àrd-ùrlar CI sa mheadhan a’ cleachdadh ìomhaigh docker.
Rachamaid chun a 'phuing.
Thoir an aire. Mar a bhios tu a’ leughadh seo, chaidh a’ chiad thagraiche fuasglaidh airson Helm 3 ainmeachadh mar-thà. Anns a’ phrìomh dhreach tha grunn leasachaidhean gus dèiligeadh ri cuid de na cùisean air an do thachair sinn san àm a dh’ fhalbh.
Sruth-obrach leasachadh cairt
Bidh sinn a’ cleachdadh branching airson tagraidhean, agus chuir sinn romhainn an aon dòigh-obrach a chleachdadh airson clàran.
Meur dev air a chleachdadh gus clàran a chruthachadh a thèid a dhearbhadh air cruinneachaidhean leasachaidh.
Nuair a thèid iarrtas tarraing a chuir a-steach gu mhaighstir, tha iad air an sgrùdadh ann an àrd-ùrlar.
Mu dheireadh, bidh sinn a 'cruthachadh iarrtas tarraing gus na h-atharrachaidhean a dhèanamh air a' mheur prod agus cuir an sàs iad ann an riochdachadh.
Tha a stòr prìobhaideach fhèin aig gach àrainneachd a bhios a’ stòradh ar clàran, agus a bhios sinn a’ cleachdadh Taigh-tasgaidh Chart le APIan glè fheumail. San dòigh seo bidh sinn a’ dèanamh cinnteach à aonaranachd teann eadar àrainneachdan agus deuchainn fìor air clàran mus cleachd sinn iad ann an cinneasachadh.
Clàr-stòraidhean ann an diofar àrainneachdan
Is fhiach a bhith mothachail, nuair a bhios luchd-leasachaidh a’ putadh meur dev, gu bheil dreach den chairt aca air a phutadh gu fèin-ghluasadach chun dev Chartmuseum. Mar sin, bidh a h-uile leasaiche a’ cleachdadh an aon stòr dev, agus feumaidh tu an dreach agad den chairt a shònrachadh gu faiceallach gus nach cleachd thu atharrachaidhean cuideigin eile gun fhiosta.
A bharrachd air an sin, tha an sgriobt Python beag againn a’ dearbhadh nithean Kubernetes an aghaidh mion-chomharrachadh Kubernetes OpenAPI a’ cleachdadh Ciùbhail, mus foillsich iad air Chartmusem.
Tuairisgeul coitcheann air sruth-obrach leasachadh cairt
A’ putadh ìomhaigh docker le innealan Python a bhios a’ cleachdadh ar tagraidhean.
A’ stèidheachadh na h-àrainneachd le ainm meur.
A’ dearbhadh faidhlichean Kubernetes yaml a’ cleachdadh Kubeval.
Meudaich gu fèin-ghluasadach an dreach de chairt agus na clàran phàrant aige (clàran a tha an urra ris a’ chairt atharrachadh).
A’ cur a-steach cairt gu Taigh-tasgaidh Chart a tha a rèir na h-àrainneachd aige
A’ riaghladh eadar-dhealachaidhean thar bhuidhnean
Caidreachas nam buidhnean
Bha àm ann nuair a chleachd sinn co-bhanntachd de bhuidhnean Kubernetes, far an gabhadh nithean Kubernetes ainmeachadh bho aon cheann-uidhe API. Ach dh'èirich duilgheadasan. Mar eisimpleir, cha b’ urrainn cuid de stuthan Kubernetes a bhith air an cruthachadh ann am puing crìochnachaidh a’ cho-chaidreachais, ga dhèanamh duilich nithean aonaichte agus nithean eile a chumail airson cruinneachaidhean fa leth.
Gus an duilgheadas fhuasgladh, thòisich sinn air na cruinneachaidhean a riaghladh gu neo-eisimeileach, a rinn am pròiseas gu mòr nas sìmplidhe (chleachd sinn a ’chiad dreach den chaidreachas; is dòcha gu robh rudeigin air atharrachadh san dàrna fear).
Àrd-ùrlar geo-sgaoileadh
Tha an àrd-ùrlar againn an-dràsta air a sgaoileadh thairis air roinnean 6 - 3 gu h-ionadail agus 3 san sgòth.
Sgaoileadh Sgaoilte
Luachan Global Helm
Leigidh 4 luachan Helm cruinne dhut eadar-dhealachaidhean eadar cruinneachaidhean aithneachadh. Tha luachan as ìsle bunaiteach aig a h-uile clàr againn.
Bidh na luachan sin a’ cuideachadh le bhith a’ mìneachadh co-theacsa nan tagraidhean againn agus tha iad air an cleachdadh airson diofar adhbharan: sgrùdadh, lorg, logadh, dèanamh fiosan bhon taobh a-muigh, sgèileadh, msaa.
"sgòth": Tha àrd-ùrlar Kubernetes tar-chinealach againn. Mar eisimpleir, tha an API againn air a chleachdadh ann an sònaichean GCP agus anns na h-ionadan dàta againn.
"env": Faodaidh cuid de luachan atharrachadh airson àrainneachdan neo-riochdachaidh. Mar eisimpleir, mìneachaidhean ghoireasan agus rèiteachadh fèin-sgèile.
“sgìre”: Cuidichidh am fiosrachadh seo le bhith a’ dearbhadh far a bheil a’ bhuidheann agus faodar a chleachdadh gus cinn-uidhe faisg air làimh airson seirbheisean taobh a-muigh a dhearbhadh.
"clusterName": ma tha agus cuin a tha sinn airson luach a mhìneachadh airson brabhsair fa leth.
Seo eisimpleir sònraichte:
{{/* Returns Horizontal Pod Autoscaler replicas for GraphQL*/}}
{{- define "graphql.hpaReplicas" -}}
{{- if eq .Values.global.env "prod" }}
{{- if eq .Values.global.region "europe-west1" }}
minReplicas: 40
{{- else }}
minReplicas: 150
{{- end }}
maxReplicas: 1400
{{- else }}
minReplicas: 4
maxReplicas: 20
{{- end }}
{{- end -}}
Eisimpleir Helm
Tha an loidsig seo air a mhìneachadh ann an teamplaid cuideachaidh gus bearradh Kubernetes YAML a sheachnadh.
Sanas Iarrtais
Tha na h-innealan cleachdadh againn stèidhichte air grunn fhaidhlichean YAML. Gu h-ìosal tha eisimpleir de mar a bhios sinn a’ foillseachadh seirbheis agus an topology sgèileachaidh (àireamh mac-samhail) ann am buidheann.
Seo geàrr-chunntas de na ceumannan a tha a’ mìneachadh ar sruth-obrach cleachdadh. Bidh an ceum mu dheireadh a’ cleachdadh an tagraidh gu grunn bhuidhnean luchd-obrach aig an aon àm.
Ceumannan cleachdadh Jenkins
Dè mu dheidhinn dìomhaireachdan?
A thaobh tèarainteachd, bidh sinn a’ cumail sùil air dìomhaireachdan bho dhiofar àiteachan agus gan stòradh ann an seilear gun samhail Bùrn ann am Paris.
Bidh na h-innealan cleachdadh againn a’ toirt a-mach luachan dìomhair bho Vault agus, nuair a thig an ùine cleachdadh, cuir a-steach iad ann an Helm.
Gus seo a dhèanamh, mhìnich sinn mapadh eadar na dìomhaireachdan ann an Vault agus na dìomhaireachdan a dh’ fheumas na tagraidhean againn:
Tha sinn air riaghailtean coitcheann a mhìneachadh ri leantainn nuair a bhios sinn a’ clàradh dìomhaireachdan ann an Vault.
Ma tha an dìomhair a 'buntainn gu co-theacs no buidheann sònraichte, feumaidh tu inntrigeadh sònraichte a chuir ris. (An seo tha luach fhèin aig a’ bhuidheann co-theacsa1 airson am facal-faire dìomhair stack-app1-password).
Mur eil, thèid an luach a chleachdadh gu gnàthach.
Airson gach nì san liosta seo ann an Kubernetes dìomhair tha paidhir luach-iuchrach air a chuir a-steach. Mar sin, tha an teamplaid dìomhair anns na clàran againn gu math sìmplidh.
A-nis tha sinn a 'sgaradh leasachadh chlàran agus iarrtasan. Tha seo a’ ciallachadh gum feum luchd-leasachaidh a bhith ag obair ann an dà stòr git: aon airson an tagraidh, agus aon airson a chleachdadh gu Kubernetes a mhìneachadh. Tha tasgaidhean 2 git a’ ciallachadh 2 shruth-obrach, agus tha e furasta dha newbie a bhith troimh-chèile.
Tha e na dhuilgheadas a bhith a’ riaghladh chlàran coitcheann
Mar a thuirt sinn mu thràth, tha clàran coitcheann glè fheumail airson a bhith a’ comharrachadh eisimeileachd agus a bhith a’ cleachdadh iomadh tagradh gu sgiobalta. Ach bidh sinn a 'cleachdadh --reuse-valuesgus nach tèid sinn seachad air na luachan gu lèir a h-uile uair a chleachdas sinn tagradh a tha mar phàirt den chairt choitcheann seo.
Ann an sruth-obrach lìbhrigidh leantainneach, chan eil againn ach dà luach a bhios ag atharrachadh gu cunbhalach: an àireamh de mhac-samhail agus an taga ìomhaigh (dreach). Tha luachan eile, nas seasmhaiche air an atharrachadh le làimh, agus tha seo gu math duilich. A bharrachd air an sin, faodaidh aon mhearachd ann a bhith a’ cleachdadh clàr coitcheann leantainn gu fìor fàilligidhean, mar a chunnaic sinn bhon eòlas againn fhìn.
Ag ùrachadh grunn fhaidhlichean rèiteachaidh
Nuair a chuireas leasaiche tagradh ùr ris, feumaidh e grunn fhaidhlichean atharrachadh: an dearbhadh tagraidh, an liosta de dhìomhaireachd, a’ cur an tagraidh ris mar eisimeileachd ma tha e air a ghabhail a-steach sa chairt choitcheann.
Tha ceadan Jenkins ro leudachadh ann an Vault
A-nis tha aon againn AppRole, a leughas na dìomhaireachdan uile bhon Vault.
Chan eil am pròiseas tilleadh air ais fèin-ghluasadach
Gus gluasad air ais, feumaidh tu an àithne a ruith air grunn chlàran, agus tha seo làn mhearachdan. Bidh sinn a’ coileanadh na h-obrach seo le làimh gus dèanamh cinnteach gu bheil an ID dreach ceart air a shònrachadh.
Tha sinn a’ gluasad a dh’ionnsaigh GitOps
Ar n-amas
Tha sinn airson a’ chairt a thilleadh gu stòr an tagraidh a bhios e a’ cleachdadh.
Bidh an sruth-obrach mar an ceudna ri leasachadh. Mar eisimpleir, nuair a thèid meur a phutadh gu maighstireachd, thèid an cleachdadh a chuir air adhart gu fèin-ghluasadach. Is e sin am prìomh eadar-dhealachadh eadar an dòigh-obrach seo agus an sruth-obrach gnàthach bidh a h-uile càil air a riaghladh ann an git (an tagradh fhèin agus an dòigh anns a bheil e air a chleachdadh ann an Kubernetes).
Tha grunn bhuannachdan ann:
Mòran nas soilleire airson an leasaiche. Tha e nas fhasa ionnsachadh mar a chuireas tu atharrachaidhean an sàs ann an clàr ionadail.
Faodar mìneachadh cleachdadh seirbheis a shònrachadh an aon àite ris a’ chòd seirbheis.
A 'riaghladh toirt air falbh clàran coitcheann. Bidh an sgaoileadh Helm fhèin aig an t-seirbheis. Leigidh seo leat cearcall-beatha an tagraidh a riaghladh (roll air ais, ùrachadh) aig an ìre as lugha, gus nach toir e buaidh air seirbheisean eile.
Buannachdan git airson stiùireadh clàir: cuir às do atharrachaidhean, log sgrùdaidh, msaa. Bidh an cleachdadh a’ tòiseachadh gu fèin-ghluasadach.
Is dòcha gum beachdaich thu air do shruth-obrach leasachaidh a leasachadh le innealan mar Sgeadaich, leis an urrainn do luchd-leasachaidh atharrachaidhean a dhearbhadh ann an co-theacsa faisg air cinneasachadh.
Imrich dà-cheum
Tha an luchd-leasachaidh againn air a bhith a’ cleachdadh an t-sruth-obrach seo airson 2 bhliadhna a-nis, agus mar sin tha sinn airson gum bi an imrich cho gun phian sa ghabhas. Mar sin, chuir sinn romhainn ceum eadar-mheadhanach a chuir ris an t-slighe chun an amas.
Tha a 'chiad ìre a tha sìmplidh:
Bidh sinn a’ cumail structar coltach ris airson cleachdadh thagraidhean a stèidheachadh, ach ann an aon nì ris an canar DailymotionRelease.
Sgaoileadh 1 airson gach tagradh (às aonais clàran coitcheann).
Clàran ann an stòr git an tagraidh.
Tha sinn air bruidhinn ris an luchd-leasachaidh air fad, agus mar sin tha am pròiseas imrich air tòiseachadh mar-thà. Tha a 'chiad ìre fhathast fo smachd a' cleachdadh an àrd-ùrlar CI. Sgrìobhidh mi post eile a dh’ aithghearr mu ìre a dhà: mar a ghluais sinn gu sruth-obrach GitOps le sruthadh. Innsidh mi dhut mar a shuidhich sinn a h-uile càil agus dè na duilgheadasan a choinnich sinn (ioma stòran, dìomhaireachdan, msaa). Lean na naidheachdan.
An seo tha sinn air feuchainn ri cunntas a thoirt air an adhartas a rinn sinn ann an sruth-obrach cleachdadh thagraidhean thairis air na bliadhnaichean a dh’ fhalbh, a lean gu smuaintean mu dhòigh-obrach GitOps. Chan eil sinn fhathast air an amas a ruighinn agus bheir sinn cunntas air na toraidhean, ach a-nis tha sinn cinnteach gun do rinn sinn an rud ceart nuair a chuir sinn romhainn a h-uile càil a dhèanamh nas sìmplidhe agus a thoirt nas fhaisge air cleachdaidhean luchd-leasachaidh.