Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Daim ntawv tshaj tawm tau mob siab rau cov teeb meem ntawm kev tsim tus neeg teb xov tooj hauv Kubernetes, tsim nws cov qauv tsim thiab cov qauv kev ua haujlwm yooj yim.

Hauv thawj ntu ntawm tsab ntawv ceeb toom peb yuav xav txog:

  • Dab tsi yog tus neeg teb xov tooj hauv Kubernetes thiab vim li cas nws thiaj xav tau;
  • Yuav ua li cas raws nraim tus neeg teb xov tooj simplifies kev tswj ntawm complex systems;
  • dab tsi tus neeg teb xov tooj tuaj yeem ua tau thiab ua tsis tau.

Tom ntej no, cia peb mus rau kev sib tham txog cov qauv sab hauv ntawm tus neeg teb xov tooj. Cia peb saib cov architecture thiab kev ua haujlwm ntawm tus neeg teb xov tooj ib kauj ruam. Cia peb saib nws hauv kev nthuav dav:

  • kev sib cuam tshuam ntawm tus neeg teb xov tooj thiab Kubernetes;
  • Dab tsi ua haujlwm tus neeg teb xov tooj siv thiab ua haujlwm dab tsi nws delegates rau Kubernetes.

Wb saib kev tswj shards thiab database replicas hauv Kubernetes.
Tom ntej no, peb yuav tham txog cov teeb meem khaws ntaub ntawv:

  • yuav ua li cas ua hauj lwm nrog Persistent Storage los ntawm tus neeg teb xov tooj txoj kev xav;
  • pitfalls ntawm kev siv Local Storage.

Hauv qhov kawg ntawm tsab ntawv ceeb toom, peb yuav txiav txim siab ua piv txwv ntawm kev siv clickhouse-operator los ntawm Amazon lossis Google Cloud Service. Daim ntawv tshaj tawm yog ua raws li qhov piv txwv ntawm kev txhim kho thiab kev ua haujlwm ntawm tus neeg teb xov tooj rau ClickHouse.

Yees duab:

Kuv lub npe yog Vladislav Klimenko. Hnub no kuv xav tham txog peb cov kev paub dhau los hauv kev txhim kho thiab ua haujlwm ntawm tus neeg teb xov tooj, thiab qhov no yog tus neeg ua haujlwm tshwj xeeb rau kev tswj hwm pawg database. Piv txwv li ClickHouse-neeg ua haujlwm los tswj cov ClickHouse pawg.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Vim li cas peb thiaj muaj sijhawm los tham txog tus neeg teb xov tooj thiab ClickHouse?

  • Peb txhawb thiab tsim ClickHouse.
  • Tam sim no, peb tab tom sim maj mam ua peb txoj kev koom tes rau kev txhim kho ClickHouse. Thiab peb yog thib ob tom qab Yandex hais txog qhov ntim ntawm kev hloov pauv rau ClickHouse.
  • Peb tab tom sim ua cov haujlwm ntxiv rau ClickHouse ecosystem.

Kuv xav qhia koj txog ib qho ntawm cov haujlwm no. Qhov no yog hais txog ClickHouse-operator rau Kubernetes.

Hauv kuv daim ntawv tshaj tawm kuv xav kov ob lub ntsiab lus:

  • Thawj lub ntsiab lus yog yuav ua li cas peb ClickHouse database tswj tus neeg teb xov tooj ua haujlwm hauv Kubernetes.
  • Lub ntsiab lus thib ob yog yuav ua li cas tus neeg teb xov tooj ua haujlwm, piv txwv li nws cuam tshuam nrog Kubernetes li cas.

Txawm li cas los xij, ob lo lus nug no yuav cuam tshuam thoob plaws kuv daim ntawv tshaj tawm.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Leej twg yuav txaus siab mloog qhov kuv sim qhia?

  • Nws yuav yog qhov txaus siab tshaj plaws rau cov neeg ua haujlwm ua haujlwm.
  • Los yog rau cov neeg uas xav ua lawv tus kheej kom nkag siab tias nws ua haujlwm li cas sab hauv, tus neeg teb xov tooj cuam tshuam nrog Kubernetes li cas, thiab qhov pitfalls yuav tshwm sim.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Yuav kom nkag siab zoo tshaj plaws peb yuav tham txog hnub no, nws yog ib lub tswv yim zoo kom paub seb Kubernetes ua haujlwm li cas thiab muaj qee qhov kev qhia huab cua.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

ClickHouse yog dab tsi? Qhov no yog columnar database nrog cov yam ntxwv tshwj xeeb rau kev ua online ntawm cov lus nug analytical. Thiab nws yog kiag li qhib qhov chaw.

Thiab nws yog ib qho tseem ceeb rau peb kom paub ob yam xwb. Koj yuav tsum paub tias qhov no yog database, yog li qhov kuv yuav qhia koj yuav siv tau rau yuav luag txhua lub database. Thiab qhov tseeb tias ClickHouse DBMS scales zoo heev, muab yuav luag linear scalability. Thiab yog li ntawd, lub xeev pawg yog lub xeev ntuj rau ClickHouse. Thiab peb txaus siab tshaj plaws los tham txog yuav ua li cas pab ClickHouse pawg hauv Kubernetes.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Vim li cas nws thiaj xav tau nyob ntawd? Vim li cas peb tsis tuaj yeem ua haujlwm txuas ntxiv nws tus kheej? Thiab cov lus teb yog ib feem kev kawm thiab ib nrab koom haum.

  • Hauv kev xyaum, peb tab tom ntsib qhov xwm txheej uas nyob rau hauv cov tuam txhab loj yuav luag tag nrho cov khoom muaj nyob hauv Kubernetes. Databases nyob sab nraud.
  • Thiab cov lus nug tau nug ntxiv: "Qhov no puas tuaj yeem muab tso rau hauv?" Yog li ntawd, cov tuam txhab loj tab tom sim ua kom muaj kev sib koom ua ke ntau tshaj plaws ntawm kev tswj hwm kom sai sai tuaj yeem tswj hwm lawv cov ntaub ntawv warehouses.
  • Thiab qhov no tshwj xeeb tshaj yog pab tau yog tias koj xav tau lub sijhawm siab tshaj plaws los rov ua qhov qub qub hauv qhov chaw tshiab, piv txwv li qhov siab tshaj plaws portability.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nws yooj yim lossis nyuaj npaum li cas? Qhov no, ntawm chav kawm, tuaj yeem ua tau los ntawm tes. Tab sis nws tsis yooj yim li, vim tias peb muaj qhov nyuaj ntxiv ntawm kev tswj Kubernetes nws tus kheej, tab sis tib lub sijhawm cov ntsiab lus ntawm ClickHouse yog superimposed. Thiab xws li ib tug aggregation tshwm sim.

Thiab tag nrho ua ke no muab cov txheej txheem loj loj, uas dhau los ua qhov nyuaj rau kev tswj hwm, vim Kubernetes coj nws cov teeb meem txhua hnub rau kev ua haujlwm, thiab ClickHouse coj nws cov teeb meem rau kev ua haujlwm txhua hnub. Tshwj xeeb tshaj yog tias peb muaj ob peb ClickHouses, thiab peb yuav tsum tau ua ib yam dab tsi nrog lawv tas li.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nrog rau kev teeb tsa dynamic, ClickHouse muaj ntau qhov teeb meem uas tsim kom muaj kev thauj khoom tas li ntawm DevOps:

  • Thaum peb xav hloov ib yam dab tsi hauv ClickHouse, piv txwv li, ntxiv ib qho replica lossis shard, ces peb yuav tsum tau tswj cov kev teeb tsa.
  • Tom qab ntawd hloov cov ntaub ntawv schema, vim ClickHouse muaj ib txoj kev sharding tshwj xeeb. Nyob ntawd koj yuav tsum tau nteg tawm cov ntaub ntawv daim duab, nteg tawm cov configurations.
  • Koj yuav tsum teeb tsa kev saib xyuas.
  • Sau cov cav rau cov shards tshiab, rau cov replicas tshiab.
  • Saib xyuas kev kho dua tshiab.
  • Thiab rov pib dua.

Cov no yog cov haujlwm niaj hnub uas kuv xav kom siv tau yooj yim dua.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Kubernetes nws tus kheej pab tau zoo hauv kev ua haujlwm, tab sis ntawm cov txheej txheem yooj yim.

Kubernetes yog qhov zoo ntawm kev txhawb nqa thiab ua haujlwm zoo li:

  • Rov qab.
  • Rov pib dua.
  • Kev tswj qhov system cia.

Qhov ntawd yog qhov zoo, qhov ntawd yog txoj hauv kev, tab sis nws tsis paub meej txog yuav ua li cas khiav lag luam ib pawg database.

Peb xav tau ntau dua, peb xav kom tag nrho cov ntaub ntawv ua haujlwm hauv Kubernetes.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Kuv xav tau ib yam dab tsi zoo li ib lub pob liab liab uas koj nias thiab ib pawg nrog cov haujlwm txhua hnub uas yuav tsum tau daws yog siv thiab khaws cia thoob plaws hauv nws lub neej. ClickHouse pawg hauv Kubernetes.

Thiab peb tau sim ua ib qho kev daws teeb meem uas yuav pab ua kom txoj haujlwm yooj yim dua. Nov yog ClickHouse-operator rau Kubernetes los ntawm Altinity.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tus neeg teb xov tooj yog ib qho program uas nws lub luag haujlwm tseem ceeb yog tswj hwm lwm cov kev pab cuam, piv txwv li nws yog tus thawj tswj hwm.

Thiab nws muaj cov qauv ntawm tus cwj pwm. Koj tuaj yeem hu rau qhov kev paub paub txog qhov kev kawm no.

Thiab nws lub luag haujlwm tseem ceeb yog ua kom lub neej ntawm DevOps yooj yim dua thiab txo qis micromanagement, kom nws (DevOps) twb xav txog cov ntsiab lus siab, piv txwv li, kom nws (DevOps) tsis koom nrog micromanagement, kom nws tsis teeb tsa. tag nrho cov ntsiab lus manually.

Thiab tsuas yog tus neeg teb xov tooj yog tus pab neeg hlau uas cuam tshuam nrog microtasks thiab pab DevOps.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Vim li cas koj thiaj xav tau tus neeg ua haujlwm? Nws ua tau zoo tshwj xeeb hauv ob qhov chaw:

  • Thaum tus kws tshaj lij uas cuam tshuam nrog ClickHouse tsis muaj kev paub txaus, tab sis twb xav tau ua haujlwm ClickHouse, tus neeg teb xov tooj pab txhawb kev ua haujlwm thiab tso cai rau koj los ua haujlwm ClickHouse pawg nrog cov kev teeb tsa nyuaj, tsis tas yuav nkag mus rau ntau cov ntsiab lus hais txog yuav ua li cas nws ua haujlwm. sab hauv. Koj tsuas yog muab nws cov haujlwm siab, thiab nws ua haujlwm.
  • Thiab txoj haujlwm thib ob uas nws ua tau zoo tshaj plaws yog thaum nws tsim nyog los ua kom muaj ntau yam haujlwm zoo. Tshem tawm microtasks los ntawm cov thawj coj hauv lub cev.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Qhov no yog qhov xav tau tshaj plaws los ntawm cov neeg uas nyuam qhuav pib lawv txoj kev taug, lossis los ntawm cov neeg uas xav tau ua ntau yam automation.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Yuav ua li cas tus neeg teb xov tooj mus kom ze txawv ntawm lwm yam systems? Muaj Helm. Nws kuj pab rau nruab ClickHouse; koj tuaj yeem kos cov kab kos duab, uas tseem yuav nruab tag nrho ClickHouse pawg. Yuav ua li cas yog qhov txawv ntawm tus neeg teb xov tooj thiab tib yam, piv txwv li, Helm?

Qhov tseem ceeb ntawm qhov sib txawv yog Helm yog kev tswj hwm pob thiab tus neeg teb xov tooj mus rau ib kauj ruam ntxiv. Qhov no yog kev txhawb nqa rau tag nrho lub neej voj voog. Qhov no tsis yog tsuas yog kev teeb tsa xwb, cov no yog cov haujlwm niaj hnub uas suav nrog kev ntsuas, sib cais, piv txwv li txhua yam uas yuav tsum tau ua thaum lub sijhawm lub neej (yog tias tsim nyog, ces tshem tawm ib yam nkaus) - qhov no yog txhua yam txiav txim siab los ntawm tus neeg teb xov tooj. Nws sim automate thiab tswj tag nrho software lifecycle. Qhov no yog nws qhov sib txawv ntawm lwm cov kev daws teeb meem uas tau nthuav tawm.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Qhov ntawd yog qhov kev taw qhia, cia peb mus.

Peb tsim peb tus neeg ua haujlwm li cas? Peb tab tom sim los ze rau qhov teeb meem los tswj cov ClickHouse pawg ua ib qho kev pab.

Ntawm no peb muaj cov ntaub ntawv nkag rau sab laug ntawm daim duab. Qhov no yog YAML nrog cov lus qhia tshwj xeeb, uas tau dhau mus rau Kubernetes hauv txoj kev classic ntawm kubectl. Nyob ntawd peb tus neeg ua haujlwm khaws nws thiab ua nws cov khawv koob. Thiab ntawm qhov tso zis peb tau txais cov txheej txheem hauv qab no. Qhov no yog qhov kev siv ntawm ClickHouse hauv Kubernetes.

Thiab tom qab ntawd peb yuav maj mam saib seb tus neeg teb xov tooj ua haujlwm li cas, cov haujlwm zoo li cas tuaj yeem daws tau. Peb tsuas yog xav txog cov haujlwm ib txwm ua vim tias peb muaj sijhawm tsawg. Thiab tsis yog txhua yam uas tus neeg teb xov tooj tuaj yeem txiav txim siab yuav tau tham.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb pib ntawm kev xyaum. Peb qhov project yog qhov qhib kiag li, yog li koj tuaj yeem pom nws ua haujlwm li cas ntawm GitHub. Thiab koj tuaj yeem ua tiav los ntawm kev xav tias yog tias koj tsuas yog xav tso nws, ces koj tuaj yeem pib nrog Quick Start Guide.

Yog tias koj xav nkag siab meej, ces peb sim khaws cov ntaub ntawv hauv ib daim ntawv ntau dua lossis tsawg dua.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb pib nrog qhov teeb meem siv tau. Thawj txoj haujlwm, qhov twg peb txhua tus xav pib, yog los khiav thawj qhov piv txwv li cas. Kuv tuaj yeem tso ClickHouse siv tus neeg teb xov tooj li cas, txawm tias kuv tsis paub tias nws ua haujlwm li cas? Peb tab tom sau ib qho manifesto, vim ... Txhua qhov kev sib txuas lus nrog k8s yog kev sib txuas lus los ntawm kev tshwm sim.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Qhov no yog xws li ib tug complex manifesto. Qhov peb tau taw qhia hauv liab yog qhov peb yuav tsum tau tsom mus rau. Peb thov kom tus neeg teb xov tooj tsim ib pawg hu ua demo.

Cov no yog cov piv txwv yooj yim rau tam sim no. Kev khaws cia tseem tsis tau piav qhia, tab sis peb yuav rov qab mus rau qhov chaw cia me ntsis tom qab. Txog tam sim no, peb yuav soj ntsuam qhov kev hloov pauv ntawm pawg pawg kev txhim kho.

Peb tsim no manifesto. Peb pub rau peb tus neeg teb xov tooj. Nws ua haujlwm, nws ua khawv koob.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb saib ntawm lub console. Peb qhov kev txaus siab yog: Pod, ob qhov Kev Pabcuam, thiab StatefulSet.

Tus neeg teb xov tooj tau ua haujlwm, thiab peb tuaj yeem pom qhov tseeb nws tsim.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nws tsim tej yam zoo li no. Peb muaj StatefulSet, Pod, ConfigMap rau txhua qhov replica, ConfigMap rau tag nrho pawg. Cov kev pabcuam yuav tsum yog cov ntsiab lus nkag rau hauv pawg.

Cov kev pab cuam yog lub hauv paus Load Balancer Service thiab kuj siv tau rau txhua replica, rau txhua shard.

Peb pawg thawj coj zoo li no. Nws yog los ntawm ib qho ntawm ib leeg.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb mus ntxiv thiab ua kom nyuaj. Peb yuav tsum shard pawg.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb cov dej num tab tom loj hlob, dynamics pib. Peb xav ntxiv ib shard. Peb ua raws li kev txhim kho. Peb tab tom hloov peb cov specification. Peb hais tias peb xav tau ob lub shards.

Qhov no yog tib cov ntaub ntawv uas dynamically tsim nrog kev loj hlob ntawm lub system. Cia tsis muaj, cia yuav tham ntxiv, qhov no yog ib lub ncauj lus cais.

Peb pub YAML tus neeg teb xov tooj thiab pom tias muaj dab tsi tshwm sim.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tus neeg teb xov tooj tau xav thiab ua cov haujlwm hauv qab no. Peb twb muaj ob lub Pods, peb Cov Kev Pabcuam thiab, tam sim ntawd, 2 StatefulSets. Vim li cas 2 StatefulSets?

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Ntawm daim duab nws zoo li no - qhov no yog peb lub xeev thawj zaug, thaum peb muaj ib lub pod.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nws tau ua li no. Txog tam sim no txhua yam yog yooj yim, nws tau duplicated.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab vim li cas thiaj muaj ob lub StatefulSets? Ntawm no peb yuav tsum tau txiav txim siab thiab sib tham txog cov lus nug ntawm yuav ua li cas Pods tswj hauv Kubernetes.

Muaj ib yam khoom hu ua StatefulSet uas tso cai rau koj los tsim ib pawg Pods los ntawm tus qauv. Qhov tseem ceeb ntawm no yog Template. Thiab koj tuaj yeem tso ntau Pods siv ib tus qauv hauv ib lub StatefulSet. Thiab cov lus tseem ceeb ntawm no yog "ntau Pods rau ib tus qauv."

Thiab tau muaj kev sim siab zoo los ua kom tag nrho pawg, ntim nws rau hauv ib qho StatefulSet. Nws yuav ua haujlwm, tsis muaj teeb meem nrog nws. Tab sis muaj ib tug caveat. Yog tias peb xav sib sau ua ke ntau pawg, uas yog, los ntawm ntau lub versions ntawm ClickHouse, ces cov lus nug pib tshwm sim. Yog lawm, StatefulSet tuaj yeem ua qhov hloov tshiab dov, thiab nyob ntawd koj tuaj yeem yob tawm ib qho tshiab, piav qhia tias koj yuav tsum sim tsis pub ntau tshaj li ntau ntawm tib lub sijhawm.

Tab sis yog hais tias peb extrapolate txoj hauj lwm thiab hais tias peb xav ua ib tug tag nrho heterogeneous pawg thiab peb tsis xav hloov los ntawm lub qub version mus rau ib tug tshiab siv ib tug dov hloov tshiab, tab sis peb tsuas xav tsim ib tug heterogeneous pawg ob qho tib si nyob rau hauv cov nqe lus. ntawm ntau versions ntawm ClickHouse thiab nyob rau hauv cov nqe lus ntawm txawv cia. Peb xav, piv txwv li, ua ib co replicas ntawm nyias disks, ntawm qeeb sawv daws yuav, feem ntau, tag nrho tsim ib heterogeneous pawg. Thiab vim qhov tseeb tias StatefulSet ua cov txheej txheem kev daws teeb meem los ntawm ib tus qauv, tsis muaj txoj hauv kev los ua qhov no.

Tom qab qee qhov kev xav, nws tau txiav txim siab tias peb yuav ua li no. Peb muaj txhua qhov replica nyob rau hauv nws tus kheej StatefulSet. Muaj qee qhov tsis zoo rau qhov kev daws teeb meem no, tab sis hauv kev xyaum nws yog tag nrho cov encapsulated los ntawm tus neeg teb xov tooj. Thiab muaj ntau qhov zoo. Peb tuaj yeem tsim qhov tseeb pawg peb xav tau, piv txwv li, ib qho tsis sib xws kiag li. Yog li ntawd, nyob rau hauv ib pawg uas peb muaj ob lub shards nrog ib tug replica, peb yuav muaj 2 StatefulSets thiab 2 Pods precisely vim hais tias peb xaiv no mus kom ze rau cov laj thawj uas tau teev saum toj no kom muaj peev xwm tsim ib heterogeneous pawg.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb rov qab mus rau cov teeb meem siv tau. Hauv peb pawg peb yuav tsum teeb tsa cov neeg siv, i.e. Koj yuav tsum ua qee qhov kev teeb tsa ntawm ClickHouse hauv Kubernetes. Tus neeg teb xov tooj muab tag nrho cov muaj peev xwm rau qhov no.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb tuaj yeem sau qhov peb xav tau ncaj qha rau hauv YAML. Tag nrho cov kev xaiv configuration yog mapped ncaj qha los ntawm YAML no rau hauv ClickHouse configs, uas tau muab faib thoob plaws hauv pawg.

Koj sau tau zoo li no. Qhov no yog piv txwv. Tus password tuaj yeem raug encrypted. kiag li tag nrho ClickHouse configuration xaiv tau txais kev txhawb nqa. Nov yog piv txwv xwb.

Cov kev teeb tsa pawg tau muab faib ua ConfigMap. Hauv kev xyaum, ConfigMap hloov tshiab tsis tshwm sim tam sim ntawd, yog li yog tias pawg loj, ces cov txheej txheem ntawm thawb lub teeb tsa yuav siv sij hawm qee lub sijhawm. Tab sis tag nrho cov no yog heev yooj yim mus use.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb ua haujlwm nyuaj. Cov pawg tab tom txhim kho. Peb xav rov luam cov ntaub ntawv. Ntawd yog, peb twb muaj ob lub shards, ib qho replica txhua, thiab cov neeg siv tau teeb tsa. Peb loj hlob thiab xav ua replication.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb xav tau dab tsi rau replication?

Peb xav tau ZooKeeper. Hauv ClickHouse, kev rov ua dua yog tsim siv ZooKeeper. ZooKeeper xav tau kom sib txawv ClickHouse replicas muaj kev pom zoo hais txog cov ntaub ntawv thaiv dab tsi ntawm ClickHouse.

ZooKeeper tuaj yeem siv los ntawm leej twg. Yog tias lub tuam txhab muaj ZooKeeper sab nraud, ces nws tuaj yeem siv tau. Yog tias tsis yog, koj tuaj yeem nruab nws los ntawm peb lub chaw cia khoom. Nws muaj ib tug installer uas ua rau tag nrho cov no yooj yim dua.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab daim duab qhia kev sib cuam tshuam ntawm tag nrho cov kab ke hloov tawm zoo li no. Peb muaj Kubernetes ua lub platform. Nws ua haujlwm rau ClickHouse tus neeg teb xov tooj. Kuv tau yees duab ZooKeeper ntawm no. Thiab tus neeg teb xov tooj cuam tshuam nrog ClickHouse thiab ZooKeeper. Ntawd yog, kev sib cuam tshuam tshwm sim.

Thiab tag nrho cov no yog qhov tsim nyog rau ClickHouse kom ua tiav cov ntaub ntawv hauv k8s.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb tam sim no saib ntawm txoj hauj lwm nws tus kheej, ntawm qhov manifest rau replication yuav zoo li cas.

Peb tab tom ntxiv ob ntu rau peb qhov manifest. Thawj yog qhov twg kom tau ZooKeeper, uas tuaj yeem yog sab hauv Kubernetes lossis sab nraud. Qhov no tsuas yog piav qhia xwb. Thiab peb xaj replicas. Cov. peb xav tau ob replicas. Nyob rau hauv tag nrho, peb yuav tsum muaj 4 pods ntawm cov zis. Peb nco ntsoov txog kev khaws cia, nws yuav rov qab los me ntsis tom qab. Cia yog ib zaj dab neeg cais.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nws zoo li no.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nws yuav zoo li no. Replicas ntxiv. Qhov thib 4 tsis haum, peb ntseeg tias yuav muaj ntau ntawm lawv nyob ntawd. Thiab ZooKeeper ntxiv rau sab. Cov schemes tau dhau los ua complex.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab nws yog lub sijhawm los ntxiv cov haujlwm tom ntej. Peb yuav ntxiv Kev Cia Siab Ntxiv.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)Rau Persistent Storage peb muaj ntau yam kev xaiv.

Yog tias peb tab tom khiav hauv huab huab, piv txwv li, siv Amazon, Google, ces muaj kev sim siab zoo los siv huab cia. Nws yooj yim heev, nws zoo.

Thiab muaj kev xaiv thib ob. Qhov no yog rau kev khaws cia hauv zos, thaum peb muaj cov disks hauv zos ntawm txhua qhov. Qhov kev xaiv no nyuaj dua rau kev siv, tab sis tib lub sijhawm nws muaj txiaj ntsig ntau dua.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb saib seb peb muaj dab tsi txog huab cia.

Muaj qhov zoo. Nws yooj yim heev rau configure. Peb tsuas yog xaj los ntawm tus muab kev pabcuam huab uas thov muab rau peb khaws cia ntawm cov peev txheej zoo li no thiab cov chav kawm zoo li no. Cov chav kawm raug teem los ntawm cov kws kho mob ntawm nws tus kheej.

Thiab muaj ib tug drawback. Rau qee tus, qhov no yog qhov tsis tseem ceeb. Tau kawg, yuav muaj qee qhov teeb meem kev ua haujlwm. Nws yooj yim heev rau siv thiab txhim khu kev qha, tab sis muaj qee qhov kev ua tau zoo tsis zoo.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab vim ClickHouse tsom tshwj xeeb rau kev tsim khoom lag luam, ib tus yuav txawm hais tias nws nyem tawm txhua yam nws ua tau, uas yog vim li cas ntau tus neeg siv khoom sim nyem tawm qhov tsim tau ntau tshaj plaws.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab kom tau txais txiaj ntsig zoo tshaj plaws ntawm nws, peb xav tau kev cia hauv zos.

Kubernetes muab peb qhov kev paub daws teeb meem rau kev siv qhov chaw cia hauv Kubernetes. Qhov no:

  • EmptyDir
  • HostPath.
  • Local

Cia peb saib seb lawv txawv li cas thiab lawv zoo sib xws li cas.

Ua ntej, nyob rau hauv tag nrho peb txoj kev peb muaj cia - cov no yog cov disks hauv zos uas nyob ntawm tib lub cev k8s node. Tab sis lawv muaj qee qhov sib txawv.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb pib nrog qhov yooj yim tshaj plaws, piv txwv li emptyDir. Qhov no yog dab tsi hauv kev xyaum? Hauv peb qhov kev qhia tshwj xeeb, peb thov kom lub thawv ntim khoom (feem ntau Docker) muab rau peb nkag mus rau ib daim nplaub tshev hauv zos disk.

Hauv kev xyaum, Docker tsim ib daim nplaub tshev ib ntus nyob rau hauv nws txoj kev thiab hu nws ntev hash. Thiab muab ib tug interface mus saib tau nws.

Qhov kev ua haujlwm no yuav zoo li cas? Qhov no yuav ua hauj lwm ntawm lub zos disk ceev, i.e. Qhov no yog tag nrho nkag mus rau koj cov ntsia hlau.

Tab sis qhov no muaj nws drawback. Persistent yog heev dubious nyob rau hauv qhov teeb meem no. Thawj zaug Docker txav nrog cov thawv, Tsis tu ncua poob. Yog tias Kubernetes xav txav Pod no mus rau lwm lub disk vim qee yam, cov ntaub ntawv yuav ploj.

Txoj hauv kev no yog qhov zoo rau kev sim, vim tias nws twb qhia tau hais tias ib txwm ceev, tab sis rau qee yam loj qhov kev xaiv no tsis haum.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Yog li ntawd muaj ob txoj hauv kev. Qhov no yog hostPath. Yog tias koj saib ntawm tus swb dhau los thiab qhov no, koj tuaj yeem pom tsuas yog ib qho sib txawv. Peb cov ntawv tais ceev tseg tau txav los ntawm Docker ncaj qha mus rau Kubernetes node. Nws yooj yim me ntsis ntawm no. Peb ncaj qha qhia txoj hauv kev ntawm cov ntaub ntawv hauv zos uas peb xav khaws peb cov ntaub ntawv.

Txoj kev no muaj qhov zoo. Qhov no twb yog ib qho Persistent tiag tiag, thiab ib qho classic ntawm qhov ntawd. Peb yuav muaj cov ntaub ntawv kaw rau ntawm disk ntawm qee qhov chaw nyob.

Kuj muaj qhov tsis zoo. Qhov no yog qhov nyuaj ntawm kev tswj hwm. Peb Kubernetes tej zaum yuav xav txav Pod mus rau lwm lub cev. Thiab qhov no yog qhov uas DevOps los ua si. Nws yuav tsum tau piav qhia kom raug rau tag nrho cov kab ke uas cov pods no tsuas yog txav mus rau cov nodes uas koj muaj ib yam dab tsi mounted raws cov kab no, thiab tsis muaj ntau tshaj ib lub ntawm ib lub sij hawm. Nws nyuaj heev.

Tshwj xeeb tshaj yog rau cov hom phiaj no, peb tau tsim cov qauv hauv peb tus neeg teb xov tooj txhawm rau txhawm rau zais tag nrho cov kev nyuaj no. Thiab koj tuaj yeem hais yooj yim: "Kuv xav kom muaj ib qho piv txwv ntawm ClickHouse rau txhua lub cev ntawm lub cev thiab raws li txoj hauv kev zoo li no."

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tab sis peb tsis yog tib tus uas xav tau qhov kev xav tau no, yog li cov txiv neej los ntawm Kubernetes nws tus kheej kuj nkag siab tias tib neeg xav kom muaj kev nkag mus rau lub cev disks, yog li lawv muab txheej thib peb.

Nws hu ua hauv zos. Yeej tsis muaj qhov txawv ntawm qhov swb dhau los. Tsuas yog ua ntej nws yuav tsum tau manually paub meej tias peb tsis tuaj yeem hloov cov pods ntawm node mus rau ntawm node, vim hais tias lawv yuav tsum tau txuas nrog rau qee txoj hauv kev mus rau lub cev lub cev hauv zos, tab sis tam sim no tag nrho cov kev paub no yog encapsulated hauv Kubernetes nws tus kheej. Thiab nws hloov tawm kom yooj yim dua rau kev teeb tsa.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb rov qab los rau peb qhov teeb meem. Cia peb rov qab mus rau YAML template. Ntawm no peb muaj tiag tiag cia. Peb rov qab los rau nws. Peb teeb tsa tus qauv VolumeClaim classic li hauv k8s. Thiab peb piav qhia txog yam khoom uas peb xav tau.

Tom qab no, k8s yuav thov cia. Yuav faib nws rau peb hauv StatefulSet. Thiab thaum kawg nws yuav nyob ntawm qhov pov tseg ntawm ClickHouse.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb muaj lub tswv yim no. Peb Qhov Kev Cia Siab Tseem Ceeb yog liab, uas zoo li hais tias nws yuav tsum tau ua.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab nws puv ntsuab. Tam sim no ClickHouse ntawm k8s pawg tswv yim tau ua tiav tiav. Peb muaj shards, replicas, ZooKeeper, peb muaj ib tug tiag tiag Persistent, uas yog siv nyob rau hauv ib txoj kev los yog lwm yam. Lub tswv yim twb ua tiav lawm.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb ua neej nyob mus li. Peb pawg tab tom txhim kho. Thiab Alexey sim, thiab tso tawm ib qho tshiab ntawm ClickHouse.

Ib txoj haujlwm ua tau tshwm sim - txhawm rau sim qhov tshiab ntawm ClickHouse ntawm peb pawg. Thiab, ib txwm, koj tsis xav dov nws tag nrho; koj xav muab cov ntawv tshiab tso rau hauv ib qho chaw nyob deb ntawm lub ces kaum, thiab tej zaum tsis yog ib qho tshiab, tab sis ob zaug ib zaug, vim lawv tawm ntau zaus.

Peb tuaj yeem hais li cas txog qhov no?

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Ntawm no peb tsuas muaj lub sijhawm zoo li no. Cov no yog pod templates. Koj tuaj yeem sau tau tias peb tus neeg teb xov tooj tag nrho tso cai rau koj los tsim ib pawg heterogeneous. Cov. configure, pib los ntawm tag nrho cov replicas nyob rau hauv ib pawg, xaus nrog txhua tus kheej replica, uas version peb xav ClickHouse, uas version peb xav tau cia. Peb tuaj yeem teeb tsa tag nrho pawg nrog rau kev teeb tsa peb xav tau.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb mus tob me ntsis hauv. Ua ntej no, peb tau tham txog yuav ua li cas ClickHouse-tus neeg ua haujlwm ua haujlwm nyob rau hauv kev sib raug zoo rau qhov tshwj xeeb ntawm ClickHouse.

Tam sim no kuv xav hais ob peb lo lus hais txog yuav ua li cas tus neeg teb xov tooj ua haujlwm feem ntau, nrog rau nws cuam tshuam li cas nrog K8s.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb saib kev cuam tshuam nrog K8s ua ntej. Yuav ua li cas thaum peb ua kubectl thov? Peb cov khoom tshwm sim hauv etcd los ntawm API.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Piv txwv li, cov khoom Kubernetes yooj yim: pod, StatefulSet, kev pabcuam, thiab lwm yam hauv cov npe.

Tib lub sijhawm, tsis muaj dab tsi tshwm sim ntawm lub cev. Cov khoom no yuav tsum tau muab tso rau hauv pawg.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Rau lub hom phiaj no, ib tug maub los tshwm. Tus maub los yog ib qho tshwj xeeb k8s tivthaiv uas tuaj yeem tsim cov lus piav qhia. Nws paub yuav ua li cas thiab ua li cas rau lub cev. Nws paub yuav ua li cas khiav cov thawv, dab tsi yuav tsum tau teeb tsa nyob rau hauv thiaj li ua rau lub server ua haujlwm.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab nws materializes peb cov khoom hauv K8s.

Tab sis peb xav ua lag luam tsis yog nrog cov pods thiab StatefulSets xwb, peb xav tsim ib qho ClickHouseInstallation, piv txwv li ib qho khoom ntawm ClickHouse hom, txhawm rau ua haujlwm nrog nws tag nrho. Txog tam sim no tsis muaj qhov ua tau zoo li no.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tab sis K8s muaj qhov zoo hauv qab no. Peb xav kom peb muaj ib qho chaw zoo li no complex qhov chaw uas peb pawg yuav tau sib sau los ntawm cov pods thiab StatefulSet.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab dab tsi yuav tsum tau ua rau qhov no? Ua ntej, Custom Resource Definition los rau hauv daim duab. Nws yog dab tsi? Qhov no yog ib qho lus piav qhia rau K8s, uas koj yuav muaj ib hom ntaub ntawv ntxiv, uas peb xav ntxiv cov peev txheej kev cai rau lub pod, StatefulSet, uas yuav nyuaj sab hauv. Qhov no yog ib qho kev piav qhia ntawm cov ntaub ntawv qauv.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb kuj xa nws mus rau kubectl thov. Kubernetes zoo siab coj nws.

Thiab tam sim no hauv peb qhov chaw cia, cov khoom hauv lwm yam muaj lub sijhawm los sau cov peev txheej kev cai hu ua ClickHouseInstallation.

Tab sis tam sim no tsis muaj dab tsi ntxiv yuav tshwm sim. Ntawd yog, yog tias peb tam sim no tsim cov ntaub ntawv YAML uas peb tau saib piav qhia txog shards thiab replicas thiab hais tias "kubectl thov," ces Kubernetes yuav txais nws, muab tso rau hauv lwm yam thiab hais tias: "Zoo heev, tab sis kuv tsis paub yuav ua li cas. nrog nws. Kuv tsis paub yuav ua li cas tswj ClickHouseInstallation. "

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Yog li, peb xav tau ib tus neeg los pab Kubernetes ua haujlwm rau hom ntaub ntawv tshiab. Nyob rau sab laug peb muaj ib haiv neeg Kubernetes maub los uas ua haujlwm nrog cov ntaub ntawv ib txwm muaj. Thiab ntawm txoj cai peb yuav tsum muaj tus tswj kev cai uas tuaj yeem ua haujlwm nrog cov ntaub ntawv kev cai.

Thiab nyob rau hauv lwm txoj kev nws yog hu ua tus neeg teb xov tooj. Kuv tshwj xeeb suav nrog nws ntawm no ua Kubernetes, vim tias nws tuaj yeem raug tua sab nraum K8s. Feem ntau, tau kawg, txhua tus neeg ua haujlwm raug tua hauv Kubernetes, tab sis tsis muaj dab tsi tiv thaiv nws los ntawm kev sawv sab nraud, yog li ntawm no nws tshwj xeeb yog tsiv tawm sab nraud.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab nyob rau hauv lem, tus tswj kev cai, tseem hu ua tus neeg teb xov tooj, cuam tshuam nrog Kubernetes ntawm API. Nws twb paub yuav ua li cas cuam tshuam nrog API. Thiab nws twb paub yuav ua li cas rau materialize lub complex Circuit Court uas peb xav ua los ntawm ib tug kev cai kev pab. Qhov no yog raws nraim li tus neeg teb xov tooj ua.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tus neeg teb xov tooj ua haujlwm li cas? Cia peb saib ntawm sab xis saib nws ua li cas. Cia peb kawm seb tus neeg teb xov tooj yuav ua li cas rau tag nrho cov no thiab yuav ua li cas ntxiv kev cuam tshuam nrog K8s tshwm sim.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tus neeg teb xov tooj yog qhov program. Nws yog qhov xwm txheej-oriented. Tus neeg teb xov tooj sau npe rau cov xwm txheej uas siv Kubernetes API. Kubernetes API muaj cov ntsiab lus nkag uas koj tuaj yeem sau npe rau cov xwm txheej. Thiab yog tias qee yam hloov pauv hauv K8s, ces Kubernetes xa cov xwm txheej rau txhua tus, piv txwv li. leej twg tau sau npe rau API point no yuav tau txais kev ceeb toom.

Tus neeg teb xov tooj sau npe rau cov xwm txheej thiab yuav tsum ua qee yam kev tawm tsam. Nws txoj haujlwm yog los teb rau cov xwm txheej tshwm sim.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cov xwm txheej yog tsim los ntawm qee qhov hloov tshiab. Peb cov ntaub ntawv YAML nrog cov lus piav qhia ntawm ClickHouseInstallation tuaj txog. Nws mus etcd los ntawm kubectl thov. Ib qho kev tshwm sim tau tshwm sim nyob rau ntawd, thiab vim li ntawd qhov xwm txheej no tuaj rau ClickHouse-neeg ua haujlwm. Tus neeg teb xov tooj tau txais cov lus piav qhia no. Thiab nws yuav tsum ua ib yam dab tsi. Yog tias qhov hloov tshiab tau tuaj txog rau cov khoom ClickHouseInstallation, ces koj yuav tsum hloov kho cov pawg. Thiab tus neeg teb xov tooj txoj haujlwm yog los hloov kho pawg.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nws ua dab tsi? Ua ntej, peb yuav tsum tau kos ib txoj kev npaj ua rau peb yuav ua li cas nrog qhov hloov tshiab no. Kev hloov tshiab tuaj yeem yog me me, piv txwv li. me me hauv YAML kev tua, tab sis tuaj yeem hloov pauv loj heev ntawm pawg. Yog li ntawd, tus neeg teb xov tooj tsim ib txoj kev npaj, thiab tom qab ntawd nws lo rau nws.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Raws li txoj kev npaj no, nws pib ua noj cov qauv no sab hauv thiaj li yuav ua rau cov khoom siv pods, kev pabcuam, i.e. ua li nws lub luag haujlwm tseem ceeb. Nov yog yuav ua li cas los tsim ib pawg ClickHouse hauv Kubernetes.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tam sim no cia peb kov ntawm xws li ib qho nthuav. Qhov no yog kev faib lub luag haujlwm ntawm Kubernetes thiab tus neeg teb xov tooj, i.e. Kubernetes ua dab tsi, tus neeg teb xov tooj ua dab tsi, thiab lawv sib cuam tshuam li cas.

Kubernetes yog lub luag haujlwm rau cov khoom, piv txwv li. rau ib qho yooj yim txheej ntawm cov khoom uas tuaj yeem txhais raws li qhov system-scope. Kubernetes paub yuav ua li cas tso cov pods, yuav ua li cas rov pib ntim, yuav ua li cas mount ntim, yuav ua li cas ua hauj lwm nrog ConfigMap, i.e. txhua yam uas tuaj yeem hu ua qhov system.

Cov neeg ua haujlwm ua haujlwm hauv cov chaw. Txhua tus neeg teb xov tooj yog tsim rau nws qhov chaw kawm. Peb tau ua nws rau ClickHouse.

Thiab tus neeg teb xov tooj sib cuam tshuam cov ntsiab lus ntawm thaj chaw kawm, xws li ntxiv ib qho kev hloov pauv, ua ib daim duab, teeb tsa kev soj ntsuam. Qhov no ua rau muaj kev faib tawm.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb saib ib qho piv txwv ntawm qhov kev faib lub luag haujlwm no tshwm sim li cas thaum peb ua qhov kev ua piv txwv ntxiv.

Tus neeg teb xov tooj tau txais ib txoj hauj lwm - ntxiv ib lub replica. Tus neeg teb xov tooj ua dab tsi? Tus neeg teb xov tooj yuav suav tias yuav tsum tau tsim ib lub StatefulSet tshiab, nyob rau hauv uas xws li thiab xws li cov qauv, ntim thov, yuav tsum tau piav qhia.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Nws tau npaj tag nrho thiab xa mus rau K8s. Nws hais tias nws xav tau ConfigMap, StatefulSet, Volume. Kubernetes ua haujlwm. Nws materializes lub hauv paus units uas nws ua hauj lwm.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab ces ClickHouse-operator los ua si dua. Nws twb muaj lub cev nqaij daim tawv uas nws muaj peev xwm ua tau ib yam dab tsi. Thiab ClickHouse-neeg ua haujlwm rov ua haujlwm hauv cov ntsiab lus sau npe. Cov. Tshwj xeeb ClickHouse, txhawm rau kom suav nrog ib qho kev hloov pauv hauv pawg, koj yuav tsum, ua ntej, teeb tsa cov ntaub ntawv schema uas muaj nyob hauv pawg no. Thiab, qhov thib ob, qhov kev hloov pauv no yuav tsum tau suav nrog hauv kev saib xyuas kom nws tuaj yeem taug qab kom meej. Tus neeg teb xov tooj twb teeb tsa qhov no.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab tsuas yog tom qab ntawd ClickHouse nws tus kheej los ua si, i.e. lwm qhov chaw siab dua. Qhov no twb yog database. Nws muaj nws tus kheej piv txwv, lwm qhov teeb tsa replica uas tau npaj los koom nrog pawg.

Nws hloov tawm tias cov saw hlau ntawm kev ua tiav thiab kev faib lub luag haujlwm thaum ntxiv ib qho kev hloov pauv yog ntev heev.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb txuas ntxiv peb cov dej num. Yog tias koj twb muaj ib pawg, koj tuaj yeem hloov kho qhov teeb tsa.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb tau ua nws kom koj tuaj yeem paste txoj cai mus rau hauv xml uas twb muaj lawm, uas ClickHouse nkag siab.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Koj tuaj yeem hloov kho ClickHouse. Tsuas yog zoned xa tawm yog qhov kuv tau tham txog thaum piav qhia hostPath, chaw cia khoom hauv zos. Qhov no yog yuav ua li cas zoned xa mus kom raug.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Lub luag haujlwm tseem ceeb tom ntej yog saib xyuas.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Yog tias peb pawg hloov pauv, ces peb yuav tsum tau teeb tsa kev saib xyuas ib ntus.

Cia peb saib daim duab. Peb twb saib cov xub ntsuab ntawm no lawm. Tam sim no cia saib cov xub liab. Nov yog qhov peb xav saib xyuas peb pawg. Yuav ua li cas ntsuas los ntawm ClickHouse pawg nkag mus rau hauv Prometheus, thiab tom qab ntawd mus rau Grafana.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Dab tsi yog qhov nyuaj nrog kev saib xyuas? Vim li cas qhov no tau nthuav tawm ua qee yam kev ua tiav? Qhov nyuaj yog nyob rau hauv dynamics. Thaum peb muaj ib pawg thiab nws zoo li qub, ces peb tuaj yeem teeb tsa kev saib xyuas ib zaug thiab tsis thab ntxiv lawm.

Tab sis yog tias peb muaj ntau pawg, lossis qee yam hloov pauv tas li, cov txheej txheem yog dynamic. Thiab tas li reconfigure xyuas yog ib qho pov tseg ntawm cov peev txheej thiab lub sijhawm, piv txwv li. txawm yog tub nkeeg xwb. Qhov no yuav tsum tau automated. Qhov nyuaj yog nyob rau hauv dynamics ntawm tus txheej txheem. Thiab tus neeg teb xov tooj automates qhov no zoo heev.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb pawg tau tsim kho li cas? Thaum pib nws zoo li ntawd.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Ces nws zoo li no.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thaum kawg, nws ua zoo li no.

Thiab kev saib xyuas yog ua tiav los ntawm tus neeg teb xov tooj. Ib qho chaw nkag.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Thiab tsuas yog ntawm qhov tawm peb saib ntawm Grafana dashboard kom pom tias lub neej ntawm peb pawg tau npau taws li cas.

Los ntawm txoj kev, Grafana dashboard kuj tau muab faib nrog peb tus neeg teb xov tooj ncaj qha hauv qhov chaws. Koj tuaj yeem txuas thiab siv. Peb DevOps tau muab cov duab thaij duab no rau kuv.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb xav mus qhov twg ntxiv? Qhov no:

  • Tsim kev xeem automation. Lub luag haujlwm tseem ceeb yog automated testing of new versions.
  • Peb kuj xav kom automate kev koom ua ke nrog ZooKeeper. Thiab muaj cov phiaj xwm los koom nrog ZooKeeper-operator. Cov. Tus neeg teb xov tooj tau sau rau ZooKeeper thiab nws yog qhov laj thawj uas ob tus tswv lag luam pib sib koom ua ke los tsim kom muaj kev daws teeb meem yooj yim dua.
  • Peb xav ua ntau cov cim tseem ceeb.
  • Kuv tseem ceeb hauv ntsuab tias peb tab tom mus txog qhov qub txeeg qub teg ntawm Templates - DONE, piv txwv li nrog rau kev tso tawm tom ntej ntawm tus neeg teb xov tooj peb yuav tau txais qub txeeg qub teg ntawm cov qauv. Qhov no yog ib tug haib cuab tam uas tso cai rau koj los tsim complex configurations ntawm tej daim.
  • Thiab peb xav tau automation ntawm txoj haujlwm nyuaj. Lub ntsiab yog Re-sharding.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cia peb coj qee qhov txiaj ntsig nruab nrab.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Peb tau txais dab tsi los ntawm qhov tshwm sim? Thiab puas tsim nyog ua lossis tsis ua? Puas yog nws tseem tsim nyog sim rub cov ntaub ntawv mus rau Kubernetes thiab siv tus neeg teb xov tooj dav dav thiab Alitnity tus neeg teb xov tooj tshwj xeeb?

Ntawm cov zis peb tau txais:

  • Qhov tseem ceeb simplification thiab automation ntawm configuration, deployment, thiab txij nkawm.
  • Tam sim ntawd built-in saib xyuas.
  • Thiab npaj-rau-siv codified templates rau complex xwm txheej. Ib qho kev txiav txim zoo li ntxiv ib qho replica tsis tas yuav ua manually. Tus neeg ua haujlwm ua qhov no.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tsuas muaj ib lo lus nug kawg nkaus xwb. Peb twb muaj database hauv Kubernetes, virtualization. Yuav ua li cas txog kev ua tau zoo ntawm cov kev daws teeb meem, tshwj xeeb tshaj yog txij li ClickHouse tau ua kom zoo rau kev ua haujlwm?

Cov lus teb yog txhua yam zoo! Kuv yuav tsis mus rau hauv kev nthuav dav; qhov no yog lub ntsiab lus ntawm ib daim ntawv qhia cais.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Tab sis muaj ib qhov project zoo li TSBS. Nws lub luag haujlwm tseem ceeb yog dab tsi? Qhov no yog ib qho kev xeem database. Qhov no yog ib qho kev sim sib piv sov nrog sov, mos nrog mos.

Nws ua haujlwm li cas? Ib txheej ntaub ntawv yog generated. Tom qab ntawd cov ntaub ntawv no tau khiav ntawm cov ntaub ntawv sib txawv uas siv tib yam kev xeem. Thiab txhua lub database daws ib qho teeb meem raws li nws paub yuav ua li cas. Thiab tom qab ntawd koj tuaj yeem sib piv cov txiaj ntsig.

Nws twb txhawb ib pawg loj ntawm databases. Kuv tau txheeb xyuas peb lub ntsiab. Qhov no:

  • TimescaleDB.
  • InfluxDB.
  • ClickHouse.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Kev sib piv kuj tau ua nrog lwm qhov kev daws teeb meem zoo sib xws. Kev sib piv nrog RedShift. Kev sib piv tau ua hauv Amazon. ClickHouse tseem ua tau zoo ua ntej ntawm txhua tus neeg hauv qhov teeb meem no.

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Cov lus xaus dab tsi tuaj yeem rub los ntawm qhov kuv tau hais?

  • DB hauv Kubernetes yog ua tau. Tej zaum txhua yam yog ua tau, tab sis tag nrho nws zoo li nws ua tau. ClickHouse hauv Kubernetes yeej ua tau nrog kev pab los ntawm peb tus neeg teb xov tooj.
  • Tus neeg teb xov tooj pab automate cov txheej txheem thiab tiag tiag ua rau lub neej yooj yim dua.
  • Kev ua tau zoo yog qhov qub.
  • Thiab nws zoo li peb tias qhov no tuaj yeem siv tau thiab yuav tsum tau siv.

Qhib qhov chaw - koom nrog peb!

Raws li kuv twb tau hais lawm, tus neeg teb xov tooj yog cov khoom lag luam qhib tag nrho, yog li nws yuav zoo heev yog tias cov neeg siv ntau tshaj plaws. Koom nrog peb! Peb tos koj txhua tus!

Ua tsaug rau sawv daws!

Lus nug

Tus neeg khiav dej num hauv Kubernetes rau kev tswj cov pawg database. Vladislav Klimenko (Altinity, 2019)

Ua tsaug rau daim ntawv qhia! Kuv lub npe yog Anton. Kuv tuaj ntawm SEMrush. Kuv tab tom xav tias yog dab tsi nrog kev txiav. Peb hnov ​​​​txog kev saib xyuas, tab sis tsis muaj dab tsi txog kev txiav, yog tias peb tham txog tag nrho pawg. Piv txwv li, peb tau tsa ib pawg ntawm hardware. Thiab peb siv centralized txiav, sau lawv mus rau hauv ib qho heap siv tus qauv txhais tau tias. Thiab tom qab ntawd los ntawm qhov ntawd peb tau txais cov ntaub ntawv uas peb nyiam.

Cov lus nug zoo, piv txwv li nkag rau hauv cov npe todo. Peb tus neeg teb xov tooj tseem tsis tau automate qhov no. Nws tseem tab tom txhim kho, qhov project tseem hluas heev. Peb nkag siab txog qhov xav tau ntawm kev txiav. Qhov no kuj yog ib lub ntsiab lus tseem ceeb heev. Thiab nws yog tej zaum tsis muaj tsawg tseem ceeb tshaj kev saib xyuas. Tab sis ua ntej ntawm daim ntawv teev npe rau kev siv yog saib xyuas. Yuav muaj kev kaw tseg. Lawm, peb sim automate txhua yam ntawm pawg neeg lub neej. Yog li ntawd, cov lus teb yog tias lub sijhawm tus neeg teb xov tooj, hmoov tsis, tsis paub yuav ua li cas, tab sis nws yog nyob rau hauv cov phiaj xwm, peb yuav ua nws. Yog tias koj xav koom, ces rub thov, thov.

Nyob zoo! Ua tsaug rau daim ntawv qhia! Kuv muaj ib nqe lus nug uas muaj feem xyuam nrog Persistent Volumes. Thaum peb tsim ib qho kev teeb tsa nrog tus neeg teb xov tooj no, tus neeg teb xov tooj yuav txiav txim siab li cas ntawm qhov twg peb muaj ib qho tshwj xeeb disk lossis nplaub tshev txuas? Peb yuav tsum xub piav qhia rau nws tias thov tso peb ClickHouse ntawm cov nodes uas muaj disk?

Raws li kuv nkag siab, lo lus nug no yog kev txuas ntxiv ntawm kev cia hauv zos, tshwj xeeb tshaj yog hostPath ib feem ntawm nws. Qhov no yog zoo li piav qhia rau tag nrho cov kab ke uas cov pod yuav tsum tau launched rau xws li ib tug node, uas peb muaj ib tug lub cev kev cob cog rua disk, uas yog mounted raws li thiab xws li ib txoj kev. Qhov no yog tag nrho seem uas kuv kov rau superficially vim hais tias cov lus teb muaj heev heev.

Luv luv nws zoo li no. Lawm, peb yuav tsum muab cov ntim no. Lub sijhawm tam sim no, tsis muaj cov kev pabcuam dynamic hauv zos cia, yog li DevOps yuav tsum txiav cov disks lawv tus kheej, cov ntim no. Thiab lawv yuav tsum piav qhia Kubernetes muab kev qhia tias koj yuav muaj cov ntawv tsis tu ncua ntawm cov chav kawm zoo li no, uas nyob ntawm cov no thiab cov nodes. Tom qab ntawd koj yuav tsum tau piav qhia rau Kubernetes tias cov pods uas yuav tsum tau muaj xws li thiab xws li chav cia khoom hauv zos yuav tsum tau coj mus rau qhov no thiab cov nodes siv cov ntawv lo. Rau cov hom phiaj no, tus neeg teb xov tooj muaj peev xwm muab qee yam ntawm daim ntawv lo thiab ib qho rau ib tus tswv tsev. Thiab nws hloov tawm tias cov pods yuav raug xa los ntawm Kubernetes kom khiav tsuas yog ntawm cov nodes uas ua tau raws li qhov yuav tsum tau ua, cov ntawv lo, hauv cov ntsiab lus yooj yim. Cov thawj coj muab cov ntawv sau thiab muab cov disks manually. Thiab ces nws scales.

Thiab nws yog qhov kev xaiv thib peb, hauv zos, uas pab ua qhov no yooj yim me ntsis. Raws li kuv tau hais dhau los lawm, qhov no yog kev mob siab ua haujlwm ntawm kev kho, uas thaum kawg pab kom tau txais kev ua haujlwm siab tshaj plaws.

Kuv muaj lus nug thib ob ntsig txog qhov no. Kubernetes tau tsim nyob rau hauv xws li ib txoj kev uas nws tsis muaj teeb meem rau peb seb peb poob ib tug los yog tsis. Peb yuav tsum ua li cas rau qhov no yog tias peb tau ploj ntawm qhov chaw uas peb cov shard hangs?

Yog lawm, Kubernetes tau pib qhov chaw tias peb txoj kev sib raug zoo nrog peb cov pods zoo li nyuj, tab sis ntawm no nrog peb txhua lub disk ua ib yam dab tsi zoo li tus tsiaj. Muaj ib qho teeb meem uas peb tsis tuaj yeem muab pov tseg. Thiab txoj kev loj hlob ntawm Kubernetes yog mus rau hauv cov kev taw qhia uas nws yog tsis yooj yim sua kom kho nws philosophically kiag li, raws li yog hais tias nws yog ib tug kiag li muab pov tseg.

Tam sim no rau cov lus nug uas siv tau. Yuav ua li cas yog tias koj poob qhov node ntawm lub disk? Ntawm no qhov teeb meem raug daws nyob rau theem siab dua. Nyob rau hauv cov ntaub ntawv ntawm ClickHouse, peb muaj replicas uas ua hauj lwm nyob rau theem siab dua, i.e. ntawm qib ClickHouse.

Qhov tshwm sim yog dab tsi? DevOps yog lub luag haujlwm los xyuas kom meej tias cov ntaub ntawv tsis ploj. Nws yuav tsum teeb tsa replication kom raug thiab yuav tsum xyuas kom meej tias replication khiav. Cov ntawv luam ntawm qib ClickHouse yuav tsum muaj cov ntaub ntawv duplicated. Qhov no tsis yog qhov teeb meem uas tus neeg teb xov tooj daws tau. Thiab tsis yog qhov teeb meem uas Kubernetes nws tus kheej daws. Qhov no yog nyob rau theem ClickHouse.

Yuav ua li cas yog tias koj lub pob hlau poob? Thiab nws hloov tawm tias koj yuav tsum tau nruab ib qhov thib ob, muab cov disc rau nws kom zoo, thiab siv cov ntawv sau. Thiab tom qab ntawd, nws yuav ua tau raws li qhov yuav tsum tau ua uas Kubernetes tuaj yeem tso tawm qhov piv txwv ntawm nws. Kubernetes yuav tso nws. Koj tus naj npawb ntawm cov pods tsis txaus kom tau raws li tus lej teev tseg. Nws yuav mus dhau lub voj voog uas kuv tau pom. Thiab nyob rau theem siab tshaj plaws, ClickHouse yuav nkag siab tias peb tau nkag mus rau qhov hloov pauv, nws tseem khoob thiab peb yuav tsum pib hloov cov ntaub ntawv mus rau nws. Cov. Cov txheej txheem no tseem tsis tau zoo automated.

Ua tsaug rau daim ntawv qhia! Thaum txhua yam kev phem tshwm sim, tus neeg teb xov tooj tsoo thiab rov pib dua, thiab lub sijhawm ntawd cov xwm txheej tuaj txog, koj puas ua li cas rau qhov no?

Yuav ua li cas yog tias tus neeg teb xov tooj poob thiab rov pib dua, txoj cai?

Yog lawm. Thiab lub sijhawm ntawd cov xwm txheej tuaj txog.

Lub luag haujlwm ntawm yuav ua li cas rau qhov no yog ib feem ntawm tus neeg teb xov tooj thiab Kubernetes. Kubernetes muaj peev xwm rov ua dua qhov xwm txheej uas tau tshwm sim. Nws replays. Thiab tus neeg teb xov tooj lub luag haujlwm yog kom paub tseeb tias thaum lub sijhawm cov xwm txheej rov ua dua rau nws, cov xwm txheej no tsis muaj zog. Thiab yog li ntawd qhov rov tshwm sim ntawm tib qhov xwm txheej tsis ua txhaum peb lub cev. Thiab peb tus neeg ua haujlwm tiv nrog txoj haujlwm no.

Nyob zoo! Ua tsaug rau daim ntawv qhia! Dmitry Zavyalov, lub tuam txhab Smedova. Puas muaj kev npaj yuav ntxiv lub peev xwm los teeb tsa nrog haproxy rau tus neeg teb xov tooj? Kuv yuav txaus siab rau qee qhov sib npaug ntawm qhov sib npaug ntawm tus qauv, kom nws ntse thiab nkag siab tias ClickHouse yeej muaj.

Puas yog koj tab tom tham txog Ingress?

Yog lawm, hloov Ingress nrog haproxy. Hauv haproxy koj tuaj yeem qhia qhov topology ntawm pawg uas nws muaj replicas.

Peb tseem tsis tau xav txog nws. Yog tias koj xav tau nws thiab tuaj yeem piav qhia vim li cas nws thiaj li xav tau, ces nws yuav muaj peev xwm los siv tau, tshwj xeeb tshaj yog tias koj xav koom nrog. Peb yuav zoo siab los xav txog qhov kev xaiv. Cov lus teb luv luv yog tsis yog, peb tam sim no tsis muaj cov haujlwm zoo li no. Ua tsaug rau cov lus qhia, peb mam li saib rau qhov teeb meem no. Thiab yog tias koj tseem piav qhia txog kev siv thiab vim li cas nws thiaj li xav tau hauv kev xyaum, piv txwv li, tsim teeb meem ntawm GitHub, ces qhov ntawd yuav zoo heev.

Tau lawm.

Zoo. Peb qhib rau txhua lub tswv yim. Thiab haproxy tau ntxiv rau cov npe todo. Daim ntawv teev npe todo yog loj hlob, tsis tau shrinking. Tab sis qhov no yog qhov zoo, nws txhais tau tias cov khoom yog nyob rau hauv kev thov.

Tau qhov twg los: www.hab.com

Ntxiv ib saib