Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ir-rapport huwa ddedikat għal kwistjonijiet prattiċi tal-iżvilupp ta 'operatur f'Kubernetes, id-disinn tal-arkitettura tiegħu u l-prinċipji operattivi bażiċi.

Fl-ewwel parti tar-rapport se nikkunsidraw:

  • x'inhu operatur f'Kubernetes u għaliex huwa meħtieġ;
  • kif eżattament l-operatur jissimplifika l-ġestjoni ta 'sistemi kumplessi;
  • x'jista' u ma jistax jagħmel l-operatur.

Sussegwentement, ejja nkomplu niddiskutu l-istruttura interna tal-operatur. Ejja nħarsu lejn l-arkitettura u l-operat tal-operatur pass pass. Ejja nħarsu lejha fid-dettall:

  • interazzjoni bejn l-operatur u Kubernetes;
  • liema funzjonijiet jieħu l-operatur u liema funzjonijiet jiddelega lil Kubernetes.

Ejja nħarsu lejn il-ġestjoni tal-frak u r-repliki tad-database f'Kubernetes.
Sussegwentement, ser niddiskutu kwistjonijiet dwar il-ħażna tad-dejta:

  • kif taħdem ma' Ħażna Persistenti mill-aspett ta' operatur;
  • in-nases tal-użu tal-Ħażna Lokali.

Fl-aħħar parti tar-rapport, se nikkunsidraw eżempji prattiċi ta’ applikazzjoni clickhouse-operatur minn Amazon jew Google Cloud Service. Ir-rapport huwa bbażat fuq l-eżempju tal-iżvilupp u l-esperjenza operattiva ta’ operatur għal ClickHouse.

Video:

Jisimni Vladislav Klimenko. Illum ridt nitkellem dwar l-esperjenza tagħna fl-iżvilupp u l-operat ta’ operatur, u dan huwa operatur speċjalizzat għall-ġestjoni ta’ clusters ta’ database. Pereżempju ClickHouse-operatur biex timmaniġġja l-cluster ClickHouse.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Għaliex għandna l-opportunità li nitkellmu dwar l-operatur u ClickHouse?

  • Aħna nappoġġjaw u niżviluppaw ClickHouse.
  • Bħalissa, qed nippruvaw nagħtu l-kontribut tagħna bil-mod għall-iżvilupp ta’ ClickHouse. U aħna qegħdin it-tieni wara Yandex f'termini tal-volum ta 'bidliet li saru lil ClickHouse.
  • Qed nippruvaw nagħmlu proġetti addizzjonali għall-ekosistema ClickHouse.

Nixtieq ngħidlek dwar wieħed minn dawn il-proġetti. Dan huwa dwar ClickHouse-operatur għal Kubernetes.

Fir-rapport tiegħi nixtieq inmiss żewġ suġġetti:

  • L-ewwel suġġett huwa kif jaħdem l-operatur tal-ġestjoni tad-database ClickHouse tagħna f'Kubernetes.
  • It-tieni suġġett huwa kif jaħdem kwalunkwe operatur, jiġifieri kif jinteraġixxi ma 'Kubernetes.

Madankollu, dawn iż-żewġ mistoqsijiet se jaqsmu tul ir-rapport tiegħi.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Min ikun interessat jisma’ dak li qed nipprova ngħid?

  • Ikun tal-aktar interess għal dawk li joperaw operaturi.
  • Jew għal dawk li jridu jagħmlu tagħhom stess sabiex jifhmu kif taħdem internament, kif l-operatur jinteraġixxi ma 'Kubernetes, u x'iżvantaġġi jistgħu jidhru.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Biex nifhmu bl-aħjar mod dak li ser niddiskutu llum, hija idea tajba li tkun taf kif jaħdem Kubernetes u jkollok xi taħriġ bażiku tal-cloud.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

X'inhu ClickHouse? Din hija database ta' kolonni b'karatteristiċi speċifiċi għall-ipproċessar onlajn ta' mistoqsijiet analitiċi. U huwa sors kompletament miftuħ.

U huwa importanti għalina li nkunu nafu biss żewġ affarijiet. Trid tkun taf li din hija database, allura dak li se ngħidlek ikun applikabbli għal kważi kull database. U l-fatt li l-ClickHouse DBMS tiskali tajjeb ħafna, tagħti skalabbiltà kważi lineari. U għalhekk, l-istat tal-cluster huwa stat naturali għal ClickHouse. U aħna l-aktar interessati li niddiskutu kif naqdu l-cluster ClickHouse f'Kubernetes.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Għaliex hemm bżonnu hemm? Għaliex ma nistgħux inkomplu nħaddmuh aħna? U t-tweġibiet huma parzjalment tekniċi u parzjalment organizzattivi.

  • Fil-prattika, qed niltaqgħu dejjem aktar ma 'sitwazzjoni fejn f'kumpaniji kbar kważi l-komponenti kollha huma diġà fil-Kubernetes. Id-databases jibqgħu barra.
  • U l-mistoqsija qed issir dejjem aktar: "Dan jista 'jitqiegħed ġewwa?" Għalhekk, kumpaniji kbar qed jippruvaw jiksbu unifikazzjoni massima tal-ġestjoni sabiex malajr ikunu jistgħu jimmaniġġjaw l-imħażen tad-dejta tagħhom.
  • U dan jgħin speċjalment jekk għandek bżonn l-opportunità massima biex tirrepeti l-istess ħaġa f'post ġdid, jiġifieri l-portabbiltà massima.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Kemm hu faċli jew diffiċli? Dan, ovvjament, jista 'jsir bl-idejn. Iżda mhuwiex daqshekk sempliċi, għaliex għandna l-kumplessità miżjuda tal-ġestjoni ta 'Kubernetes innifsu, iżda fl-istess ħin l-ispeċifiċitajiet ta' ClickHouse huma sovraposti. U tali aggregazzjoni tirriżulta.

U dan kollu flimkien jagħti sett pjuttost kbir ta 'teknoloġiji, li jsir pjuttost diffiċli biex jiġi mmaniġġjat, minħabba li Kubernetes iġib il-kwistjonijiet ta' kuljum tiegħu stess għall-operat, u ClickHouse ġġib il-kwistjonijiet tiegħu stess għall-operat ta 'kuljum. Speċjalment jekk ikollna diversi ClickHouses, u għandna bżonn kontinwament nagħmlu xi ħaġa magħhom.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

B'konfigurazzjoni dinamika, ClickHouse għandha numru pjuttost kbir ta 'kwistjonijiet li joħolqu tagħbija kostanti fuq DevOps:

  • Meta rridu nibdlu xi ħaġa f'ClickHouse, pereżempju, żid replika jew shard, allura għandna bżonn niġġestixxu l-konfigurazzjoni.
  • Imbagħad ibdel l-iskema tad-dejta, minħabba li ClickHouse għandha metodu ta 'sharding speċifiku. Hemm bżonn li tfassal id-dijagramma tad-dejta, tfassal il-konfigurazzjonijiet.
  • Għandek bżonn twaqqaf il-monitoraġġ.
  • Ġbir ta 'zkuk għal frak ġodda, għal repliki ġodda.
  • Ħu ħsieb ir-restawr.
  • U terġa 'tibda.

Dawn huma ħidmiet ta' rutina li nixtieq tassew li nagħmel aktar faċli biex tużahom.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Kubernetes innifsu jgħin tajjeb fl-operat, iżda fuq affarijiet bażiċi tas-sistema.

Kubernetes huwa tajjeb biex jiffaċilita u awtomat affarijiet bħal:

  • Irkupru.
  • Erġa ibda.
  • Ġestjoni tas-sistema tal-ħażna.

Dak tajjeb, dik hija d-direzzjoni t-tajba, iżda huwa kompletament clueless dwar kif tħaddem cluster ta 'database.

Irridu aktar, irridu li d-database kollha taħdem f'Kubernetes.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Nixtieq nikseb xi ħaġa bħal buttuna ħamra maġika waħda kbira li tagħfas u raggruppament b'kompiti ta 'kuljum li jeħtieġ li jiġu solvuti jiġi skjerat u miżmum matul iċ-ċiklu kollu tal-ħajja tiegħu. Cluster ClickHouse f'Kubernetes.

U ppruvajna nagħmlu soluzzjoni li tgħin biex ix-xogħol ikun aktar faċli. Dan huwa operatur ClickHouse għal Kubernetes minn Altinity.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Operatur huwa programm li l-kompitu ewlieni tiegħu huwa li jamministra programmi oħra, jiġifieri huwa maniġer.

U fih mudelli ta 'mġieba. Tista' ssejjaħ dan l-għarfien kodifikat dwar il-qasam tas-suġġett.

U l-kompitu ewlieni tiegħu huwa li jagħmel il-ħajja ta 'DevOps aktar faċli u jnaqqas il-mikroġestjoni, sabiex hu (DevOps) diġà jaħseb f'termini ta' livell għoli, jiġifieri, sabiex hu (DevOps) ma jidħolx f'mikroġestjoni, sabiex ma jikkonfigurax. id-dettalji kollha manwalment.

U biss l-operatur huwa assistent robotiku li jittratta l-mikrotasks u jgħin lil DevOps.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Għaliex għandek bżonn operatur? Huwa jaħdem partikolarment tajjeb f'żewġ oqsma:

  • Meta l-ispeċjalista li jittratta ClickHouse ma jkollux biżżejjed esperjenza, iżda diġà jeħtieġ li jopera ClickHouse, l-operatur jiffaċilita l-operazzjoni u jippermettilek topera cluster ClickHouse b'konfigurazzjoni pjuttost kumplessa, mingħajr ma tidħol f'ħafna dettall dwar kif taħdem kollox. ġewwa. Inti biss tagħtih kompiti ta 'livell għoli, u taħdem.
  • U t-tieni kompitu li fih twettaq l-aħjar huwa meta jkun meħtieġ li jiġi awtomatizzat numru kbir ta 'kompiti tipiċi. Tneħħi l-mikrotasks mill-amministraturi tas-sistema.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Dan huwa l-aktar meħtieġ jew minn dawk li għadhom kemm jibdew il-vjaġġ tagħhom, jew minn dawk li għandhom bżonn jagħmlu ħafna awtomazzjoni.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Kif huwa differenti l-approċċ ibbażat fuq l-operatur minn sistemi oħra? Hemm Helm. Jgħin ukoll biex tinstalla ClickHouse; tista' tfassal charts tat-tmun, li saħansitra se tinstalla cluster sħiħ ta' ClickHouse. X'inhu allura d-differenza bejn l-operatur u l-istess, per eżempju, Helm?

Id-differenza fundamentali ewlenija hija li Helm huwa l-immaniġġjar tal-pakketti u l-Operatur imur pass 'il quddiem. Dan huwa appoġġ għaċ-ċiklu tal-ħajja kollu. Din mhix biss installazzjoni, dawn huma ħidmiet ta 'kuljum li jinkludu skalar, sharding, jiġifieri dak kollu li jeħtieġ li jsir matul iċ-ċiklu tal-ħajja (jekk meħtieġ, imbagħad tħassir ukoll) - dan kollu huwa deċiż mill-operatur. Jipprova awtomat u jżomm iċ-ċiklu kollu tal-ħajja tas-softwer. Din hija d-differenza fundamentali tagħha minn soluzzjonijiet oħra li huma ppreżentati.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Dik kienet il-parti introduttorja, ejja nkomplu.

Kif nibnu l-operatur tagħna? Qed nippruvaw nersqu lejn il-kwistjoni biex niġġestixxu l-cluster ClickHouse bħala riżorsa waħda.

Hawnhekk għandna dejta tal-input fuq in-naħa tax-xellug tal-istampa. Dan huwa YAML bi speċifikazzjoni ta 'cluster, li hija mgħoddija lil Kubernetes bil-mod klassiku permezz ta' kubectl. Hemmhekk l-operatur tagħna jiġbor u jagħmel il-maġija tiegħu. U fl-output nikseb l-iskema li ġejja. Din hija implimentazzjoni ta' ClickHouse f'Kubernetes.

U mbagħad se nħarsu bil-mod lejn kif jaħdem eżattament l-operatur, liema kompiti tipiċi jistgħu jiġu solvuti. Aħna se nikkunsidraw biss ħidmiet tipiċi għax għandna żmien limitat. U mhux se jiġi diskuss dak kollu li jista’ jiddeċiedi l-operatur.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Nibdew mill-prattika. Il-proġett tagħna huwa sors kompletament miftuħ, sabiex tkun tista' tara kif taħdem fuq GitHub. U inti tista 'tipproċedi mill-kunsiderazzjonijiet li jekk inti biss trid tniedi, allura inti tista' tibda bil-Gwida Quick Start.

Jekk trid tifhem fid-dettall, allura nippruvaw inżommu d-dokumentazzjoni f'forma xi ftit jew wisq deċenti.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Nibdew bi problema prattika. L-ewwel kompitu, fejn ilkoll irridu nibdew, huwa li nmexxi l-ewwel eżempju b'xi mod. Kif nista' nniedi ClickHouse bl-użu tal-operatur, anke jekk ma nafx verament kif taħdem? Qed niktbu manifest, għax... Il-komunikazzjoni kollha ma 'k8s hija komunikazzjoni permezz ta' manifesti.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Dan huwa manifest tant kumpless. Dak li enfasizzajna bl-aħmar huwa dak li rridu niffukaw fuqu. Nitolbu lill-operatur biex joħloq cluster bl-isem demo.

Dawn huma eżempji bażiċi għalissa. Il-ħażna għadha ma ġietx deskritta, iżda se nerġgħu lura għall-ħażna ftit aktar tard. Għalissa, se nosservaw id-dinamika tal-iżvilupp tal-cluster.

Ħloqna dan il-manifest. Aħna għalf lill-operatur tagħna. Ħadem, għamel il-maġija.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Aħna nħarsu lejn il-console. Tliet komponenti huma ta 'interess: Pod, żewġ Servizzi, u StatefulSet.

L-operatur ħadem, u nistgħu naraw eżattament x'ħoloq.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Huwa joħloq xi ħaġa bħal din. Għandna StatefulSet, Pod, ConfigMap għal kull replika, ConfigMap għall-cluster kollu. Is-servizzi huma meħtieġa bħala punti ta' dħul fil-cluster.

Is-servizzi huma s-Servizz ċentrali tal-Load Balancer u jistgħu jintużaw ukoll għal kull replika, għal kull shard.

Il-cluster bażiku tagħna jidher xi ħaġa bħal din. Huwa minn nodu wieħed.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja mmorru aktar u nikkomplikaw l-affarijiet. Għandna bżonn li shard-cluster.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Il-kompiti tagħna qed jikbru, id-dinamika qed tibda. Irridu nżidu shard. Aħna nsegwu l-iżvilupp. Qed nibdlu l-ispeċifikazzjoni tagħna. Nindikaw li rridu żewġ shards.

Dan huwa l-istess fajl li jiżviluppa b'mod dinamiku mat-tkabbir tas-sistema. Ħażna le, il-ħażna se tiġi diskussa aktar, dan huwa suġġett separat.

Aħna għalf lill-operatur YAML u naraw x'jiġri.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

L-operatur ħaseb u għamel l-entitajiet li ġejjin. Diġà għandna żewġ Pods, tliet Servizzi u, f'daqqa waħda, 2 StatefulSets. Għaliex 2 StatefulSets?

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Fuq id-dijagramma kien bħal dan - dan huwa l-istat inizjali tagħna, meta kellna pod wieħed.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Sar hekk. S'issa kollox huwa sempliċi, ġie duplikat.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U għaliex saru żewġ StatefulSets? Hawnhekk irridu nidħlu u niddiskutu l-kwistjoni ta 'kif il-Pods huma ġestiti f'Kubernetes.

Hemm oġġett imsejjaħ StatefulSet li jippermettilek toħloq sett ta' Pods minn mudell. Il-fattur ewlieni hawnhekk huwa Template. U tista 'tniedi ħafna Pods billi tuża mudell wieħed fi StatefulSet wieħed. U l-frażi ewlenija hawnhekk hija "ħafna Pods għal mudell wieħed."

U kien hemm tentazzjoni kbira li tagħmel il-cluster kollu, ippakkjah f'StatefulSet wieħed. Se taħdem, m'hemm l-ebda problema magħha. Iżda hemm twissija waħda. Jekk irridu niġbru raggruppament eteroġenju, jiġifieri minn diversi verżjonijiet ta 'ClickHouse, allura jibdew iqumu mistoqsijiet. Iva, StatefulSet jista 'jagħmel aġġornament rolling, u hemmhekk tista' toħroġ verżjoni ġdida, spjega li għandek bżonn tipprova mhux aktar minn tant nodi fl-istess ħin.

Imma jekk nestrapolaw il-kompitu u ngħidu li rridu nagħmlu cluster kompletament eteroġenju u ma rridux nibdlu mill-verżjoni l-qadima għal waħda ġdida billi tuża aġġornament rolling, iżda sempliċement irridu noħolqu cluster eteroġenju kemm f'termini ta' verżjonijiet differenti ta' ClickHouse u f'termini ta' ħażna differenti. Irridu, pereżempju, nagħmlu xi repliki fuq diski separati, fuq dawk bil-mod, b'mod ġenerali, biex nibnu kompletament cluster eteroġenju. U minħabba l-fatt li StatefulSet jagħmel soluzzjoni standardizzata minn mudell wieħed, m'hemm l-ebda mod kif tagħmel dan.

Wara ftit ħsieb, ġie deċiż li se nagħmluh b'dan il-mod. Għandna kull replika fi StatefulSet tagħha stess. Hemm xi żvantaġġi għal din is-soluzzjoni, iżda fil-prattika hija kollha kompletament inkapsulata mill-operatur. U hemm ħafna vantaġġi. Nistgħu nibnu l-cluster eżatt li rridu, pereżempju, wieħed assolutament eteroġenju. Għalhekk, fi cluster li fih għandna żewġ shards b'replika waħda, se jkollna 2 StatefulSets u 2 Pods preċiżament għaliex għażilna dan l-approċċ għar-raġunijiet imsemmija hawn fuq biex inkunu nistgħu nibnu cluster eteroġenju.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja nerġgħu lura għall-problemi prattiċi. Fil-cluster tagħna għandna bżonn nikkonfiguraw l-utenti, i.e. trid tagħmel xi konfigurazzjoni ta' ClickHouse f'Kubernetes. L-operatur jipprovdi l-possibbiltajiet kollha għal dan.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Nistgħu niktbu dak li rridu direttament f'YAML. L-għażliet kollha ta’ konfigurazzjoni huma mmappjati direttament minn dan YAML f’konfigurazzjonijiet ta’ ClickHouse, li mbagħad jitqassmu fil-cluster.

Tista’ tiktebha hekk. Dan huwa per eżempju. Il-password tista 'tiġi encrypted. Assolutament l-għażliet kollha ta 'konfigurazzjoni ta' ClickHouse huma appoġġjati. Hawn biss eżempju.

Il-konfigurazzjoni tal-cluster hija mqassma bħala ConfigMap. Fil-prattika, l-aġġornament tal-ConfigMap ma jseħħx istantanjament, għalhekk jekk ir-raggruppament huwa kbir, allura l-proċess tal-imbuttar tal-konfigurazzjoni jieħu xi żmien. Iżda dan kollu huwa konvenjenti ħafna biex jintuża.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja nikkomplikaw il-kompitu. Il-cluster qed jiżviluppa. Irridu nirreplikaw id-data. Jiġifieri diġà għandna żewġ shards, replika waħda kull wieħed, u l-utenti huma kkonfigurati. Qed nikbru u rridu nagħmlu replikazzjoni.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

X'għandna bżonn għar-replikazzjoni?

Għandna bżonn ZooKeeper. F'ClickHouse, ir-replikazzjoni tinbena bl-użu ta' ZooKeeper. ZooKeeper huwa meħtieġ sabiex repliki differenti ta' ClickHouse jkollhom kunsens dwar liema blokki tad-dejta huma fuq liema ClickHouse.

ZooKeeper jista' jintuża minn kulħadd. Jekk l-intrapriża għandha ZooKeeper estern, allura tista 'tintuża. Jekk le, tista' tinstallah mir-repożitorju tagħna. Hemm installatur li jagħmel din il-ħaġa sħiħa aktar faċli.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U d-dijagramma ta 'interazzjoni tas-sistema kollha tirriżulta bħal din. Għandna Kubernetes bħala pjattaforma. Hija tesegwixxi l-operatur ClickHouse. Istampa ZooKeeper hawn. U l-operatur jinteraġixxi kemm ma 'ClickHouse kif ukoll ma' ZooKeeper. Jiġifieri, ir-riżultati tal-interazzjoni.

U dan kollu huwa meħtieġ biex ClickHouse tirreplika b'suċċess id-dejta f'k8s.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja issa nħarsu lejn il-kompitu innifsu, lejn kif se jidher il-manifest għar-replikazzjoni.

Qed inżidu żewġ taqsimiet mal-manifest tagħna. L-ewwel huwa fejn tikseb ZooKeeper, li jista 'jkun jew ġewwa Kubernetes jew estern. Din hija biss deskrizzjoni. U aħna jordnaw repliki. Dawk. irridu żewġ repliki. B'kollox, għandu jkollna 4 imżiewed fl-output. Niftakru dwar il-ħażna, se terġa 'lura ftit aktar tard. Il-ħażna hija storja separata.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Kien hekk.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Isir hekk. Repliki huma miżjuda. Ir-4 wieħed ma kienx joqgħod, nemmnu li jista’ jkun hemm ħafna minnhom. U ZooKeeper huwa miżjud mal-ġenb. L-iskemi qed isiru aktar kumplessi.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U wasal iż-żmien li żżid il-kompitu li jmiss. Aħna se nżidu Ħażna Persistenti.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)Għal Ħażna Persistenti għandna diversi għażliet.

Jekk qed inħaddmu f'fornitur tas-sħab, pereżempju, bl-użu ta 'Amazon, Google, allura hemm tentazzjoni kbira li tuża l-ħażna tas-sħab. Huwa konvenjenti ħafna, huwa tajjeb.

U hemm it-tieni għażla. Dan huwa għall-ħażna lokali, meta jkollna diski lokali fuq kull node. Din l-għażla hija ħafna aktar diffiċli biex timplimenta, iżda fl-istess ħin hija aktar produttiva.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja naraw x'għandna dwar il-ħażna tas-sħab.

Hemm vantaġġi. Huwa faċli ħafna li jiġi kkonfigurat. Aħna sempliċiment tordna mill-fornitur tal-cloud li jekk jogħġbok agħtina ħażna ta 'tali u tali kapaċità, ta' tali u tali klassi. Il-klassijiet huma skedati minn fornituri b'mod indipendenti.

U hemm żvantaġġ. Għal xi wħud, dan huwa żvantaġġ mhux kritiku. Naturalment, se jkun hemm xi kwistjonijiet ta 'prestazzjoni. Huwa konvenjenti ħafna biex tużah u affidabbli, iżda hemm xi żvantaġġi potenzjali fil-prestazzjoni.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U għax ClickHouse jiffoka speċifikament fuq il-produttività, wieħed jista 'saħansitra jgħid li tagħfas dak kollu li jista', u huwa għalhekk li ħafna klijenti jippruvaw jaqilbu l-produttività massima.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U biex nieħdu l-aħjar minnha, għandna bżonn ħażna lokali.

Kubernetes jipprovdi tliet astrazzjonijiet għall-użu tal-ħażna lokali f'Kubernetes. Dan:

  • EmptyDir
  • HostPath.
  • Lokali

Ejja nħarsu lejn kif huma differenti u kif huma simili.

L-ewwelnett, fit-tliet approċċi kollha għandna ħażna - dawn huma diski lokali li jinsabu fuq l-istess node fiżiku k8s. Iżda għandhom xi differenzi.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Nibdew bl-aktar waħda sempliċi, jiġifieri emptyDir. X'inhu dan fil-prattika? Fl-ispeċifikazzjoni tagħna, nitolbu lis-sistema tal-kontejners (l-aktar spiss Docker) biex tagħtina aċċess għal folder fuq id-diska lokali.

Fil-prattika, Docker joħloq folder temporanju x'imkien tul il-mogħdijiet tiegħu stess u jsejjaħlu hash twil. U jipprovdi interface biex taċċessah.

Kif se taħdem dan il-prestazzjoni għaqli? Dan se jaħdem bil-veloċità tad-disk lokali, i.e. Dan huwa aċċess sħiħ għall-kamin tiegħek.

Iżda dan il-każ għandu l-iżvantaġġ tiegħu. Persistenti hija pjuttost dubjuża f'din il-kwistjoni. L-ewwel darba li Docker jiċċaqlaq b'kontenituri, Persistent jintilef. Jekk Kubernetes irid imexxi dan il-Pod għal disk ieħor għal xi raġuni, id-dejta tintilef.

Dan l-approċċ huwa tajjeb għat-testijiet, minħabba li diġà juri veloċità normali, iżda għal xi ħaġa serja din l-għażla mhix adattata.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Għalhekk hemm it-tieni approċċ. Dan huwa hostPath. Jekk tħares lejn is-slide ta 'qabel u din, tista' tara differenza waħda biss. Il-folder tagħna mxiet minn Docker direttament għan-node Kubernetes. Huwa ftit aktar sempliċi hawn. Aħna nispeċifikaw direttament il-mogħdija fis-sistema tal-fajls lokali fejn nixtiequ naħżnu d-dejta tagħna.

Dan il-metodu għandu vantaġġi. Din hija diġà Persistenti reali, u waħda klassika f'dak. Se jkollna data rreġistrata fuq id-diska f'xi indirizz.

Hemm ukoll żvantaġġi. Din hija l-kumplessità tal-ġestjoni. Kubernetes tagħna jistgħu jkunu jridu jċaqalqu l-Pod għal nodu fiżiku ieħor. U dan huwa fejn jidħol DevOps. Huwa għandu jispjega b'mod korrett lis-sistema kollha li dawn il-miżwed jistgħu jiġu mċaqalqa biss għal dawk in-nodi li fuqhom għandek xi ħaġa immuntata tul dawn il-mogħdijiet, u mhux aktar minn nodu wieħed kull darba. Huwa pjuttost diffiċli.

Speċjalment għal dawn l-iskopijiet, għamilna mudelli fl-operatur tagħna sabiex naħbu din il-kumplessità kollha. U tista 'sempliċement tgħid: "Irrid li jkolli eżempju wieħed ta' ClickHouse għal kull nodu fiżiku u tul tali jew tali mogħdija."

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Imma aħna mhux l-uniċi li għandhom bżonn din il-ħtieġa, għalhekk is-rġulija minn Kubernetes stess jifhmu wkoll li n-nies iridu jkollhom aċċess għal diski fiżiċi, u għalhekk jipprovdu t-tielet saff.

Tissejjaħ lokali. M'hemm prattikament l-ebda differenza mill-pjastra ta 'qabel. Biss qabel kien meħtieġ li nikkonfermaw manwalment li ma nistgħux nittrasferixxu dawn il-miżwed minn node għal nodu, minħabba li għandhom ikunu mwaħħla tul xi triq għal disk fiżika lokali, iżda issa dan l-għarfien kollu huwa inkapsulat f'Kubernetes innifsu. U jirriżulta li huwa ħafna aktar faċli biex jiġi kkonfigurat.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja nerġgħu lura għall-problema prattika tagħna. Ejja nerġgħu lura għall-mudell YAML. Hawnhekk għandna ħażna reali. Aħna lura fuqha. Aħna waqqafna l-mudell klassiku tal-VolumeClaim bħal f'k8s. U niddeskrivu x'tip ta 'ħażna rridu.

Wara dan, k8s se jitlob ħażna. Se jallokah lilna fl-StatefulSet. U fl-aħħar se tkun għad-dispożizzjoni ta’ ClickHouse.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Kellna din l-iskema. Il-Ħażna Persistenti tagħna kienet ħamra, li deher li tagħti ħjiel li hemm bżonn li jsir.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U jsir aħdar. Issa l-iskema tal-clusters ClickHouse fuq k8s hija kompletament iffinalizzata. Għandna shards, repliki, ZooKeeper, għandna Persistenti reali, li hija implimentata b'xi mod jew ieħor. L-iskema diġà hija kompletament operattiva.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Inkomplu ngħixu. Il-cluster tagħna qed jiżviluppa. U Alexey jipprova, u joħroġ verżjoni ġdida ta’ ClickHouse.

Tqum kompitu prattiku - biex tittestja l-verżjoni l-ġdida ta’ ClickHouse fuq il-cluster tagħna. U, naturalment, ma tridx tirrumbla kollox; trid tpoġġi verżjoni ġdida f'replika waħda x'imkien fil-kantuniera 'l bogħod, u forsi mhux verżjoni ġdida waħda, iżda tnejn f'daqqa, għax joħorġu spiss.

X’nistgħu ngħidu dwar dan?

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Hawnhekk għandna biss opportunità bħal din. Dawn huma mudelli pod. Tista 'tikteb li l-operatur tagħna kompletament jippermettilek li tibni cluster eteroġenju. Dawk. kkonfigurat, li jibda mir-repliki kollha f'mazz, li jispiċċa b'kull replika personali, liema verżjoni rridu ClickHouse, liema verżjoni rridu ħażna. Nistgħu kkonfiguraw bis-sħiħ il-cluster bil-konfigurazzjoni li neħtieġu.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja mmorru ftit aktar fil-fond. Qabel dan, tkellimna dwar kif jaħdem l-operatur ClickHouse fir-rigward tal-ispeċifiċitajiet ta 'ClickHouse.

Issa nixtieq ngħid ftit kliem dwar kif jaħdem kwalunkwe operatur b'mod ġenerali, kif ukoll kif jinteraġixxi ma 'K8s.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja nħarsu lejn l-interazzjoni mal-K8s l-ewwel. X'jiġri meta napplikaw kubectl? L-oġġetti tagħna jidhru fl-etcd permezz tal-API.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Pereżempju, oġġetti bażiċi ta 'Kubernetes: pod, StatefulSet, servizz, u l-bqija fil-lista.

Fl-istess ħin, għadu ma jiġri xejn fiżiku. Dawn l-oġġetti għandhom jiġu mmaterjalizzati fil-cluster.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Għal dan il-għan, jidher kontrollur. Il-kontrollur huwa komponent k8s speċjali li jista 'jimmaterjalizza dawn id-deskrizzjonijiet. Jaf kif u x'għandu jagħmel fiżikament. Jaf kif imexxi kontenituri, x'għandu jiġi kkonfigurat hemm sabiex is-server jaħdem.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U jimmaterjalizza l-oġġetti tagħna f'K8s.

Imma rridu noperaw mhux biss bil-miżwed u StatefulSets, irridu noħolqu ClickHouseInstallation, jiġifieri oġġett tat-tip ClickHouse, sabiex naħdmu magħha bħala ħaġa waħda. S'issa m'hemm l-ebda possibbiltà bħal din.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Iżda K8s għandu l-ħaġa sabiħa li ġejja. Irridu li jkollna x'imkien bħal din l-entità kumplessa li fiha l-cluster tagħna jkun assemblat minn imżiewed u StatefulSet.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U x’għandu jsir għal dan? L-ewwel, id-Definizzjoni tar-Riżorsi tad-Dwana tidħol fl-istampa. X'inhu? Din hija deskrizzjoni għall-K8s, li ser ikollok tip ta 'dejta ieħor, li rridu nżidu riżors tad-dwana mal-pod, StatefulSet, li se jkun kumpless ġewwa. Din hija deskrizzjoni tal-istruttura tad-data.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Nibagħtuha wkoll hemmhekk permezz ta 'kubectl apply. Kubernetes ħaduha bil-ferħ.

U issa fil-ħażna tagħna, l-oġġett f'etcd għandu l-opportunità li jirreġistra riżors personalizzat imsejjaħ ClickHouseInstallation.

Imma għalissa mhu se jiġri xejn aktar. Jiġifieri, jekk issa noħolqu l-fajl YAML li ħares lejn li jiddeskrivi shards u repliki u ngħidu "kubectl applika," allura Kubernetes jaċċettah, ipoġġih f'etcd u jgħid: "Kbir, imma ma nafx x'għandek tagħmel. magħha. Ma nafx kif inżomm ClickHouseInstallation.”

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Għaldaqstant, għandna bżonn xi ħadd biex jgħin lil Kubernetes iservi t-tip ta 'dejta l-ġdid. Fuq ix-xellug għandna kontrollur Kubernetes nattiv li jaħdem ma 'tipi ta' dejta indiġeni. U fuq il-lemin għandu jkollna kontrollur tad-dwana li jista 'jaħdem ma' tipi ta 'dejta personalizzati.

U b'mod ieħor jissejjaħ operatur. Inkludejtha speċifikament hawn bħala Kubernetes, minħabba li tista 'tiġi eżegwita wkoll barra K8s. Ħafna drabi, ovvjament, l-operaturi kollha huma eżegwiti f'Kubernetes, iżda xejn ma jipprevjenih milli joqgħod barra, għalhekk hawnhekk huwa mċaqlaq apposta barra.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U mbagħad, il-kontrollur tad-dwana, magħruf ukoll bħala l-operatur, jinteraġixxi ma 'Kubernetes permezz tal-API. Diġà jaf kif jinteraġixxi mal-API. U diġà jaf kif jimmaterjalizza ċ-ċirkwit kumpless li rridu nagħmlu minn riżors tad-dwana. Dan huwa eżattament dak li jagħmel l-operatur.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Kif jaħdem l-operatur? Ejja nħarsu lejn in-naħa tal-lemin biex naraw kif jagħmel dan. Ejja nsiru nafu kif l-operatur jimmaterjalizza dan kollu u kif isseħħ aktar interazzjoni ma 'K8s.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Operatur huwa programm. Hija orjentata lejn l-avvenimenti. L-operatur jissottoskrivi għal avvenimenti billi juża l-API Kubernetes. Il-Kubernetes API għandha punti ta' dħul fejn tista' tabbona għal avvenimenti. U jekk xi ħaġa tinbidel fil-K8s, allura Kubernetes jibgħat avvenimenti lil kulħadd, i.e. min ikun abbona għal dan il-punt API jirċievi notifiki.

L-operatur jissottoskrivi għall-avvenimenti u għandu jagħmel xi tip ta 'reazzjoni. Il-kompitu tiegħu huwa li jirrispondi għal avvenimenti emerġenti.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

L-avvenimenti huma ġġenerati minn ċerti aġġornamenti. Jasal il-fajl YAML tagħna b'deskrizzjoni ta' ClickHouseInstallation. Huwa mar għal etcd permezz ta 'kubectl apply. Ġie attivat avveniment hemmhekk, u bħala riżultat dan l-avveniment wasal għand l-operatur ClickHouse. L-operatur irċieva din id-deskrizzjoni. U jrid jagħmel xi ħaġa. Jekk wasal aġġornament għall-oġġett ClickHouseInstallation, allura trid taġġorna l-cluster. U l-kompitu tal-operatur huwa li jaġġorna l-cluster.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

X'inhu jagħmel? L-ewwel, irridu nfasslu pjan ta’ azzjoni għal x’se nagħmlu b’dan l-aġġornament. L-aġġornamenti jistgħu jkunu żgħar ħafna, i.e. żgħir fl-eżekuzzjoni YAML, iżda jista 'jinvolvi bidliet kbar ħafna fuq il-cluster. Għalhekk, l-operatur joħloq pjan, u mbagħad iżomm miegħu.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Skont dan il-pjan, jibda jsajjar din l-istruttura minn ġewwa sabiex jimmaterjalizza l-imżiewed, is-servizzi, i.e. jagħmel dak li hu l-kompitu ewlieni tiegħu. Dan huwa kif tibni cluster ClickHouse f'Kubernetes.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Issa ejja tmiss fuq ħaġa daqshekk interessanti. Din hija diviżjoni tar-responsabbiltà bejn Kubernetes u l-operatur, i.e. x'jagħmel Kubernetes, x'jagħmel l-operatur, u kif jinteraġixxu ma' xulxin.

Kubernetes huwa responsabbli għall-affarijiet tas-sistema, i.e. għal sett bażiku ta’ oġġetti li jistgħu jiġu interpretati bħala ambitu tas-sistema. Kubernetes jaf kif iniedi l-imżiewed, kif terġa 'tibda kontenituri, kif timmonta volumi, kif taħdem ma' ConfigMap, i.e. dak kollu li jista’ jissejjaħ sistema.

L-operaturi joperaw f'oqsma. Kull operatur huwa magħmul għall-qasam tas-suġġett tiegħu stess. Għamilna għal ClickHouse.

U l-operatur jinteraġixxi b'mod preċiż f'termini tal-qasam tas-suġġett, bħaż-żieda ta 'replika, tagħmel dijagramma, twaqqaf monitoraġġ. Dan jirriżulta f'diviżjoni.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja nħarsu lejn eżempju prattiku ta 'kif din id-diviżjoni tar-responsabbiltà sseħħ meta nagħmlu l-azzjoni add replica.

L-operatur jirċievi kompitu - biex iżid replika. X'jagħmel l-operatur? L-operatur se jikkalkula li jeħtieġ li jinħoloq StatefulSet ġdid, li fih iridu jiġu deskritti mudelli bħal dawn, pretensjoni tal-volum.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Huwa ħejja kollox u jgħaddih lil K8s. Jgħid li għandu bżonn ConfigMap, StatefulSet, Volum. Kubernetes qed jaħdem. Huwa jimmaterjalizza l-unitajiet bażiċi li magħhom jopera.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U mbagħad l-operatur ClickHouse jerġa' jidħol. Huwa diġà għandu pod fiżiku li fuqu diġà jista 'jagħmel xi ħaġa. U ClickHouse-operatur għal darb'oħra jaħdem f'termini ta 'dominju. Dawk. Speċifikament ClickHouse, sabiex tinkludi replika fi cluster, trid, l-ewwel, tikkonfigura l-iskema tad-dejta li teżisti f'dan il-cluster. U, it-tieni, din ir-replika għandha tkun inkluża fil-monitoraġġ sabiex tkun tista 'tiġi traċċata b'mod ċar. L-operatur diġà jikkonfigura dan.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U biss wara li tidħol fis-seħħ ClickHouse stess, i.e. entità oħra ta’ livell ogħla. Din hija diġà database. Għandu l-istanza tiegħu stess, replika oħra kkonfigurata li hija lesta biex tingħaqad mal-cluster.

Jirriżulta li katina ta 'eżekuzzjoni u diviżjoni tar-responsabbiltà meta żżid replika hija pjuttost twila.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Inkomplu bil-kompiti prattiċi tagħna. Jekk diġà għandek cluster, tista' temigra l-konfigurazzjoni.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Għamilna sabiex tkun tista' tippejstja direttament f'xml eżistenti, li ClickHouse jifhem.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Tista 'tirfina ClickHouse. L-iskjerament f'żoni biss huwa dak li tkellimt dwaru meta spjega hostPath, ħażna lokali. Dan huwa kif tagħmel l-iskjerament taż-żoni b'mod korrett.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Il-kompitu prattiku li jmiss huwa l-monitoraġġ.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Jekk il-cluster tagħna jinbidel, allura għandna bżonn nikkonfiguraw perjodikament il-monitoraġġ.

Ejja nħarsu lejn id-dijagramma. Diġà ħares lejn il-vleġeġ ħodor hawn. Issa ejja nħarsu lejn il-vleġeġ ħomor. Dan huwa kif irridu nissorveljaw il-cluster tagħna. Kif il-metriċi mill-cluster ClickHouse jidħlu fi Prometheus, u mbagħad fi Grafana.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

X'inhi d-diffikultà bil-monitoraġġ? Għaliex dan huwa ppreżentat bħala xi tip ta 'kisba? Id-diffikultà tinsab fid-dinamika. Meta jkollna cluster wieħed u jkun statiku, nistgħu nwaqqfu monitoraġġ darba u ma niddejqux aktar.

Imma jekk ikollna ħafna raggruppamenti, jew xi ħaġa qed tinbidel kontinwament, allura l-proċess huwa dinamiku. U l-konfigurazzjoni kontinwa tal-monitoraġġ hija ħela ta 'riżorsi u ħin, i.e. anke biss għażżien. Dan jeħtieġ li jkun awtomatizzat. Id-diffikultà tinsab fid-dinamika tal-proċess. U l-operatur awtomat dan tajjeb ħafna.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Kif żviluppa l-cluster tagħna? Fil-bidu kien hekk.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Imbagħad kien bħal dan.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Fl-aħħar, sar hekk.

U l-monitoraġġ isir awtomatikament mill-operatur. Punt uniku tad-dħul.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

U eżatt mal-ħruġ inħarsu lejn id-dashboard ta’ Grafana biex naraw kif il-ħajja tal-cluster tagħna qed tagħli ġewwa.

Mill-mod, dashboard Grafana huwa wkoll imqassam mal-operatur tagħna direttament fil-kodiċi tas-sors. Tista 'tqabbad u tuża. Id-DevOps tagħna tani din il-screenshot.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Fejn nixtiequ mmorru jmiss? Dan:

  • Żviluppa l-awtomazzjoni tat-test. Il-kompitu ewlieni huwa l-ittestjar awtomatizzat ta 'verżjonijiet ġodda.
  • Aħna rridu wkoll verament nawtomatizzaw l-integrazzjoni ma' ZooKeeper. U hemm pjanijiet biex jintegraw mal-operatur ZooKeeper. Dawk. Operatur inkiteb għal ZooKeeper u huwa loġiku li ż-żewġ operaturi jibdew jintegraw biex jibnu soluzzjoni aktar konvenjenti.
  • Irridu nagħmlu sinjali vitali aktar kumplessi.
  • Jiena enfasizzajt bl-aħdar li qed noqorbu għall-wirt ta’ Templates - DONE, jiġifieri bir-rilaxx li jmiss tal-operatur diġà se jkollna wirt ta’ mudelli. Din hija għodda qawwija li tippermettilek tibni konfigurazzjonijiet kumplessi minn biċċiet.
  • U rridu awtomazzjoni ta 'kompiti kumplessi. Il-wieħed ewlieni huwa Re-sharding.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Ejja nieħdu xi riżultati intermedji.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

X'nieħdu bħala riżultat? U ta’ min jagħmel jew le? Huwa saħansitra meħtieġ li tipprova tkaxkar id-database fil-Kubernetes u tuża l-operatur b'mod ġenerali u l-operatur Alitnity b'mod partikolari?

Fl-output nikseb:

  • Simplifikazzjoni u awtomazzjoni sinifikanti tal-konfigurazzjoni, l-iskjerament u l-manutenzjoni.
  • Immedjatament mibnija fil-monitoraġġ.
  • U mudelli kodifikati lesti għall-użu għal sitwazzjonijiet kumplessi. Azzjoni bħaż-żieda ta' replika m'għandhiex għalfejn issir manwalment. L-operatur jagħmel dan.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Fadal biss l-aħħar mistoqsija. Diġà għandna database f'Kubernetes, virtwalizzazzjoni. Xi ngħidu dwar il-prestazzjoni ta 'tali soluzzjoni, speċjalment peress li ClickHouse hija ottimizzata għall-prestazzjoni?

It-tweġiba hija kollox tajjeb! Mhux se nidħol fid-dettall; dan huwa s-suġġett ta’ rapport separat.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Iżda hemm proġett bħal TSBS. X'inhu l-kompitu ewlieni tiegħu? Dan huwa test tal-prestazzjoni tad-database. Dan huwa tentattiv biex tqabbel sħun ma sħun, artab ma artab.

Kif jaħdem? Jiġi ġġenerat sett wieħed tad-dejta. Imbagħad dan is-sett ta' dejta jitmexxa fuq databases differenti bl-użu tal-istess sett ta' testijiet. U kull database ssolvi problema waħda bil-mod kif taf kif. U mbagħad tista 'tqabbel ir-riżultati.

Diġà jappoġġja mazz kbir ta 'databases. Identifikajt tlieta ewlenin. Dan:

  • TimecaleDB.
  • InfluxDB.
  • ClickHouse.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Sar ukoll paragun ma’ soluzzjoni oħra simili. Tqabbil ma 'RedShift. Sar paragun fuq Amazon. ClickHouse huwa wkoll ferm qabel kulħadd f'din il-kwistjoni.

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Liema konklużjonijiet jistgħu jittieħdu minn dak li għedt?

  • DB f'Kubernetes huwa possibbli. Probabbilment kwalunkwe huwa possibbli, iżda b'mod ġenerali jidher li huwa possibbli. ClickHouse f'Kubernetes huwa definittivament possibbli bl-għajnuna tal-operatur tagħna.
  • L-operatur jgħin l-awtomazzjoni tal-proċessi u verament jagħmel il-ħajja aktar faċli.
  • Il-prestazzjoni hija normali.
  • U jidhirna li dan jista' u għandu jintuża.

Sors miftuħ - ingħaqad magħna!

Kif diġà għedt, l-operatur huwa prodott kompletament miftuħ, għalhekk ikun tajjeb ħafna jekk in-numru massimu ta 'nies użah. Ingħaqad magħna! Qed nistennewkom ilkoll!

Grazzi lilek kollha!

mistoqsijiet

Operatur f'Kubernetes għall-ġestjoni ta' clusters ta' database. Vladislav Klimenko (Altinity, 2019)

Grazzi tar-rapport! Jisimni Anton. Jien minn SEMrush. Qed nistaqsi x'hemm mal-qtugħ. Nisimgħu dwar il-monitoraġġ, iżda xejn dwar il-qtugħ, jekk nitkellmu dwar il-cluster kollu. Pereżempju, qajjimna cluster dwar il-ħardwer. U nużaw logging ċentralizzat, niġbruhom f'munzelli komuni bl-użu ta 'mezzi standard. U mbagħad minn hemm niksbu d-data li tinteressana.

Mistoqsija tajba, jiġifieri illoggjar f'todo list. L-operatur tagħna għadu ma awtomatx dan. Għadu qed jiżviluppa, il-proġett għadu pjuttost żgħir. Aħna nifhmu l-ħtieġa għall-qtugħ. Dan huwa wkoll suġġett importanti ħafna. U probabbilment mhux inqas importanti mill-monitoraġġ. Iżda l-ewwel fuq il-lista għall-implimentazzjoni kien il-monitoraġġ. Se jkun hemm logging. Naturalment, nippruvaw nawtomatizzaw l-aspetti kollha tal-ħajja tal-cluster. Għalhekk, it-tweġiba hija li bħalissa l-operatur, sfortunatament, ma jafx kif jagħmel dan, iżda huwa fil-pjanijiet, se nagħmluh. Jekk trid tissieħeb, imbagħad iġbed it-talba, jekk jogħġbok.

Bongu! Grazzi tar-rapport! Għandi mistoqsija standard relatata mal-Volumi Persistenti. Meta noħolqu konfigurazzjoni ma 'dan l-operatur, kif l-operatur jiddetermina fuq liema node għandna diska jew folder partikolari mehmuża? L-ewwel irridu nispjegalu li jekk jogħġbok poġġi l-ClickHouse tagħna fuq dawn in-nodi li għandhom disk?

Sa fejn nifhem, din il-mistoqsija hija kontinwazzjoni tal-ħażna lokali, speċjalment il-parti hostPath tagħha. Dan huwa bħal tispjega lis-sistema kollha li l-pod jeħtieġ li jiġi mniedi fuq tali u tali node, li għandna diska fiżikament konnessa, li hija mmuntata tul tali jew tali mogħdija. Din hija taqsima sħiħa li missejt b'mod superfiċjali ħafna għax it-tweġiba hemm hija pjuttost kbira.

Fil-qosor jidher bħal dan. Naturalment, irridu nfornu dawn il-volumi. Bħalissa, m'hemm l-ebda dispożizzjoni dinamika fil-ħażna lokali, għalhekk DevOps għandu jaqta 'd-diski nfushom, dawn il-volumi. U għandhom jispjegaw il-provvediment ta 'Kubernetes li ser ikollok volumi Persistenti ta' tali u tali klassi, li jinsabu fuq tali u tali nodi. Imbagħad ikollok bżonn tispjega lil Kubernetes li l-imżiewed li jeħtieġu tali jew tali klassi ta 'ħażna lokali jeħtieġ li jkunu diretti biss lejn tali u tali nodi bl-użu ta' tikketti. Għal dawn il-finijiet, l-operatur għandu l-abbiltà li jassenja xi tip ta 'tikketta u waħda għal kull istanza ospitanti. U jirriżulta li l-imżiewed se jiġu mgħoddija minn Kubernetes biex jaħdmu biss fuq nodi li jissodisfaw ir-rekwiżiti, tikketti, f'termini sempliċi. L-amministraturi jassenjaw tikketti u diski tal-provvista manwalment. U mbagħad tiskali.

U hija t-tielet għażla, lokali, li tgħin biex tagħmel dan ftit aktar faċli. Kif diġà enfasizzajt, dan huwa xogħol iebes fuq l-irfinar, li fl-aħħar mill-aħħar jgħin biex tinkiseb prestazzjoni massima.

Għandi t-tieni mistoqsija relatata ma' dan. Kubernetes kien iddisinjat b'tali mod li ma jimpurtax għalina jekk nitilfux node jew le. X'għandna nagħmlu f'dan il-każ jekk aħna tlifna n-node fejn shard tagħna prekarja?

Iva, Kubernetes inizjalment kien pożizzjonat li r-relazzjoni tagħna mal-imżiewed tagħna hija bħall-baqar, iżda hawn magħna kull disk isir xi ħaġa bħal pet. Hemm problema bħal din li ma nistgħux narmihom biss. U l-iżvilupp ta 'Kubernetes sejjer fid-direzzjoni li huwa impossibbli li tiġi trattata kompletament b'mod filosofiku, bħallikieku kienet riżorsa kompletament skartata.

Issa għal mistoqsija prattika. X'għandek tagħmel jekk tlift in-node li fuqu kien hemm id-diska? Hawnhekk il-problema qed tissolva f'livell ogħla. Fil-każ ta’ ClickHouse, għandna repliki li jaħdmu f’livell ogħla, i.e. fil-livell ClickHouse.

X'inhi d-dispożizzjoni li tirriżulta? DevOps huwa responsabbli biex jiżgura li d-dejta ma tintilifx. Huwa għandu jwaqqaf ir-replikazzjoni b'mod korrett u għandu jiżgura li r-replikazzjoni tkun qed taħdem. Ir-replika fil-livell ClickHouse għandu jkollha data duplikata. Dan mhuwiex il-kompitu li l-operatur isolvi. U mhux il-problema li Kubernetes innifsu jsolvi. Dan huwa fil-livell ClickHouse.

X'għandek tagħmel jekk in-nodu tal-ħadid tiegħek jaqa'? U jirriżulta li ser ikollok bżonn tinstalla t-tieni waħda, tipprovdi d-diska sew fuqha, u tapplika tikketti. U wara dan, se jissodisfa r-rekwiżiti li Kubernetes jista 'jniedi pod ta' istanza fuqha. Kubernetes se jniediha. In-numru ta 'miżwed tiegħek mhuwiex biżżejjed biex jilħaq in-numru speċifikat. Se tgħaddi miċ-ċiklu li wrejt. U fl-ogħla livell, ClickHouse jifhem li dħalna replika, għadha vojta u rridu nibdew nittrasferixxu d-dejta lejha. Dawk. Dan il-proċess għadu mhux awtomatizzat sew.

Grazzi tar-rapport! Meta jiġri kull xorta ta 'affarijiet koroh, l-operatur jiġġarraf u jerġa' jibda, u f'dak il-mument jaslu l-avvenimenti, b'xi mod timmaniġġja dan?

X'jiġri jekk l-operatur iġġarraf u jerġa' jibda, hux?

Iva. U f’dak il-mument waslu l-ġrajjiet.

Il-kompitu ta 'x'għandu jsir f'dan il-każ huwa parzjalment maqsum bejn l-operatur u Kubernetes. Kubernetes għandu l-abbiltà li jerġa' jwettaq avveniment li jkun seħħ. Replays. U l-kompitu ta 'l-operatur huwa li jiżgura li meta l-ġurnal ta' l-avvenimenti jerġa 'jdaqq fuqu, dawn l-avvenimenti jkunu idempotenti. U sabiex l-okkorrenza ripetuta tal-istess avveniment ma tkisserx is-sistema tagħna. U l-operatur tagħna jlaħħaq ma 'dan il-kompitu.

Bongu! Grazzi tar-rapport! Dmitry Zavyalov, kumpanija Smedova. Hemm pjanijiet biex tiżdied il-kapaċità li jiġi kkonfigurat b'haproxy lill-operatur? Inkun interessat f'xi balancer ieħor minbarra dak standard, sabiex ikun intelliġenti u jifhem li ClickHouse verament hemm.

Qed titkellem dwar Ingress?

Iva, ibdel Ingress b'haproxy. F'haproxy tista' tispeċifika t-topoloġija tar-raggruppament fejn għandu repliki.

Għadna ma ħsibniex dwarha. Jekk għandek bżonnha u tista' tispjega għaliex hija meħtieġa, allura jkun possibbli li timplimentaha, speċjalment jekk trid tipparteċipa. Aħna se nkunu kuntenti li nikkunsidraw l-għażla. It-tweġiba qasira hija le, bħalissa m'għandniex tali funzjonalità. Grazzi tal-ponta, aħna ser inħarsu lejn din il-kwistjoni. U jekk tispjega wkoll il-każ ta 'użu u għaliex huwa meħtieġ fil-prattika, pereżempju, toħloq kwistjonijiet fuq GitHub, allura dan ikun kbir.

Diġà.

Multa. Aħna miftuħa għal kull suġġeriment. U haproxy huwa miżjud mal-lista todo. Il-lista todo qed tikber, għadha ma tiċkienx. Iżda dan huwa tajjeb, ifisser li l-prodott huwa fid-domanda.

Sors: www.habr.com

Żid kumment