Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang taho gipahinungod sa praktikal nga mga isyu sa pagpalambo sa usa ka operator sa Kubernetes, pagdesinyo sa iyang arkitektura ug sukaranan nga mga prinsipyo sa operasyon.

Sa unang bahin sa report atong tagdon:

  • unsa ang operator sa Kubernetes ug nganong gikinahanglan kini;
  • kung giunsa sa operator nga gipasimple ang pagdumala sa komplikado nga mga sistema;
  • unsa ang mahimo ug dili mahimo sa operator.

Sunod, magpadayon kita sa paghisgot sa internal nga istruktura sa operator. Atong tan-awon ang arkitektura ug operasyon sa operator matag lakang. Atong tan-awon kini sa detalye:

  • interaksyon tali sa operator ug Kubernetes;
  • unsa nga mga gimbuhaton ang gigamit sa operator ug unsa ang mga gimbuhaton nga gitugyan niini sa Kubernetes.

Atong tan-awon ang pagdumala sa mga shards ug mga replika sa database sa Kubernetes.
Sunod, atong hisgutan ang mga isyu sa pagtipig sa datos:

  • unsaon pagtrabaho sa Persistent Storage gikan sa punto sa panglantaw sa operator;
  • mga lit-ag sa paggamit sa Lokal nga Pagtipig.

Sa kataposang bahin sa taho, atong tagdon ang praktikal nga mga pananglitan sa pagpadapat clickhouse-operator gikan sa Amazon o Google Cloud Service. Ang report gibase sa panig-ingnan sa kalamboan ug operating nga kasinatian sa usa ka operator alang sa ClickHouse.

Video:

Ang akong ngalan mao si Vladislav Klimenko. Karon gusto kong maghisgot bahin sa among kasinatian sa pagpalambo ug pag-operate sa usa ka operator, ug kini usa ka espesyal nga operator alang sa pagdumala sa mga cluster sa database. Pananglitan ClickHouse-operator sa pagdumala sa ClickHouse cluster.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ngano nga kami adunay higayon nga maghisgot bahin sa operator ug ClickHouse?

  • Among gisuportahan ug gipalambo ang ClickHouse.
  • Sa pagkakaron, naningkamot kami sa hinayhinay nga paghimo sa among kontribusyon sa pagpalambo sa ClickHouse. Ug ikaduha kami pagkahuman sa Yandex sa mga termino sa gidaghanon sa mga pagbag-o nga gihimo sa ClickHouse.
  • Kami naningkamot sa paghimo og dugang nga mga proyekto alang sa ClickHouse ecosystem.

Gusto nakong isulti kanimo ang bahin sa usa niini nga mga proyekto. Kini mahitungod sa ClickHouse-operator para sa Kubernetes.

Sa akong report gusto nakong hisgotan ang duha ka topiko:

  • Ang una nga hilisgutan mao kung giunsa ang among ClickHouse database management operator nagtrabaho sa Kubernetes.
  • Ang ikaduha nga hilisgutan mao kung giunsa ang bisan unsang operator nga nagtrabaho, i.e. kung giunsa kini nakig-uban sa Kubernetes.

Bisan pa, kining duha ka pangutana mag-intersect sa akong report.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Kinsa ang interesado nga maminaw sa akong gipaningkamotan nga isulti?

  • Kini mahimong labing interesado sa mga nag-operate sa mga operator.
  • O alang sa mga gusto nga maghimo sa ilang kaugalingon aron masabtan kung giunsa kini molihok sa sulod, kung giunsa ang pakig-uban sa operator sa Kubernetes, ug kung unsang mga lit-ag ang mahimong makita.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Aron mas masabtan kung unsa ang atong hisgutan karon, maayong ideya nga mahibal-an kung giunsa ang Kubernetes molihok ug adunay pipila ka sukaranan nga pagbansay sa panganod.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unsa ang ClickHouse? Kini usa ka kolumnar nga database nga adunay piho nga mga bahin alang sa online nga pagproseso sa mga analytical nga pangutana. Ug kini hingpit nga bukas nga gigikanan.

Ug importante nga atong mahibaloan ang duha lamang ka butang. Kinahanglan nimong masayran nga kini usa ka database, mao nga ang akong isulti kanimo magamit sa halos bisan unsang database. Ug ang kamatuoran nga ang ClickHouse DBMS nga mga timbangan maayo kaayo, naghatag halos linear scalability. Ug busa, ang estado sa cluster usa ka natural nga kahimtang alang sa ClickHouse. Ug kami labing interesado sa paghisgot kung giunsa ang pagserbisyo sa cluster sa ClickHouse sa Kubernetes.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Nganong gikinahanglan siya didto? Ngano nga dili kita makapadayon sa pag-operate niini sa atong kaugalingon? Ug ang mga tubag bahin sa teknikal ug bahin sa organisasyon.

  • Sa praktis, nagkadaghan ang atong nasugatan nga sitwasyon diin sa mga dagkong kompanya halos tanang component naa na sa Kubernetes. Ang mga database nagpabilin sa gawas.
  • Ug ang pangutana labi nga gipangutana: "Mahimo ba kini ibutang sa sulod?" Busa, ang mga dagkong kompanya naningkamot nga makab-ot ang labing taas nga panaghiusa sa pagdumala aron dali nga makadumala sa ilang mga bodega sa datos.
  • Ug kini labi nga makatabang kung kinahanglan nimo ang labing kadaghan nga higayon nga masubli ang parehas nga butang sa usa ka bag-ong lugar, i.e. labing kadaghan nga kadali.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unsa ka sayon ​​o lisud kini? Kini, siyempre, mahimo pinaagi sa kamot. Apan dili kini yano, tungod kay kami adunay dugang nga pagkakomplikado sa pagdumala sa Kubernetes mismo, apan sa samang higayon ang mga detalye sa ClickHouse gipatong. Ug ang ingon nga panagsama nga sangputanan.

Ug ang tanan sa tingub naghatag kini usa ka medyo dako nga hugpong sa mga teknolohiya, nga nahimong lisud nga pagdumala, tungod kay ang Kubernetes nagdala sa kaugalingon nga adlaw-adlaw nga mga isyu sa operasyon, ug ang ClickHouse nagdala sa kaugalingon nga mga isyu sa adlaw-adlaw nga operasyon. Ilabi na kung kami adunay daghang mga ClickHouse, ug kinahanglan namon nga kanunay nga buhaton ang usa ka butang uban kanila.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Uban sa usa ka dinamikong pag-configure, ang ClickHouse adunay daghang daghang mga isyu nga nagmugna kanunay nga pagkarga sa DevOps:

  • Kung gusto namon nga usbon ang usa ka butang sa ClickHouse, pananglitan, pagdugang usa ka replika o shard, nan kinahanglan namon nga madumala ang pagsumpo.
  • Unya usba ang data schema, tungod kay ang ClickHouse adunay usa ka piho nga pamaagi sa sharding. Didto kinahanglan nimo nga ibutang ang data diagram, ibutang ang mga configuration.
  • Kinahanglan nimo nga i-set up ang pagmonitor.
  • Pagkolekta og mga troso para sa bag-ong shards, para sa bag-ong mga replika.
  • Pag-atiman sa pagpasig-uli.
  • Ug i-restart.

Kini ang naandan nga mga buluhaton nga gusto nako nga dali gamiton.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang Kubernetes mismo makatabang pag-ayo sa operasyon, apan sa sukaranang mga butang sa sistema.

Ang Kubernetes maayo sa pagpadali ug pag-automate sa mga butang sama sa:

  • Pagpahiuli.
  • I-restart.
  • Pagdumala sa sistema sa pagtipig.

Maayo kana, kana ang husto nga direksyon, apan siya hingpit nga wala’y nahibal-an kung giunsa ang pag-operate sa usa ka cluster sa database.

Gusto namon ang labi pa, gusto namon nga ang tibuuk nga database molihok sa Kubernetes.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Gusto ko nga makakuha usa ka butang sama sa usa ka dako nga usa ka magic pula nga butones nga imong gipugos ug usa ka kumpol nga adunay adlaw-adlaw nga mga buluhaton nga kinahanglan sulbaron gipakatap ug gipadayon sa tibuuk nga siklo sa kinabuhi. ClickHouse cluster sa Kubernetes.

Ug gisulayan namo ang paghimo og solusyon nga makatabang sa pagpasayon ​​sa trabaho. Kini usa ka ClickHouse-operator para sa Kubernetes gikan sa Altinity.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang operator usa ka programa kansang panguna nga tahas mao ang pagdumala sa ubang mga programa, i.e. kini usa ka manedyer.

Ug kini adunay mga sumbanan sa pamatasan. Mahimo nimong tawagan kini nga gi-code nga kahibalo bahin sa hilisgutan nga lugar.

Ug ang iyang panguna nga tahas mao ang paghimo sa kinabuhi sa DevOps nga labi kadali ug pagkunhod sa micromanagement, aron siya (DevOps) naghunahuna na sa taas nga lebel nga mga termino, i.e., aron siya (DevOps) dili moapil sa micromanagement, aron dili siya ma-configure. mano-mano ang tanang detalye.

Ug ang operator lang usa ka robotic assistant nga nagdumala sa mga microtasks ug nagtabang sa DevOps.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Nganong kinahanglan nimo ang usa ka operator? Siya maayo kaayo sa duha ka bahin:

  • Kung ang espesyalista nga nag-atubang sa ClickHouse wala’y igong kasinatian, apan kinahanglan na nga mag-operate sa ClickHouse, gipadali sa operator ang operasyon ug gitugotan ka nga mag-operate sa usa ka cluster sa ClickHouse nga adunay labi ka komplikado nga pagsumpo, nga wala’y daghang detalye kung giunsa kini tanan molihok. sulod. Gihatagan lang nimo siya og taas nga lebel nga mga buluhaton, ug kini molihok.
  • Ug ang ikaduha nga buluhaton diin kini labing maayo nga nahimo mao kung kinahanglan nga awtomatiko ang daghang mga tipikal nga buluhaton. Pagtangtang sa mga microtasks gikan sa mga tagdumala sa sistema.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Kini mao ang labing gikinahanglan sa bisan sa mga bag-o lang nagsugod sa ilang panaw, o sa mga kinahanglan nga mobuhat sa usa ka daghan sa automation.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Sa unsang paagi ang pamaagi nga nakabase sa operator lahi sa ubang mga sistema? Adunay Helm. Makatabang usab kini sa pag-install sa ClickHouse; mahimo kang magdrowing og mga tsart sa timon, nga mag-install pa gani ug tibuok cluster sa ClickHouse. Unsa man ang kalainan tali sa operator ug parehas, pananglitan, Helm?

Ang panguna nga sukaranan nga kalainan mao nga ang Helm mao ang pagdumala sa pakete ug ang Operator nagpadayon sa usa ka lakang. Kini usa ka suporta alang sa tibuuk nga siklo sa kinabuhi. Dili lamang kini ang pag-instalar, kini ang adlaw-adlaw nga mga buluhaton nga naglakip sa pag-scale, sharding, i.e. ang tanan nga kinahanglan buhaton sa panahon sa siklo sa kinabuhi (kung kinahanglan, dayon pagtangtang usab) - kini tanan gidesisyonan sa operator. Gisulayan niini ang pag-automate ug pagpadayon sa tibuuk nga siklo sa kinabuhi sa software. Kini ang sukaranan nga kalainan gikan sa ubang mga solusyon nga gipresentar.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

That was the introductory part, padayon ta.

Giunsa nato pagtukod ang atong operator? Kami naningkamot sa pagduol sa isyu sa pagdumala sa ClickHouse cluster isip usa ka kapanguhaan.

Dinhi kita adunay input data sa wala nga bahin sa hulagway. Kini ang YAML nga adunay detalye sa cluster, nga gipasa sa Kubernetes sa klasiko nga paagi pinaagi sa kubectl. Didto gikuha kini sa among operator ug gihimo ang iyang salamangka. Ug sa output atong makuha ang mosunod nga laraw. Kini usa ka pagpatuman sa ClickHouse sa Kubernetes.

Ug unya hinayhinay nga tan-awon kung giunsa ang pagtrabaho sa operator, unsa nga kasagaran nga mga buluhaton ang masulbad. Among tagdon lamang ang tipikal nga mga buluhaton tungod kay kami adunay limitado nga panahon. Ug dili tanan nga madesisyonan sa operator hisgutan.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Magsugod ta sa praktis. Ang among proyekto hingpit nga bukas nga gigikanan, aron makita nimo kung giunsa kini molihok sa GitHub. Ug mahimo nimong ipadayon ang mga konsiderasyon nga kung gusto nimo nga ilunsad kini, mahimo ka magsugod sa Giya sa Dali nga Pagsugod.

Kung gusto nimo nga masabtan ang detalye, nan gisulayan namon nga ipadayon ang dokumentasyon sa labi pa o dili kaayo disente nga porma.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Magsugod ta sa praktikal nga problema. Ang unang buluhaton, diin kitang tanan gusto nga magsugod, mao ang pagpadagan sa unang pananglitan sa usa ka paagi. Unsaon nako paglansad ang ClickHouse gamit ang operator, bisan kung wala ako kahibalo kung giunsa kini molihok? Nagsulat kami usa ka manifesto, tungod kay ... Ang tanan nga komunikasyon sa k8s mao ang komunikasyon pinaagi sa mga pagpakita.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Kini usa ka komplikado nga manifesto. Kung unsa ang among gipasiugda sa pula mao ang kinahanglan namon nga ipunting. Gihangyo namon ang operator nga maghimo usa ka cluster nga ginganlag demo.

Kini ang sukaranang mga pananglitan sa pagkakaron. Ang pagtipig wala pa gihulagway, apan mobalik kami sa pagtipig sa ulahi. Sa pagkakaron, atong obserbahan ang dynamics sa pag-uswag sa cluster.

Gihimo namo kini nga manifesto. Gipakaon namo kini sa among operator. Nagtrabaho siya, naghimo siya og salamangka.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Atong tan-awon ang console. Tulo ka mga sangkap ang interesado: usa ka Pod, duha nga Serbisyo, ug usa ka StatefulSet.

Ang operator nagtrabaho, ug atong makita kung unsa gayud ang iyang gibuhat.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Naghimo siya og ingon niini. Kami adunay usa ka StatefulSet, Pod, ConfigMap para sa matag replika, ConfigMap para sa tibuok cluster. Ang mga serbisyo gikinahanglan isip entry point sa cluster.

Ang mga serbisyo mao ang sentro nga Serbisyo sa Pagbalanse sa Load ug mahimo usab nga gamiton alang sa matag kopya, alang sa matag shard.

Ang among sukaranan nga cluster ingon niini. Kini gikan sa usa ka node.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Magpadayon ta ug magkomplikado sa mga butang. Kinahanglan natong bungkagon ang cluster.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang among mga buluhaton nagkadako, ang mga dinamika nagsugod. Gusto namon nga magdugang usa ka tipik. Gisunod namo ang kalamboan. Gibag-o namon ang among espesipikasyon. Gipakita namo nga gusto namo ang duha ka shards.

Kini ang parehas nga file nga dinamikong nag-uswag uban ang pagtubo sa sistema. Ang pagtipig dili, ang pagtipig hisgotan pa, kini usa ka lahi nga hilisgutan.

Gipakaon namo ang operator sa YAML ug tan-awon kung unsa ang mahitabo.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang operator naghunahuna ug naghimo sa mosunod nga mga entidad. Naa na mi duha ka Pods, tulo ka Services ug, kalit lang, 2 StatefulSets. Nganong 2 StatefulSets?

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Sa diagram kini ingon niini - kini ang among inisyal nga kahimtang, sa dihang kami adunay usa ka pod.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Kini nahimong ingon niini. Sa pagkakaron ang tanan yano ra, kini gi-duplicate.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug nganong nahimong duha ka StatefulSets? Dinhi kinahanglan naton nga likayan ug hisgutan ang pangutana kung giunsa pagdumala ang mga Pod sa Kubernetes.

Adunay usa ka butang nga gitawag StatefulSet nga nagtugot kanimo sa paghimo og usa ka set sa Pods gikan sa usa ka template. Ang yawe nga hinungdan dinhi mao ang Template. Ug mahimo nimong ilunsad ang daghang mga Pod gamit ang usa ka template sa usa ka StatefulSet. Ug ang yawe nga hugpong sa mga pulong dinhi mao ang "daghang Pods alang sa usa ka template."

Ug adunay usa ka dako nga tentasyon sa paghimo sa tibuok cluster, pagputos niini ngadto sa usa ka StatefulSet. Kini molihok, wala’y problema niini. Apan adunay usa ka caveat. Kung gusto namon nga mag-assemble sa usa ka heterogeneous cluster, nga mao, gikan sa daghang mga bersyon sa ClickHouse, unya ang mga pangutana magsugod sa pagtungha. Oo, ang StatefulSet makahimo sa usa ka rolling update, ug didto mahimo nimong ilunsad ang usa ka bag-ong bersyon, ipasabut nga kinahanglan nimo nga sulayan ang dili labaw pa sa daghang mga node sa parehas nga oras.

Apan kung atong i-extrapolate ang buluhaton ug isulti nga gusto namong maghimo usa ka hingpit nga heterogeneous cluster ug dili kami gusto nga magbag-o gikan sa daan nga bersyon sa usa ka bag-o gamit ang usa ka rolling update, apan gusto lang namon nga maghimo usa ka heterogenous cluster pareho sa termino. sa lain-laing mga bersyon sa ClickHouse ug sa mga termino sa lain-laing mga storage. Gusto namon, pananglitan, nga maghimo pipila nga mga kopya sa lahi nga mga disk, sa hinay, sa kinatibuk-an, aron hingpit nga magtukod usa ka heterogeneous cluster. Ug tungod sa kamatuoran nga ang StatefulSet naghimo sa usa ka standardized nga solusyon gikan sa usa ka template, walay paagi sa pagbuhat niini.

Human sa pipila ka paghunahuna, nakahukom nga buhaton namo kini niining paagiha. Kami adunay matag kopya sa kaugalingon nga StatefulSet. Adunay pipila ka mga kakulian sa kini nga solusyon, apan sa praktis kini tanan hingpit nga gilakip sa operator. Ug adunay daghang mga bentaha. Mahimo natong tukuron ang eksaktong cluster nga gusto nato, pananglitan, usa ka hingpit nga heterogenous. Busa, sa usa ka cluster diin kita adunay duha ka shards nga adunay usa ka replica, kita adunay 2 StatefulSets ug 2 Pods nga tukma tungod kay gipili namo kini nga pamaagi alang sa mga rason nga gipahayag sa ibabaw aron makahimo sa usa ka heterogeneous cluster.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Balikan nato ang praktikal nga mga problema. Sa among cluster kinahanglan namon nga i-configure ang mga tiggamit, i.e. kinahanglan nimo nga buhaton ang pipila nga pag-configure sa ClickHouse sa Kubernetes. Ang operator naghatag sa tanan nga mga posibilidad alang niini.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Mahimo natong isulat ang gusto nato direkta sa YAML. Ang tanan nga mga kapilian sa pag-configure direkta nga gimapa gikan sa kini nga YAML ngadto sa ClickHouse configs, nga dayon ipanghatag sa tibuuk nga cluster.

Mahimo nimong isulat kini nga sama niini. Pananglitan kini. Ang password mahimong ma-encrypt. Hingpit nga ang tanan nga mga kapilian sa pag-configure sa ClickHouse gisuportahan. Ania ang usa ka pananglitan.

Ang configuration sa cluster giapod-apod isip ConfigMap. Sa praktis, ang pag-update sa ConfigMap dili mahitabo dayon, busa kung ang cluster dako, nan ang proseso sa pagduso sa configuration nagkinahanglan og pipila ka panahon. Apan kining tanan sayon ​​​​kaayo nga gamiton.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Himoon nato nga komplikado ang buluhaton. Nag-uswag ang cluster. Gusto namon nga kopyahon ang datos. Sa ato pa, aduna na kitay duha ka shards, usa ka kopya matag usa, ug ang mga tiggamit gi-configure. Nagdako kami ug gusto nga mag-replikasyon.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unsa ang atong gikinahanglan alang sa pagkopya?

Kinahanglan namon ang ZooKeeper. Sa ClickHouse, ang replikasyon gihimo gamit ang ZooKeeper. Ang ZooKeeper gikinahanglan aron ang lain-laing ClickHouse replika adunay usa ka consensus mahitungod sa mga bloke sa datos diin ang ClickHouse.

Ang ZooKeeper mahimong magamit ni bisan kinsa. Kung ang negosyo adunay usa ka eksternal nga ZooKeeper, nan kini magamit. Kung dili, mahimo nimo kini i-install gikan sa among repository. Adunay usa ka installer nga naghimo niining tibuok nga butang nga mas sayon.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug ang diagram sa interaksiyon sa tibuuk nga sistema nahimo nga ingon niini. Adunay kami mga Kubernetes isip plataporma. Gipatuman niini ang ClickHouse operator. Gihulagway nako ang ZooKeeper dinhi. Ug ang operator nakig-uban sa ClickHouse ug ZooKeeper. Sa ato pa, resulta sa interaksyon.

Ug kining tanan gikinahanglan alang sa ClickHouse aron malampuson nga makopya ang datos sa k8s.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Atong tan-awon karon ang buluhaton mismo, kung unsa ang hitsura sa pagpakita alang sa pagkopya.

Nagdugang kami og duha ka seksyon sa among manifest. Ang una mao kung asa makuha ang ZooKeeper, nga mahimo sa sulod sa Kubernetes o sa gawas. Kini usa lamang ka paghulagway. Ug nag-order kami mga replika. Mga. gusto namo duha ka replika. Sa kinatibuk-an, kita kinahanglan nga adunay 4 pod sa output. Nahinumdom kami bahin sa pagtipig, kini mobalik sa ulahi. Ang pagtipig usa ka lahi nga istorya.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ingon niini.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Kini nahimong ingon niini. Gidugang ang mga replika. Ang ika-4 nga usa dili angay, kami nagtuo nga mahimo nga daghan sila didto. Ug ang ZooKeeper gidugang sa kilid. Ang mga laraw nahimong mas komplikado.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug panahon na aron idugang ang sunod nga buluhaton. Atong idugang ang Persistent Storage.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)Alang sa Persistent nga Pagtipig kami adunay lainlaing mga kapilian.

Kung kita nagdagan sa usa ka cloud provider, pananglitan, gamit ang Amazon, Google, nan adunay usa ka dako nga tintasyon sa paggamit sa cloud storage. Kini sayon ​​​​kaayo, kini maayo.

Ug adunay ikaduha nga kapilian. Kini alang sa lokal nga pagtipig, kung kita adunay mga lokal nga disk sa matag node. Kini nga kapilian labi ka lisud nga ipatuman, apan sa samang higayon kini mas produktibo.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Atong tan-awon kung unsa ang naa kanato bahin sa pagtipig sa panganod.

Adunay mga bentaha. Sayon ra kaayo ang pag-configure. Nag-order lang kami gikan sa cloud provider nga palihug hatagi kami nga pagtipig sa ingon ug ingon nga kapasidad, sa ingon ug ingon niana nga klase. Ang mga klase gieskedyul sa mga provider nga independente.

Ug adunay kakulian. Alang sa pipila, kini usa ka dili kritikal nga disbentaha. Siyempre, adunay pipila ka mga isyu sa performance. Kini sayon ​​​​kaayo nga gamiton ug kasaligan, apan adunay pipila ka mga potensyal nga mga kakulangan sa pasundayag.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug tungod kay Ang ClickHouse espesipikong naka-focus sa pagka-produktibo, ang usa mahimong moingon nga gipislit niini ang tanan nga mahimo niini, mao nga daghang mga kliyente ang misulay sa pagpislit sa labing taas nga produktibidad.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug aron makuha ang labing kaayo niini, kinahanglan namon ang lokal nga pagtipig.

Naghatag ang Kubernetes og tulo ka abstraction alang sa paggamit sa lokal nga storage sa Kubernetes. Kini:

  • EmptyDir
  • HostPath.
  • Lokal nga

Atong tan-awon kon sa unsang paagi sila magkalahi ug sa unsang paagi sila managsama.

Una, sa tanan nga tulo nga mga pamaagi kami adunay pagtipig - kini ang mga lokal nga disk nga nahimutang sa parehas nga pisikal nga k8s node. Apan sila adunay pipila ka mga kalainan.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Magsugod ta sa pinakasimple, i.e. emptyDir. Unsa kini sa praktis? Sa among espesipikasyon, among gihangyo ang containerization system (kasagaran Docker) sa paghatag kanamo og access sa usa ka folder sa lokal nga disk.

Sa praktis, ang Docker nagmugna og usa ka temporaryo nga folder sa usa ka dapit sa iyang kaugalingong mga agianan ug gitawag kini nga usa ka taas nga hash. Ug naghatag usa ka interface aron ma-access kini.

Sa unsang paagi kini molihok nga maalamon sa pasundayag? Kini molihok sa lokal nga katulin sa disk, i.e. Kini mao ang bug-os nga access sa imong screw.

Apan kini nga kaso adunay kakulangan. Persistent medyo kadudahan sa kini nga butang. Sa una nga higayon nga naglihok ang Docker nga adunay mga sulud, nawala ang Persistent. Kung gusto sa Kubernetes nga ibalhin kini nga Pod sa lain nga disk tungod sa pipila ka hinungdan, mawala ang data.

Kini nga pamaagi maayo alang sa mga pagsulay, tungod kay kini nagpakita na sa normal nga tulin, apan alang sa usa ka butang nga seryoso kini nga kapilian dili angay.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Busa adunay usa ka ikaduha nga paagi. Kini ang hostPath. Kung imong tan-awon ang miaging slide ug kini, usa ra ang imong makita nga kalainan. Ang among folder mibalhin gikan sa Docker direkta ngadto sa Kubernetes node. Kini usa ka gamay nga mas simple dinhi. Direkta namon nga gipunting ang agianan sa lokal nga sistema sa file diin gusto namon nga tipigan ang among datos.

Kini nga pamaagi adunay mga bentaha. Kini usa na ka tinuud nga Persistent, ug usa ka klasiko niana. Kita adunay data nga natala sa disk sa pipila ka adres.

Adunay usab mga disbentaha. Kini ang pagkakomplikado sa pagdumala. Mahimong gusto sa among mga Kubernete nga ibalhin ang Pod sa lain nga pisikal nga node. Ug dinhi nagdula ang DevOps. Kinahanglan niya nga husto nga ipasabut sa tibuuk nga sistema nga kini nga mga pod mahimo ra ibalhin sa mga node diin adunay usa ka butang nga gitaod sa kini nga mga agianan, ug dili molapas sa usa ka node matag higayon. Lisud kaayo.

Ilabi na alang niini nga mga katuyoan, naghimo kami mga template sa among operator aron matago kining tanan nga pagkakomplikado. Ug mahimo ra nimo isulti: "Gusto ko nga adunay usa ka pananglitan sa ClickHouse alang sa matag pisikal nga node ug subay sa ingon ug ingon niana nga agianan."

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Apan dili lang kami ang nanginahanglan niini nga panginahanglan, mao nga ang mga ginoo gikan sa Kubernetes mismo nakasabut usab nga ang mga tawo gusto nga adunay access sa pisikal nga mga disk, mao nga naghatag sila usa ka ikatulo nga layer.

Gitawag kini nga lokal. Halos walay kalainan gikan sa miaging slide. Sa wala pa kini kinahanglan nga mano-mano nga kumpirmahon nga dili namon mabalhin kini nga mga pod gikan sa node ngadto sa node, tungod kay kinahanglan kini nga gilakip sa usa ka agianan sa usa ka lokal nga pisikal nga disk, apan karon kining tanan nga kahibalo na-encapsulated sa Kubernetes mismo. Ug kini nahimo nga labi ka dali nga ma-configure.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Balikan nato ang atong praktikal nga problema. Balik ta sa YAML template. Dinhi kita adunay tinuod nga pagtipig. Gibalik namo kini. Gibutang namon ang klasiko nga template sa VolumeClaim sama sa k8s. Ug among gihulagway kung unsang klase nga storage ang gusto namo.

Human niini, ang k8s mangayo ug storage. Igahin kini kanamo sa StatefulSet. Ug sa katapusan kini anaa sa paglabay sa ClickHouse.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Kami adunay kini nga laraw. Pula ang among Persistent Storage, nga daw nagpaila nga kinahanglan kini buhaton.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug kini nahimong berde. Karon ang ClickHouse sa k8s cluster scheme hingpit nga natapos. Kami adunay mga shards, replicas, ZooKeeper, kami adunay usa ka tinuod nga Persistent, nga gipatuman sa usa ka paagi o sa lain. Ang laraw hingpit na nga naglihok.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Nagpadayon kami sa pagkinabuhi. Nag-develop ang among cluster. Ug gisulayan ni Alexey, ug gipagawas ang usa ka bag-ong bersyon sa ClickHouse.

Usa ka praktikal nga buluhaton ang mitungha - aron masulayan ang bag-ong bersyon sa ClickHouse sa among cluster. Ug, natural, dili nimo gusto nga i-roll kini tanan; gusto nimo nga magbutang usa ka bag-ong bersyon sa usa ka kopya sa usa ka lugar sa halayong suok, ug tingali dili usa ka bag-ong bersyon, apan duha sa usa ka higayon, tungod kay kini kanunay nga mogawas.

Unsa may atong ikasulti bahin niini?

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ania kami adunay ingon nga oportunidad. Kini pod mga templates. Mahimo nimong isulat nga ang among operator hingpit nga nagtugot kanimo sa paghimo og usa ka heterogeneous cluster. Mga. i-configure, sugod sa tanan nga mga replika sa usa ka hugpong, nga nagtapos sa matag personal nga kopya, nga bersyon nga gusto namon ClickHouse, nga bersyon ang gusto namon nga pagtipig. Mahimo natong bug-os nga ma-configure ang cluster gamit ang configuration nga atong gikinahanglan.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Adto ta gamay sa sulod. Sa wala pa kini, naghisgot kami kon sa unsang paagi ang ClickHouse-operator nagtrabaho kalabot sa mga detalye sa ClickHouse.

Karon gusto nakong isulti ang pipila ka mga pulong kung giunsa ang bisan unsang operator nga nagtrabaho sa kinatibuk-an, ingon man kung giunsa kini nakig-uban sa mga K8.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Atong tan-awon una ang pagpakig-uban sa mga K8. Unsa ang mahitabo kung mag-apply kami sa kubectl? Ang among mga butang makita sa etcd pinaagi sa API.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Pananglitan, ang batakang mga butang sa Kubernetes: pod, StatefulSet, serbisyo, ug uban pa sa lista.

Sa samang higayon, wala pay pisikal nga mahitabo. Kini nga mga butang kinahanglan nga ma-materialize sa cluster.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Alang niini nga katuyoan, usa ka controller ang makita. Ang controller mao ang usa ka espesyal nga k8s component nga mahimong materialize niini nga mga paghubit. Nahibal-an niya kung giunsa ug unsa ang buhaton sa pisikal. Nahibal-an niya kung unsaon pagpadagan ang mga sudlanan, kung unsa ang kinahanglan nga i-configure didto aron molihok ang server.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug kini nag-materialize sa among mga butang sa K8s.

Apan gusto namon nga mag-operate dili lamang sa mga pod ug StatefulSets, gusto namon nga maghimo usa ka ClickHouseInstallation, i.e. usa ka butang sa tipo sa ClickHouse, aron magamit kini ingon usa ka tibuuk. Sa pagkakaron walay ingon nga posibilidad.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Apan ang K8s adunay mosunod nga nindot nga butang. Gusto namon nga adunay kami usa ka lugar nga sama niining komplikado nga entidad diin ang among cluster mapundok gikan sa mga pod ug StatefulSet.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug unsa ang kinahanglan buhaton alang niini? Una, ang Custom Resource Definition moabut sa litrato. Unsa ni? Kini usa ka paghulagway alang sa K8s, nga ikaw adunay usa pa ka tipo sa datos, nga gusto namong idugang ang usa ka custom nga kapanguhaan sa pod, StatefulSet, nga mahimong komplikado sa sulod. Kini usa ka paghulagway sa istruktura sa datos.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Gipadala pud namo didto pinaagi sa kubectl apply. Malipayon kining gikuha ni Kubernetes.

Ug karon sa among pagtipig, ang butang sa etcd adunay higayon sa pagrekord sa usa ka naandan nga kapanguhaan nga gitawag ClickHouseInstallation.

Apan sa pagkakaron wala nay laing mahitabo. Kana mao, kung kita karon maghimo sa YAML file nga atong gitan-aw nga naghulagway sa mga shards ug mga replika ug nag-ingon nga "kubectl apply," unya ang Kubernetes modawat niini, ibutang kini sa etcd ug moingon: "Great, pero wala ko kabalo unsay buhaton. uban niini. Wala ko kahibalo kung unsaon pagpadayon ang ClickHouseInstallation.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Tungod niini, nanginahanglan kami usa ka tawo nga motabang sa mga Kubernetes sa pagserbisyo sa bag-ong tipo sa datos. Sa wala kami adunay usa ka lumad nga Kubernetes controller nga naglihok sa lumad nga mga tipo sa datos. Ug sa tuo kinahanglan kita adunay usa ka kostumbre nga tigkontrol nga mahimo’g molihok uban ang naandan nga mga tipo sa datos.

Ug sa laing paagi gitawag kini og operator. Espesipikong gilakip nako kini dinhi isip Kubernetes, tungod kay mahimo usab kini nga ipatuman sa gawas sa K8s. Kasagaran, siyempre, ang tanan nga mga operator gipatuman sa Kubernetes, apan wala’y makapugong niini sa pagbarug sa gawas, busa dinhi kini labi nga gibalhin sa gawas.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug sa baylo, ang custom controller, nailhan usab nga operator, nakig-uban sa Kubernetes pinaagi sa API. Nahibal-an na niini kung unsaon pagpakig-uban sa API. Ug nahibal-an na niya kung giunsa ang paghimo sa komplikado nga sirkito nga gusto namon buhaton gikan sa usa ka naandan nga kapanguhaan. Mao gyud kini ang gibuhat sa operator.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Giunsa pagtrabaho ang operator? Atong tan-awon ang tuo nga bahin aron makita kung giunsa niya kini gibuhat. Atong hibal-an kung giunsa pag-materialize sa operator kining tanan ug kung giunsa ang dugang nga interaksyon sa mga K8 mahitabo.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang operator usa ka programa. Event-oriented siya. Ang operator nag-subscribe sa mga panghitabo gamit ang Kubernetes API. Ang Kubernetes API adunay mga entry point diin maka-subscribe ka sa mga panghitabo. Ug kung adunay magbag-o sa K8s, ang Kubernetes magpadala mga panghitabo sa tanan, i.e. bisan kinsa nga nag-subscribe sa kini nga punto sa API makadawat mga pahibalo.

Ang operator nag-subscribe sa mga panghitabo ug kinahanglan nga maghimo usa ka matang sa reaksyon. Ang tahas niini mao ang pagtubag sa mga nanggawas nga panghitabo.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang mga panghitabo namugna pinaagi sa pipila ka mga update. Ang among YAML file nga adunay paghulagway sa ClickHouseInstallation miabot. Niadto siya sa etcd pinaagi sa kubectl apply. Usa ka panghitabo ang na-trigger didto, ug ingon nga resulta kini nga panghitabo miabut sa ClickHouse-operator. Ang operator nakadawat niini nga paghulagway. Ug kinahanglan niyang buhaton ang usa ka butang. Kung ang usa ka update miabut alang sa ClickHouseInstallation nga butang, nan kinahanglan nimo nga i-update ang cluster. Ug ang tahas sa operator mao ang pag-update sa cluster.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unsa iyang gibuhat? Una, kinahanglan namon nga maghimo usa ka plano sa aksyon kung unsa ang among buhaton sa kini nga update. Ang mga update mahimong gamay ra kaayo, i.e. gamay sa pagpatuman sa YAML, apan mahimo’g adunay daghang mga pagbag-o sa cluster. Busa, ang operator nagmugna og usa ka plano, ug unya siya misunod niini.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Sumala sa kini nga plano, nagsugod siya sa pagluto niini nga istruktura sa sulod aron matuman ang mga pod, serbisyo, i.e. buhata kung unsa ang iyang panguna nga buluhaton. Kini kung giunsa paghimo ang usa ka cluster sa ClickHouse sa Kubernetes.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Karon atong hikapon ang usa ka makapaikag nga butang. Kini usa ka dibisyon sa responsibilidad tali sa Kubernetes ug sa operator, i.e. unsa ang gibuhat sa Kubernetes, unsa ang gibuhat sa operator, ug kung giunsa sila makig-uban sa usag usa.

Ang Kubernetes maoy responsable sa mga butang sa sistema, i.e. alang sa usa ka sukaranan nga hugpong sa mga butang nga mahimong hubaron nga sistema-sangkap. Nahibal-an sa Kubernetes kung unsaon paglansad ang mga pod, kung giunsa pag-restart ang mga sudlanan, kung giunsa ang pag-mount sa mga volume, kung giunsa ang pagtrabaho sa ConfigMap, i.e. tanan nga matawag nga sistema.

Ang mga operator naglihok sa mga domain. Ang matag operator gihimo alang sa kaugalingon nga lugar sa hilisgutan. Gibuhat namo kini para sa ClickHouse.

Ug ang operator nakig-uban sa tukma sa mga termino sa hilisgutan nga lugar, sama sa pagdugang usa ka kopya, paghimo og usa ka diagram, pag-set up sa pag-monitor. Kini moresulta sa usa ka dibisyon.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Atong tan-awon ang usa ka praktikal nga panig-ingnan kung giunsa kini nga pagkabahin sa responsibilidad mahitabo kung buhaton naton ang aksyon nga pagdugang replika.

Ang operator nakadawat usa ka buluhaton - aron makadugang usa ka kopya. Unsa ang gibuhat sa operator? Ang operator magkalkula nga ang usa ka bag-ong StatefulSet kinahanglan nga himuon, diin ang ingon ug ingon nga mga template, pag-angkon sa gidaghanon, kinahanglan ihulagway.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Giandam niya ang tanan ug gipasa sa K8s. Giingon niya nga kinahanglan niya ang ConfigMap, StatefulSet, Volume. Ang Kubernetes nagtrabaho. Iyang gihimo ang batakang mga yunit diin siya naglihok.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug unya ClickHouse-operator moabut sa pagdula pag-usab. Naa na siyay physical pod nga naa na siyay mahimo. Ug ang ClickHouse-operator usab nagtrabaho sa mga termino sa domain. Mga. Partikular nga ClickHouse, aron maapil ang usa ka replika sa usa ka cluster, kinahanglan nimo, una, i-configure ang data schema nga naa sa kini nga cluster. Ug, ikaduha, kini nga replika kinahanglan iapil sa pagmonitor aron kini klaro nga masubay. Gipahimutang na kini sa operator.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug pagkahuman nga ang ClickHouse mismo moabut sa pagdula, i.e. laing mas taas nga lebel nga entidad. Kini usa na ka database. Kini adunay kaugalingon nga pananglitan, lain nga gi-configure nga kopya nga andam nga moapil sa cluster.

Kini nahimo nga ang usa ka kadena sa pagpatuman ug pagbahin sa responsibilidad kung magdugang usa ka replika medyo taas.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Gipadayon namo ang among praktikal nga mga buluhaton. Kung aduna ka'y ​​cluster, mahimo nimong ibalhin ang configuration.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Gihimo namo kini aron imong ma-paste pinaagi sa kasamtangan nga xml, nga nasabtan sa ClickHouse.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Mahimo nimong maayo ang pag-ayo sa ClickHouse. Ang pag-deploy lang sa zone mao ang akong gihisgutan sa dihang gipatin-aw ang hostPath, lokal nga pagtipig. Kini mao ang paagi sa pagbuhat sa zoned deployment sa husto nga paagi.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ang sunod nga praktikal nga buluhaton mao ang pagmonitor.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Kung mabag-o ang among cluster, kinahanglan namon nga matag karon ug unya i-configure ang pag-monitor.

Atong tan-awon ang diagram. Gitan-aw na namo ang berdeng mga pana dinhi. Karon atong tan-awon ang pula nga mga pana. Ingon niini ang gusto namon nga ma-monitor ang among cluster. Giunsa ang mga sukatan gikan sa cluster sa ClickHouse nakasulod sa Prometheus, ug dayon sa Grafana.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unsa ang kalisud sa pagmonitor? Nganong gipresentar kini ingong usa ka matang sa kalamposan? Ang kalisud anaa sa dynamics. Kung kita adunay usa ka cluster ug kini static, nan mahimo naton nga i-set up ang pagmonitor sa makausa ug dili na magsamok.

Apan kung kita adunay daghang mga pungpong, o adunay kanunay nga pagbag-o, nan ang proseso dinamiko. Ug ang kanunay nga pag-reconfigure sa pag-monitor usa ka pag-usik sa mga kapanguhaan ug oras, i.e. bisan pagkatapulan lang. Kinahanglan kini nga awtomatiko. Ang kalisud anaa sa dynamics sa proseso. Ug ang operator nag-automate niini pag-ayo.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Giunsa pag-uswag ang among cluster? Sa sinugdan ingon ana siya.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unya ingon ani siya.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Sa katapusan, nahimo siyang ingon niini.

Ug ang pag-monitor awtomatiko nga gihimo sa operator. Usa ka punto sa pagsulod.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Ug sa gawas pa lang mitan-aw kami sa dashboard sa Grafana aron makita kung giunsa ang kinabuhi sa among cluster nga nagbukal sa sulod.

Pinaagi sa dalan, ang dashboard sa Grafana giapod-apod usab sa among operator direkta sa source code. Mahimo nimong makonektar ug magamit. Gihatagan ko sa among DevOps niini nga screenshot.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Asa man ta sunod nga gustong moadto? Kini:

  • Pagpalambo sa pagsulay automation. Ang panguna nga buluhaton mao ang awtomatiko nga pagsulay sa mga bag-ong bersyon.
  • Gusto usab namon nga i-automate ang panagsama sa ZooKeeper. Ug adunay mga plano nga i-integrate sa ZooKeeper-operator. Mga. Usa ka operator ang gisulat alang sa ZooKeeper ug makatarunganon nga ang duha ka mga operator nagsugod sa paghiusa aron makahimo usa ka labi ka dali nga solusyon.
  • Gusto namong maghimo ug mas komplikadong vital signs.
  • Gipasiugda nako sa berde nga nagkaduol na kita sa kabilin sa Templates - DONE, i.e. sa sunod nga pagpagawas sa operator aduna na kitay kabilin sa mga templates. Kini usa ka kusgan nga himan nga nagtugot kanimo sa paghimo og komplikado nga mga pag-configure gikan sa mga piraso.
  • Ug gusto namo ang automation sa mga komplikadong buluhaton. Ang panguna mao ang Re-sharding.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Atong kuhaon ang pipila ka intermediate nga mga resulta.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unsay atong makuha isip resulta? Ug angay ba kini buhaton o dili? Kinahanglan pa ba nga sulayan nga i-drag ang database sa Kubernetes ug gamiton ang operator sa kinatibuk-an ug ang Alitnity operator sa partikular?

Sa output atong makuha:

  • Mahinungdanon nga pagpayano ug automation sa pag-configure, pag-deploy, ug pagpadayon.
  • Diha-diha dayon gitukod-sa pag-monitor.
  • Ug andam-sa-gamiton nga codified templates alang sa komplikado nga mga sitwasyon. Ang usa ka aksyon sama sa pagdugang og usa ka kopya dili kinahanglan nga buhaton sa mano-mano. Gihimo kini sa operator.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Adunay usa na lang ka katapusang pangutana nga nahabilin. Naa na mi database sa Kubernetes, virtualization. Unsa man ang bahin sa paghimo sa ingon nga solusyon, labi na tungod kay ang ClickHouse na-optimize alang sa pasundayag?

Ang tubag maayo ra ang tanan! Dili nako hisgotan ang detalye; kini ang hilisgutan sa usa ka lahi nga taho.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Apan adunay usa ka proyekto sama sa TSBS. Unsa ang panguna nga buluhaton niini? Kini usa ka pagsulay sa performance sa database. Kini usa ka pagsulay sa pagtandi sa init sa init, humok sa humok.

Giunsa niya pagtrabaho? Usa ka set sa datos ang nahimo. Unya kini nga set sa datos gipadagan sa lainlaing mga database gamit ang parehas nga set sa mga pagsulay. Ug ang matag database nagsulbad sa usa ka problema sa paagi nga nahibal-an kung giunsa. Ug unya mahimo nimong itandi ang mga resulta.

Gisuportahan na niini ang daghang mga database. Giila nako ang tulo ka panguna. Kini:

  • TimescaleDB.
  • InfluxDB.
  • ClickHouse.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Gihimo usab ang pagtandi sa laing susamang solusyon. Pagtandi sa RedShift. Ang pagtandi gihimo sa Amazon. Ang ClickHouse nag-una usab sa tanan niining butanga.

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Unsang mga konklusyon ang makuha gikan sa akong gisulti?

  • Posible ang DB sa Kubernetes. Tingali bisan unsa nga posible, apan sa kinatibuk-an morag posible kini. Ang ClickHouse sa Kubernetes siguradong posible sa tabang sa among operator.
  • Ang operator nagtabang sa pag-automate sa mga proseso ug sa tinuod naghimo sa kinabuhi nga mas sayon.
  • Normal ang performance.
  • Ug alang kanamo kini mahimo ug kinahanglan gamiton.

Open source - apil mi!

Sama sa giingon ko na, ang operator usa ka hingpit nga bukas nga gigikanan nga produkto, mao nga maayo kaayo kung ang labing kadaghan nga mga tawo ang naggamit niini. Apil kanamo! Naghulat kami kaninyong tanan!

Salamat sa tanan!

Ang imong mga pangutana

Operator sa Kubernetes alang sa pagdumala sa mga cluster sa database. Vladislav Klimenko (Altinity, 2019)

Salamat sa report! Ako diay si Anton. Gikan ko sa SEMrush. Naglibog ko unsay naa sa logging. Nakadungog kami bahin sa pag-monitor, apan wala’y bahin sa pag-log, kung maghisgot kami bahin sa tibuuk nga cluster. Pananglitan, nagpataas kami usa ka kumpol sa hardware. Ug gigamit namon ang sentralisado nga pag-log, nga gikolekta kini sa usa ka sagad nga pundok gamit ang standard nga paagi. Ug dayon gikan didto makuha namon ang datos nga nakapainteres kanamo.

Maayong pangutana, i.e. pag-log in sa todo list. Ang among operator wala pa mag-automate niini. Nag-develop pa kini, medyo bata pa ang proyekto. Atong nasabtan ang panginahanglan sa pag-log. Kini usa usab ka hinungdanon nga hilisgutan. Ug tingali dili kaayo hinungdanon kaysa pag-monitor. Apan una sa listahan alang sa pagpatuman mao ang pagmonitor. Adunay logging. Natural, gisulayan namon nga i-automate ang tanan nga aspeto sa kinabuhi sa cluster. Busa, ang tubag mao nga sa pagkakaron ang operator, sa walay palad, wala mahibal-an kung unsaon pagbuhat niini, apan kini anaa sa mga plano, buhaton nato kini. Kung gusto ka moapil, unya pull request, palihog.

Hello! Salamat sa report! Duna koy standard nga pangutana nga may kalabutan sa Persistent Volumes. Kung maghimo kami usa ka pag-configure sa kini nga operator, giunsa pagtino sa operator kung unsang node ang among adunay usa ka partikular nga disk o folder nga gilakip? Kinahanglan una natong ipasabut kaniya nga palihug ibutang ang among ClickHouse niining mga node nga adunay disk?

Sa akong nasabtan, kini nga pangutana usa ka pagpadayon sa lokal nga pagtipig, labi na ang hostPath nga bahin niini. Kini sama sa pagpatin-aw sa tibuok nga sistema nga ang pod kinahanglan nga ilunsad sa ingon ug ingon nga usa ka node, diin kita adunay usa ka pisikal nga konektado nga disk, nga gitaod sa ingon ug ingon niana nga dalan. Kini usa ka tibuuk nga seksyon nga akong gihikap sa taphaw kaayo tungod kay ang tubag didto medyo dako.

Sa laktud ingon niini ang hitsura. Natural, kinahanglan natong itagana kini nga mga tomo. Sa pagkakaron, wala'y dinamikong probisyon sa lokal nga pagtipig, busa kinahanglan nga putlon sa DevOps ang mga disk mismo, kini nga mga volume. Ug kinahanglan nila nga ipasabut ang mga probisyon sa Kubernetes nga ikaw adunay Persistent nga mga volume sa ingon ug ingon nga klase, nga nahimutang sa ingon ug ingon nga mga node. Unya kinahanglan nimo nga ipasabut sa Kubernetes nga ang mga pod nga nanginahanglan ug ingon usa ka lokal nga klase sa pagtipig kinahanglan nga idirekta lamang sa ingon ug ingon nga mga node gamit ang mga label. Alang niini nga mga katuyoan, ang operator adunay katakus sa pag-assign sa usa ka matang sa label ug usa matag host nga pananglitan. Ug kini nahimo nga ang mga pod i-rotate sa Kubernetes aron modagan lamang sa mga node nga nagtagbo sa mga kinahanglanon, mga label, sa yano nga mga termino. Ang mga administrador nag-assign sa mga label ug mga provision disk nga mano-mano. Ug unya kini timbangan.

Ug kini ang ikatulo nga kapilian, lokal, nga makatabang sa paghimo niini nga labi kadali. Sama sa akong gipasiugda, kini usa ka makuti nga trabaho sa pag-tune, nga sa katapusan makatabang aron makuha ang labing kataas nga pasundayag.

Duna koy ikaduhang pangutana nga may kalabotan niini. Gidisenyo ang Kubernetes sa paagi nga dili igsapayan kung nawad-an kami usa ka node o wala. Unsa ang angay natong buhaton niini nga kaso kung nawala ang node diin nagbitay ang atong shard?

Oo, ang Kubernetes sa sinugdan nakaposisyon nga ang among relasyon sa among mga pods sama sa baka, apan dinhi kanamo ang matag disk nahimong usa ka butang nga sama sa usa ka binuhi. Naa gyuy problema nga dili na lang nato ilabay. Ug ang pag-uswag sa Kubernetes padulong sa direksyon nga imposible nga hingpit nga pagtratar kini sa pilosopikal, ingon nga kini usa ka hingpit nga gisalikway nga kapanguhaan.

Karon alang sa usa ka praktikal nga pangutana. Unsa ang buhaton kung nawala nimo ang node diin ang disk? Dinhi ang problema gisulbad sa mas taas nga lebel. Sa kaso sa ClickHouse, kami adunay mga replika nga nagtrabaho sa mas taas nga lebel, i.e. sa lebel sa ClickHouse.

Unsa ang resulta nga disposisyon? Ang DevOps ang responsable sa pagsiguro nga ang datos dili mawala. Kinahanglan niyang i-set up ang replikasyon sa hustong paagi ug kinahanglang masiguro nga nagdagan ang replikasyon. Ang replika sa lebel sa ClickHouse kinahanglan adunay doble nga datos. Dili kini ang problema nga gisulbad sa operator. Ug dili ang problema nga gisulbad mismo sa Kubernetes. Anaa kini sa lebel sa ClickHouse.

Unsa ang buhaton kung ang imong puthaw nga node mahulog? Ug kini nahimo nga kinahanglan nimo nga i-install ang ikaduha, husto nga paghatag sa disc niini, ug i-apply ang mga label. Ug pagkahuman niini, matuman niini ang mga kinahanglanon nga mahimo’g maglunsad ang Kubernetes og usa ka instance pod niini. Ilusad kini sa Kubernetes. Ang imong gidaghanon sa mga pod dili igo aron makab-ot ang gipiho nga numero. Moagi kini sa cycle nga akong gipakita. Ug sa pinakataas nga lebel, masabtan sa ClickHouse nga nakasulod kami sa usa ka replika, wala pa kini sulod ug kinahanglan namon nga magsugod sa pagbalhin sa datos niini. Mga. Kini nga proseso dili pa maayo nga awtomatiko.

Salamat sa report! Kung ang tanan nga mga lahi sa daotan nga mga butang mahitabo, ang operator nahagsa ug nagsugod pag-usab, ug nianang higayona moabut ang mga panghitabo, naa ba nimo kini pagdumala?

Unsa ang mahitabo kung ang operator nahagsa ug nag-restart, dili ba?

Oo. Ug nianang higayuna niabot ang mga panghitabo.

Ang tahas kung unsa ang buhaton sa kini nga kaso bahin nga gipaambit tali sa operator ug Kubernetes. Ang Kubernetes adunay katakus sa pag-replay sa usa ka panghitabo nga nahitabo. Nag replay siya. Ug ang tahas sa operator mao ang pagsiguro nga kung ang log sa panghitabo i-replay kaniya, kini nga mga panghitabo mao ang idempotent. Ug aron ang balikbalik nga panghitabo sa parehas nga panghitabo dili makaguba sa atong sistema. Ug ang among operator nakasagubang niini nga buluhaton.

Hello! Salamat sa report! Dmitry Zavyalov, kompanya Smedova. Aduna bay plano nga idugang ang abilidad sa pag-configure gamit ang haproxy sa operator? Interesado ako sa ubang mga balancer gawas sa standard, aron kini maalamon ug makasabut nga ang ClickHouse anaa gayud.

Naghisgot ka bahin sa Ingress?

Oo, pulihan ang Ingress sa haproxy. Sa haproxy mahimo nimong ipiho ang topology sa cluster diin kini adunay mga replika.

Wala pa namo kini gihunahuna. Kung kinahanglan nimo kini ug mahimo nimong ipasabut kung ngano nga kinahanglan kini, mahimo’g posible nga ipatuman kini, labi na kung gusto nimo nga moapil. Malipay kami nga tagdon ang kapilian. Ang mubo nga tubag dili, kami sa pagkakaron wala’y ingon nga pagpaandar. Salamat sa tip, atong susihon kini nga butang. Ug kung ipasabut usab nimo ang kaso sa paggamit ug kung ngano nga kinahanglan kini sa praktis, pananglitan, paghimo mga isyu sa GitHub, nan maayo kana.

Naa na.

Maayo. Bukas kami sa bisan unsang mga sugyot. Ug ang haproxy gidugang sa todo list. Ang listahan sa todo nagkadako, wala pa mokunhod. Apan kini maayo, kini nagpasabot nga ang produkto anaa sa panginahanglan.

Source: www.habr.com

Idugang sa usa ka comment