Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Viktor Yagofarov is ainm dom, agus tá mé ag forbairt ardán Kubernetes ag DomClick mar bhainisteoir forbartha teicniúla ar fhoireann Ops (oibríocht). Ba mhaith liom labhairt faoi struchtúr ár bpróisis Dev Ops, na gnéithe a bhaineann le ceann de na braislí k8s is mó sa Rúis a oibriú, chomh maith leis na cleachtais DevOps / SRE a chuireann ár bhfoireann i bhfeidhm.

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Foireann Ops

Tá 15 duine ar fhoireann an Ops faoi láthair. Tá triúr acu freagrach as an oifig, oibríonn beirt i gcrios ama difriúil agus tá siad ar fáil, lena n-áirítear san oíche. Mar sin, bíonn duine ó OPs i gcónaí ag an monatóir agus réidh chun freagra a thabhairt ar theagmhas casta ar bith. Níl shifts oíche againn, rud a chaomhnaíonn ár psyche agus a thugann deis do gach duine go leor codlata a fháil agus am fóillíochta a chaitheamh, ní hamháin ar an ríomhaire.

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Tá inniúlachtaí éagsúla ag gach duine: líonraithe, DBAanna, speisialtóirí ELK stack, admins/forbróirí Kubernetes, monatóireacht, fíorúlú, speisialtóirí crua-earraí, etc. Aontaíonn rud amháin gach duine - is féidir le gach duine aon duine againn a athsholáthar go pointe áirithe: mar shampla, nóid nua a thabhairt isteach sa bhraisle k8s, nuashonraigh PostgreSQL, scríobh píblíne CI/CD + Insible, uathoibriú rud éigin i Python/Bash/Go, ceangail crua-earraí leis Lárionad sonraí. Ní chuireann inniúlachtaí láidre in aon réimse cosc ​​ort do threo gníomhaíochta a athrú agus tosú ag feabhsú i réimse éigin eile. Mar shampla, chuaigh mé isteach i gcuideachta mar speisialtóir PostgreSQL, agus anois is é mo phríomhréimse freagrachta ná braislí Kubernetes. Sa fhoireann, tá fáilte roimh aon airde agus tá an tuiscint ar ghiaráil an-fhorbartha.

Dála an scéil, táimid ag fiach. Tá riachtanais iarrthóirí measartha caighdeánach. Maidir liom féin go pearsanta, tá sé tábhachtach go n-oireann duine isteach san fhoireann, go bhfuil sé neamhchoimhlint, ach tá a fhios aige freisin conas a dhearcadh a chosaint, ba mhaith leis a fhorbairt agus nach bhfuil eagla air rud éigin nua a dhéanamh, cuireann a chuid smaointe ar fáil. Chomh maith leis sin, tá gá le scileanna ríomhchlárúcháin i dteangacha scriptithe, eolas ar bhunghnéithe Linux agus Béarla. Tá Béarla ag teastáil go simplí ionas gur féidir le duine i gcás fakap réiteach a fháil ar an bhfadhb i 10 soicind, agus ní i 10 nóiméad. Tá sé an-deacair anois speisialtóirí a aimsiú a bhfuil eolas domhain acu ar Linux: tá sé greannmhar, ach ní féidir le beirt as gach triúr iarrthóirí an cheist a fhreagairt “Cad is Meán Ualach ann? Cad as a bhfuil sé déanta?”, agus meastar go bhfuil an cheist “Conas croí-dhumpáil ó chlár C a chur le chéile” mar rud ó shaol na n-ollmen... nó dineasáir. Caithfimid cur suas leis seo, mar is gnách go mbíonn inniúlachtaí an-fhorbartha ag daoine, ach múinfimid Linux. Ní mór an freagra ar an gceist “cén fáth a gcaithfidh innealtóir DevOps a bheith ar an eolas faoi seo go léir i saol nua-aimseartha na scamaill” a fhágáil lasmuigh de raon feidhme an ailt, ach i dtrí fhocal: tá sé seo riachtanach.

Uirlisí Foirne

Tá ról suntasach ag foireann Uirlisí san uathoibriú. Is é an príomhthasc atá acu uirlisí grafacha agus CLI áisiúla a chruthú d'fhorbróirí. Mar shampla, ligeann ár gComhdháil um Fhorbairt Inmheánach duit feidhmchlár a rolladh amach go litriúil chuig Kubernetes gan ach cúpla cad a tharlaíonn nuair a luiche, a chuid acmhainní a chumrú, eochracha ón cruinneachán, etc. Roimhe seo, bhí Jenkins + Helm 2 ann, ach bhí orm mo uirlis féin a fhorbairt chun deireadh a chur le cóip-ghreamú agus aonfhoirmeacht a thabhairt do shaolré na mbogearraí.

Ní scríobhann foireann Ops píblínte d'fhorbróirí, ach is féidir leo comhairle a thabhairt ar aon saincheisteanna ina gcuid scríbhneoireachta (tá Helm 3 fós ag roinnt daoine).

DevOps

Maidir le DevOps, feicimid é mar seo:

Scríobhann foirne forbartha cód, rolladh amach é trí Confer to dev -> qa/stage -> prod. Is iad na foirne Forbartha agus OP atá freagrach as a chinntiú nach dtiocfaidh moill ar an gcód agus nach mbíonn earráidí ann. I rith an lae, ba cheart don duine atá ar dualgas ó fhoireann an OP freagra a thabhairt ar theagmhas lena iarratas ar dtús, agus sa tráthnóna agus san oíche, ba cheart don riarthóir atá ar dualgas (OPS) an forbróir atá ar dualgas a dhúiseacht má tá a fhios aige. cinnte nach bhfuil an fhadhb sa bhonneagar. Tá gach méadracht agus foláireamh i monatóireacht le feiceáil go huathoibríoch nó go leath-uathoibríoch.

Tosaíonn réimse freagrachta Ops ón nóiméad a dhéantar an t-iarratas a rolladh amach i dtáirgeadh, ach ní thagann deireadh le freagracht Dev ansin - déanaimid an rud céanna agus táimid sa bhád céanna.

Tugann forbróirí comhairle do riarthóirí má tá cabhair ag teastáil uathu chun microservice admin a scríobh (mar shampla, Go backend + HTML5), agus cuireann admins comhairle ar fhorbróirí maidir le haon saincheisteanna bonneagair nó saincheisteanna a bhaineann le k8s.

Dála an scéil, níl monolith againn ar chor ar bith, ach micrisheirbhísí. Athraíonn a n-uimhir go dtí seo idir 900 agus 1000 sa bhraisle prod k8s, má thomhaistear é de réir uimhreach imscaradh. Athraíonn líon na pods idir 1700 agus 2000. Faoi láthair tá thart ar 2000 pod sa bhraisle táirgí.

Ní féidir liom uimhreacha cruinne a thabhairt, ós rud é go ndéanaimid monatóireacht ar mhicrisheirbhísí neamhriachtanacha agus go ngearraimid amach iad go leath-uathoibríoch. Cuidíonn K8s linn súil a choinneáil ar aonáin nach bhfuil gá leo useless-oibreoir, rud a shábhálann go leor acmhainní agus airgead.

Bainistíocht acmhainní

Monatóireacht

Éiríonn monatóireacht dea-struchtúrtha agus faisnéiseach mar bhunchloch in oibriú braisle mhór. Níl réiteach uilíoch aimsithe againn go fóill a chlúdódh 100% de na riachtanais monatóireachta go léir, agus mar sin cruthaímid réitigh saincheaptha éagsúla go tréimhsiúil sa timpeallacht seo.

  • Zabbix. Monatóireacht mhaith d'aois, atá beartaithe go príomha chun riocht foriomlán an bhonneagair a rianú. Insíonn sé dúinn nuair a fhaigheann nód bás i dtéarmaí próiseála, cuimhne, dioscaí, líonra, agus mar sin de. Ní dhéanfaidh aon ní osnádúrtha, ach ní mór dúinn freisin DaemonSet gníomhairí ar leith, le cabhair ó, mar shampla, déanaimid monatóireacht ar staid DNS sa bhraisle: táimid ag lorg pods coredns dúr, seiceáilimid infhaighteacht na n-óstach seachtrach. Dhealródh sé gurb é an fáth a bhfuiltear ag cur isteach air seo, ach le líon mór tráchta is pointe tromchúiseach teipe é an chomhpháirt seo. mé cheana féin cur síos air, mar a bhí mé ag streachailt le feidhmíocht DNS i mbraisle.
  • Oibreoir Prometheus. Tugann sraith easpórtálaithe éagsúla forbhreathnú mór ar na comhpháirteanna uile den bhraisle. Ansin, déanaimid é seo go léir a shamhlú ar dheais mhóra i Grafana, agus bainimid úsáid as bainisteoir foláirimh le haghaidh foláirimh.

Uirlis úsáideach eile dúinn a bhí liosta-iontráil. Scríobhamar é tar éis dúinn arís agus arís eile teacht ar chás inar sháraigh foireann amháin cosáin Ingress fhoireann eile, rud a d’fhág earráidí 50x. Anois sula n-imscartar chuig táirgeadh, seiceann na forbróirí nach gcuirfear isteach ar aon duine, agus do mo fhoireann is uirlis mhaith é seo le haghaidh diagnóis tosaigh fadhbanna le Ingresses. Tá sé greannmhar gur scríobhadh é do riarthóirí ar dtús agus bhí cuma “clumsy” air, ach tar éis do na foirne dev titim i ngrá leis an uirlis, d’athraigh sé go mór agus thosaigh sé ag breathnú cosúil le “rinne riarthóir aghaidh gréasáin do riarthóirí. ” Go gairid déanfaimid an uirlis seo a thréigean agus déanfar cásanna den sórt sin a bhailíochtú fiú sula gcuirfear an píblíne i bhfeidhm.

Acmhainní foirne sa Chiúb

Sula dtugaimid isteach ar na samplaí, is fiú a mhíniú conas a leithdháilimid acmhainní dó micreasheirbhísí.

A thuiscint cé na foirne agus cé na méideanna a úsáideann a gcuid acmhainní (próiseálaí, cuimhne, SSD áitiúil), leithdháileann muid gach ordú a chuid féin ainmneacha sa “Ciúb” agus teorainn a chur lena chumais uasta i dtéarmaí próiseálaí, cuimhne agus diosca, tar éis riachtanais na bhfoirne a phlé roimhe seo. Dá réir sin, ní chuirfidh ordú amháin, go ginearálta, bac ar an mbraisle iomlán lena imscaradh, ag leithdháileadh na mílte croíleacáin agus terabytes cuimhne. Deonaítear rochtain ar ainmspás trí AD (úsáidimid RBAC). Cuirtear spásanna ainm agus a dteorainneacha leis trí iarratas tarraingte chuig an stór GIT, agus ansin déantar gach rud a rolladh amach go huathoibríoch tríd an bpíblíne Ansible.

Sampla d’acmhainní a leithdháileadh ar fhoireann:

namespaces:

  chat-team:
    pods: 23
    limits:
      cpu: 11
      memory: 20Gi
    requests:
      cpu: 11
      memory: 20Gi

Iarratais agus teorainneacha

Ciúbáilte" Iarratas is líon na n-acmhainní forchoimeádta ráthaithe le haghaidh pod (coimeád duga amháin nó níos mó) i mbraisle. Is uasmhéid neamhráthaithe é teorainn. Is minic a fheiceann tú ar na graif an chaoi ar shocraigh foireann éigin an iomarca iarratas dá cuid feidhmchlár go léir agus ní féidir leo an feidhmchlár a imscaradh chuig an “Ciúb”, mar go bhfuil gach iarratas faoina n-ainmspás “caite”.

Is é an bealach ceart amach as an staid seo ná féachaint ar an tomhaltas iarbhír acmhainní agus é a chur i gcomparáid leis an méid a iarrtar (Iarratas).

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice
Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Sna screenshots thuas is féidir leat a fheiceáil go bhfuil LAPanna “Iarrtha” meaitseáilte le fíorlíon na snáitheanna, agus is féidir Teorainneacha dul thar líon réadúil snáitheanna LAP =)

Anois breathnaímis go mion ar roinnt ainmspás (roghnaigh mé ainmspás kube-system - an t-ainmspás córais do na comhpháirteanna den “Ciúb”) féin) agus féach ar an gcóimheas idir am próiseálaí agus cuimhne a úsáidtear go hiarbhír agus an ceann iarrtha:

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Is léir go bhfuil i bhfad níos mó cuimhne agus LAP in áirithe do sheirbhísí córais ná mar a úsáidtear i ndáiríre. I gcás an chórais kube, tá údar leis seo: tharla sé gur bhuail rialtóir ingress nginx nó nodelocaldns ag a mbuaic an LAP agus d'ól siad go leor RAM, mar sin anseo tá údar maith le cúlchiste den sórt sin. Ina theannta sin, ní féidir linn brath ar chairteacha le 3 huaire an chloig anuas: tá sé inmhianaithe méadracht stairiúil a fheiceáil thar thréimhse mhór ama.

Forbraíodh córas “moltaí”. Mar shampla, is féidir leat a fheiceáil anseo cé na hacmhainní a bheadh ​​níos fearr as na “teorainneacha” (an barra uachtarach ceadaithe) a ardú ionas nach dtarlóidh “scóráil”: an nóiméad a bhfuil LAP nó cuimhne caite ag acmhainn cheana féin sa slis ama leithroinnte agus ag fanacht go mbeidh sé “neamhreoite”:

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Agus seo iad na pods ar cheart dóibh srian a chur ar a n-goil:

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Про sníomh + monatóireacht acmhainní, is féidir leat níos mó ná alt amháin a scríobh, mar sin cuir ceisteanna sna tuairimí. I gcúpla focal, is féidir liom a rá go bhfuil an tasc a bhaineann le méadracht den sórt sin a uathoibriú an-deacair agus éilíonn sé go leor ama agus gníomh cothromaithe le feidhmeanna “fuinneog” agus “CTE” Prometheus / VictoriaMetrics (tá na téarmaí seo i Sleachta, ós rud é go bhfuil beagnach Níl aon rud mar seo in PromQL, agus caithfidh tú ceisteanna scanrúla a roinnt i roinnt scáileáin téacs agus iad a bharrfheabhsú).

Mar thoradh air sin, tá uirlisí ag forbróirí chun monatóireacht a dhéanamh ar a n-ainmspásanna i gCiúb, agus tá siad in ann a roghnú dóibh féin cén áit agus cén t-am ar féidir le feidhmchláir a gcuid acmhainní a “ghearradh,” agus cé na freastalaithe ar féidir an LAP iomlán a thabhairt dóibh ar feadh na hoíche.

Modheolaíochtaí

Sa chuideachta mar atá sé anois faiseanta, táimid ag cloí le DevOps- agus SRE-chleachtóir Nuair a bhíonn 1000 micreasheirbhís ag cuideachta, thart ar 350 forbróir agus 15 riarthóir don bhonneagar iomlán, caithfidh tú a bheith “faiseanta”: taobh thiar de na “bunfhocail” seo go léir tá géarghá le gach rud agus gach duine a uathoibriú, agus níor cheart go mbeadh na riarthóirí ina mbac. i bpróisis.

Mar OPS, cuirimid méadrachtaí agus deais éagsúla ar fáil d’fhorbróirí a bhaineann le rátaí freagartha seirbhíse agus earráidí.

Bainimid úsáid as modheolaíochtaí mar: RED, ÚSÁID и Comhartha Órgatrí iad a chomhcheangal le chéile. Déanaimid iarracht líon na ndeiseanna a íoslaghdú ionas go mbeidh sé soiléir sracfhéachaint ar an tseirbhís atá díghrádaithe faoi láthair (mar shampla, cóid freagartha in aghaidh an tsoicind, am freagartha faoi 99ú peircintíl), agus mar sin de. Chomh luath agus a bhíonn gá le roinnt méadracht nua le haghaidh na deais ghinearálta, tarraingímid láithreach agus cuirimid iad.

Níl graif tarraingthe agam le mí. Is dócha gur comhartha maith é seo: ciallaíonn sé go bhfuil an chuid is mó de na “mianta” réadaithe cheana féin. Tharla sé go dtarraingeoinn graf nua ar a laghad uair sa lá i rith na seachtaine.

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice

Tá an toradh mar thoradh air sin luachmhar mar anois is annamh a théann forbróirí chuig riarthóirí le ceisteanna “cá háit a bhféadfaidís breathnú ar chineál éigin méadrach.”

Cur i bhFeidhm Mogalra Seirbhíse timpeall an chúinne agus ba cheart go ndéanfadh sé an saol i bhfad níos éasca do chách, tá comhghleacaithe ó Tools gar do chur i bhfeidhm an teibí “Istio de dhuine sláintiúil” cheana féin: beidh saolré gach iarratais HTTP(í) le feiceáil sa mhonatóireacht, agus é beifear in ann i gcónaí a thuiscint “ag an gcéim a bhris gach rud” le linn idirghníomhaíochta idirseirbhíse (agus ní hamháin). Liostáil le nuacht ón mol DomClick. =)

Tacaíocht bonneagair Kubernetes

Go stairiúil, úsáidimid an leagan paiste Cubespray — Ról oiriúnach chun Kubernetes a imscaradh, a leathnú agus a nuashonrú. Ag pointe éigin, gearradh tacaíocht do shuiteálacha neamh-kubeadm ón bpríomhbhrainse, agus níor moladh an próiseas aistrithe go kubeadm. Mar thoradh air sin, rinne cuideachta Southbridge a forc féin (le tacaíocht kubeadm agus réiteach tapa le haghaidh fadhbanna criticiúla).

Breathnaíonn an próiseas chun gach braisle k8s a nuashonrú mar seo:

  • Tóg Cubespray ó Southbridge, seiceáil lenár snáithe, Merjim.
  • Táimid ag rolladh amach an nuashonrú go Strus- "Ciúb".
  • Déanaimid an nuashonrú a rolladh amach nód amháin ag an am (in Ansible tá sé seo "sraith: 1") i dev- "Ciúb".
  • Déanaimid nuashonrú Dtáirgí tráthnóna Dé Sathairn nód amháin ag an am.

Tá pleananna chun é a athsholáthar amach anseo Cubespray le haghaidh rud éigin níos tapúla agus téigh go dtí cubeadm.

San iomlán tá trí “Chiúb” againn: Strus, Dev agus Prod. Tá sé beartaithe againn ceann eile a sheoladh (fuireachas te) Prod-“Ciúb” sa dara ionad sonraí. Strus и dev cónaí i “meaisíní fíorúla” (oVirt for Stress agus VMWare cloud for Dev). Dtáirgí- Cónaíonn “Ciúb” ar “mhiotal lom”: is nóid chomhionanna iad seo le 32 snáithe LAP, 64-128 GB de chuimhne agus 300 GB SSD RAID 10 - tá 50 acu san iomlán. Tá trí nód “tanaí” tiomnaithe do “máistreacht” Dtáirgí- “Cúba”: 16 GB de chuimhne, 12 snáithe LAP.

Maidir le díolacháin, is fearr linn "miotal lom" a úsáid agus sraitheanna neamhriachtanach mar OpenStack: níl “comharsana noisy” agus LAP de dhíth orainn am a ghoid. Agus méadaíonn castacht an riaracháin thart ar dhá oiread i gcás OpenStack intí.

Maidir le “Ciúbach” CI/CD agus comhpháirteanna bonneagair eile bainimid úsáid as freastalaí GIT ar leith, Helm 3 (aistriú sách pianmhar ó Helm 2 a bhí ann, ach táimid an-sásta leis na roghanna adamhach), Jenkins, Ansible agus Docker. Is breá linn brainsí gné agus imscaradh chuig timpeallachtaí éagsúla ó stór amháin.

Conclúid

Kubernetes ag DomClick: conas codladh go sámh ag bainistiú braisle de 1000 microservice
Seo, i dtéarmaí ginearálta, an chuma atá ar phróiseas DevOps ag DomClick ó thaobh innealtóra oibríochtaí. Ní raibh an t-alt chomh teicniúil agus a bhí mé ag súil leis: mar sin, lean an nuacht DomClick ar Habré: beidh níos mó ailt “hardcore” faoi Kubernetes agus níos mó.

Foinse: will.com

Add a comment