Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Rapò a konsakre nan pwoblèm yo pratik nan devlope yon operatè nan Kubernetes, desine achitekti li yo ak prensip debaz nan operasyon.

Nan premye pati rapò a, nou pral konsidere:

  • ki sa ki yon operatè nan Kubernetes ak poukisa li nesesè;
  • ki jan egzakteman operatè a senplifye jesyon an nan sistèm konplèks;
  • sa operatè a kapab ak sa operatè a pa kapab.

Apre sa, nou ale nan yon diskisyon sou estrikti entèn operatè a. Konsidere achitekti ak operasyon operatè a etap pa etap. Ann analize an detay:

  • entèraksyon ant operatè a ak Kubernetes;
  • ki fonksyon operatè a pran ak sa ki delege nan Kubernetes.

Konsidere jere shards ak kopi baz done nan Kubernetes.
Apre sa, nou pral diskite sou pwoblèm depo done:

  • ki jan yo travay ak Depo Pèsistan nan pwen de vi yon operatè;
  • enkonvenyans lè w sèvi ak Depo Lokal.

Nan pati final la nan rapò a, nou pral konsidere egzanp pratik aplikasyon an operatè clickhouse ak Amazon oswa Google Cloud Service. Rapò a baze sou egzanp devlopman ak eksperyans operasyon operatè ClickHouse.

Videyo:

Non mwen se Vladislav Klimenko. Jodi a mwen te vle pale sou eksperyans nou nan devlope ak opere yon operatè, e sa a se yon operatè espesyalize pou jere gwoup baz done. Pa egzanp ClickHouse-operatè pou jere gwoup ClickHouse la.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Poukisa nou gen opòtinite pou pale sou operatè a ak ClickHouse?

  • Nou sipòte epi devlope ClickHouse.
  • Nan moman sa a, nou ap eseye tou dousman fè kontribisyon nou an nan devlopman nan ClickHouse. Epi nou se dezyèm apre Yandex an tèm de kantite chanjman ki fèt nan ClickHouse.
  • Nou ap eseye fè lòt pwojè pou ekosistèm ClickHouse la.

Mwen ta renmen pale sou youn nan pwojè sa yo. Sa a se sou ClickHouse-operatè pou Kubernetes.

Nan rapò mwen an, mwen ta renmen touche de sijè:

  • Premye sijè a se kijan operatè baz done ClickHouse nou an ap travay nan Kubernetes.
  • Dezyèm sijè a se ki jan nenpòt operatè travay, sa vle di ki jan li reyaji ak Kubernetes.

Sepandan, de kesyon sa yo pral kwaze nan tout rapò mwen an.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki moun ki ta enterese tande sa m ap eseye di?

  • Ki pi enteresan an pral moun ki eksplwate operatè yo.
  • Oswa pou moun ki vle fè pwòp yo nan lòd yo konprann ki jan li fonksyone andedan, ki jan operatè a reyaji ak Kubernetes, ak ki enkonvenyans ka parèt.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Yo nan lòd yo pi byen konprann sa nou pral diskite jodi a, li ta bon pou konnen ki jan Kubernetes travay epi yo gen yon background debaz nan cloud computing.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki sa ki ClickHouse? Sa a se yon baz done kolòn ak spesifik nan pwosesis sou entènèt nan demann analyse. Epi li konplètman louvri sous.

Epi nou sèlman bezwen konnen de bagay. Ou bezwen konnen ke sa a se yon baz done, kidonk sa mwen pral di w ap aplikab a prèske nenpòt baz done. Ak lefèt ke ClickHouse DBMS balanse trè byen bay évolutivité a prèske lineyè. Se poutèt sa, eta gwoup la se yon eta natirèl pou ClickHouse. Epi nou pi enterese nan diskite sou fason pou sèvi yon gwoup ClickHouse nan Kubernetes.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Poukisa li bezwen la? Poukisa nou pa ka kontinye opere li tèt nou? Ak repons yo se an pati teknik ak an pati òganizasyonèl.

  • Nan pratik, pi plis ak pi souvan nou rankontre yon sitiyasyon konsa lè nan gwo konpayi prèske tout eleman yo deja nan Kubernetes. Rete baz done deyò.
  • Ak pi plis ak pi souvan yo poze kesyon an: "Èske li ka mete andedan?". Se poutèt sa, gwo konpayi yo ap eseye pwodwi maksimòm inifikasyon nan jesyon yo nan lòd yo byen vit kapab jere depo done yo.
  • Ak sa a espesyalman ede si ou bezwen maksimòm opòtinite pou repete menm bagay la nan yon nouvo kote, se sa ki, maksimòm portabilite.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki jan li fasil oswa difisil? Sa a, nan kou, ka fè alamen. Men, sa a se pa tèlman fasil, paske nou ajoute konpleksite nan jere Kubernetes tèt li, men an menm tan an espesifik yo nan ClickHouse yo enpoze. Epi li vire soti tankou yon agrégation.

Ak tout ansanm, sa a bay yon seri teknoloji jistis gwo, ki deja vin byen difisil pou jere, paske Kubernetes pote pwoblèm chak jou li yo nan operasyon, ak ClickHouse pote pwoblèm li yo nan operasyon chak jou. Espesyalman si nou gen plizyè ClickHouses, epi nou bezwen toujou ap fè yon bagay avèk yo.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

ClickHouse ak yon konfigirasyon dinamik gen yon gwo kantite pwoblèm ki kreye yon chaj konstan sou DevOps:

  • Lè nou vle chanje yon bagay nan ClickHouse, pou egzanp, ajoute yon kopi, yon shard, Lè sa a, nou bezwen jere konfigirasyon an.
  • Lè sa a, chanje konplo done a, paske ClickHouse gen yon metòd sharding espesifik. Gen li nesesè mete deyò konplo a done, mete deyò konfigirasyon.
  • Ou bezwen mete siveyans.
  • Koleksyon mòso bwa pou nouvo shards, pou nouvo kopi.
  • Pran swen rekiperasyon an.
  • Epi rekòmanse.

Sa yo se travay woutin sa yo ke mwen ta renmen anpil fasilite nan operasyon.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Kubernetes tèt li ede anpil nan operasyon, men sou bagay sistèm debaz yo.

Kubernetes se gwo nan fasilite ak otomatize bagay sa yo tankou:

  • Rekiperasyon.
  • Rekòmanse.
  • Jesyon depo.

Sa a bon, se bon direksyon an, men li konplètman soti nan kontak ak fason yo opere yon gwoup baz done.

Mwen vle plis, mwen vle tout baz done a travay pou nou nan Kubernetes.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Mwen ta renmen jwenn yon bagay tankou yon gwo bouton wouj majik ke ou peze epi ou gen yon gwoup deplwaye epi konsève pandan tout sik lavi a ak travay chak jou ki bezwen rezoud. ClickHouse gwoup nan Kubernetes.

Epi nou te eseye fè yon solisyon ki ta ede fasilite travay la. Sa a se ClickHouse-operatè pou Kubernetes soti nan Altinity.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Yon operatè se yon pwogram ki gen travay prensipal se jere lòt pwogram, se sa ki se yon manadjè.

Epi li gen modèl konpòtman. Ou ka rele li konesans kodifye sou sijè a.

Ak travay prensipal li se fè lavi pi fasil pou DevOps epi redwi mikwojesyon pou ke li (DevOps) deja panse an tèm wo nivo, se sa ki, pou li (DevOps) pa mikro jere, pou li pa manyèlman konfigirasyon tout bagay sa yo. detay.

Epi jis operatè a se yon asistan robo ki ap lite ak microtasks epi ki ede DevOps.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Poukisa yon operatè bezwen? Li ekselan nan de domèn:

  • Lè yon espesyalis ClickHouse pa gen ase eksperyans, men li deja nesesè pou opere ClickHouse, operatè a fasilite operasyon ak pèmèt ou opere yon gwoup ClickHouse ak yon konfigirasyon olye konplèks, pandan w pa antre nan twòp detay sou fason li tout travay andedan. . Ou jis ba li travay wo nivo, epi li travay.
  • Ak dezyèm travay la nan ki li montre tèt li pi byen se lè li nesesè otomatize yon gwo kantite travay tipik. Retire microtasks nan sysadmins.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Sa a pi bezwen swa pa moun ki jis kòmanse vwayaj yo, oswa pa moun ki bezwen fè anpil automatisation.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki diferans ki genyen ant apwòch ki baze sou operatè a ak lòt sistèm? Genyen tou Helm. Li ede tou enstale ClickHouse, ou ka trase tablo Helm, ki pral menm enstale yon gwoup ClickHouse antye. Lè sa a, ki diferans ki genyen ant operatè a ak soti nan menm, pou egzanp, Helm?

Diferans prensipal prensipal la se ke Helm se tout sou jesyon pake, ak operatè a ale yon etap pi lwen. Sa a se sipò nan tout sik lavi a. Sa a se pa sèlman enstalasyon, sa yo se travay chak jou ki gen ladan dekale, sharding, sa vle di tout bagay ki bezwen fè pandan sik lavi a (si sa nesesè, retire tou) - sa a se tout deside pa operatè a. Li eseye otomatize ak sèvi tout sik lavi lojisyèl an. Sa a se diferans fondamantal li yo ak lòt solisyon yo prezante.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Se te pati entwodiksyon an, ann kontinye.

Ki jan nou bati operatè nou an? Nou ap eseye apwòch pwoblèm nan nan lòd yo jere gwoup ClickHouse la kòm yon sèl resous.

Isit la nou gen done yo D 'sou bò gòch nan foto a. Sa a se YAML ak yon spesifikasyon gwoup, ki se klasikman pase nan kubectl nan Kubernetes. La, operatè nou ranmase l, fè maji li. E kòm rezilta, nou jwenn yon konplo konsa. Sa a se aplikasyon ClickHouse nan Kubernetes.

Lè sa a, nou pral tou dousman gade nan ki jan operatè a travay, ki travay tipik yo ka rezoud. Nou pral konsidere sèlman travay tipik, paske nou gen tan limite. Epi li pa pral di sou tout bagay ke operatè a ka deside.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann kòmanse nan pratik. Pwojè nou an konplètman louvri, kidonk ou ka wè ki jan li fonksyone sou GitHub. Epi ou ka kontinye nan konsiderasyon yo, si ou jis vle kòmanse, Lè sa a, ou ka kòmanse ak Gid la Quick Start.

Si ou vle konprann an detay, Lè sa a, nou eseye kenbe dokiman an nan yon fòm plis oswa mwens desan.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann kòmanse ak yon pwoblèm pratik. Premye travay nou tout vle kòmanse ak se kouri premye egzanp yon jan kanmenm. Ki jan yo lanse ClickHouse avèk èd nan yon operatè, san yo pa menm konnen ki jan li fonksyone? N ap ekri yon manifès, paske tout kominikasyon ak k8s se kominikasyon atravè manifeste.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Isit la se tankou yon manifès konplèks. Sa nou te make an wouj se sa nou bezwen konsantre sou. Nou mande operatè a pou kreye yon gwoup ki rele Demo.

Pou kounye a, sa yo se egzanp debaz. Depo poko dekri, men nou pral retounen nan depo yon ti kras pita. Pou kounye a, nou pral obsève devlopman gwoup la nan dinamik.

Nou te kreye manifest sa a. Nou bay li bay operatè nou an. Li te travay, li te fè maji.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou gade konsole a. Twa eleman ki enterese - sa yo se Pod, de Service-a, StatefulSet.

Operatè a te travay, epi nou ka wè ki sa egzakteman li te kreye.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Li kreye yon bagay konsa. Nou gen yon StatefulSet, Pod, ConfigMap pou chak kopi, ConfigMap pou tout gwoup la. Nesesèman sèvis kòm pwen antre nan gwoup la.

Sèvis yo se sèvis santral Load Balancer epi li posib pou chak kopi, pou chak shard.

Isit la se gwoup baz nou an sanble yon bagay tankou sa a. Li soti nan yon sèl ne.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann ale pi lwen, nou pral konplike. Ou bezwen shard grap la.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Travay nou yo ap grandi, dinamik yo kòmanse. Nou vle ajoute yon shard. Nou swiv devlopman an. Nou chanje spesifikasyon nou an. Nou endike ke nou vle de shards.

Sa a se menm dosye a ke nou devlope dinamik ak kwasans lan nan sistèm nan. Pa gen okenn depo, depo yo pral diskite pi lwen, sa a se yon pwoblèm separe.

Nou manje operatè YAML a epi wè sa k ap pase.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Operatè a te panse ak fè antite sa yo. Nou deja gen de Pods, twa Sèvis ak, toudenkou, 2 StatefulSets. Poukisa 2 StatefulSets?

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Li te tankou sa a sou dyagram nan - sa a se premye eta nou an, lè nou te gen yon sèl gous.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Li te vin tankou sa a. Jiskaprezan, tout bagay se senp, li te kopi.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Epi poukisa StatefulSet la te vin de? Isit la nou bezwen digress ak diskite sou kesyon an sou ki jan gous yo jere nan Kubernetes.

Gen tankou yon objè ki rele StatefulSet, ki pèmèt ou fè yon seri gous soti nan yon modèl. Faktè kle isit la se Template. Epi ou ka kouri anpil Pods nan yon sèl StatefulSet dapre yon modèl. Ak fraz kle isit la se "yon modèl anpil gous".

Epi te gen yon gwo tantasyon pou fè tout gwoup la, pake li nan yon sèl StatefulSet. Li pral travay, pa gen okenn pwoblèm nan li. Men, gen yon opozisyon. Si nou vle rasanble yon gwoup etewojèn, sa vle di soti nan plizyè vèsyon nan ClickHouse, Lè sa a, kesyon nou yo kòmanse. Wi, StatefulSet ka fè yon aktyalizasyon woule, men gen ou ka woule soti yon nouvo vèsyon, eksplike ke ou bezwen eseye pa plis pase anpil nœuds an menm tan an.

Men, si nou ekstrapolasyon travay la epi di ke nou vle fè yon grap konplètman etewojèn epi yo pa vle chanje soti nan vèsyon an ansyen nan yon nouvo lè l sèvi avèk yon aktyalizasyon woule, men tou senpleman vle kreye yon grap etewojèn tou de an tèm de vèsyon diferan. nan ClickHouse ak an tèm de depo diferan. Nou vle, pou egzanp, fè kèk kopi sou disk separe, sou sa ki ralanti, an jeneral, konplètman bati yon gwoup etewojèn. Ak akòz lefèt ke StatefulSet fè yon solisyon estanda soti nan yon modèl, kidonk pa gen okenn fason yo fè sa.

Apre kèk reflechi, li te deside ke nou fè tankou sa a. Nou gen chak kopi nan pwòp StatefulSet pa yo. Gen kèk dezavantaj nan solisyon sa a, men nan pratik li nan tout konplètman encapsule operatè a. E gen anpil benefis. Nou ka bati yon gwoup konplètman tankou nou vle, pou egzanp, yon sèl absoliman etewojèn. Se poutèt sa, nan yon gwoup kote nou gen de shards ak yon sèl kopi, nou pral gen 2 StatefulSets ak 2 gous jisteman paske nou te chwazi apwòch sa a akòz rezon ki anwo yo pou kapasite nan bati yon grap etewojèn.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann retounen nan travay pratik. Nan gwoup nou an, nou bezwen konfigirasyon itilizatè yo, i.e. ou bezwen fè kèk konfigirasyon ClickHouse nan Kubernetes. Operatè a bay tout posiblite pou sa.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou ka ekri sa nou vle dirèkteman nan YAML. Tout opsyon konfigirasyon yo trase dirèkteman nan YAML sa a nan konfigirasyon ClickHouse, ki answit deplwaye nan tout gwoup la.

Ou ka ekri tou konsa. Sa a se pou yon egzanp. Modpas la ka chiffres. Absoliman tout opsyon konfigirasyon ClickHouse yo sipòte. Isit la se jis yon egzanp.

Konfigirasyon gwoup la distribye kòm ConfigMap. Nan pratik, aktyalizasyon ConfigMap la pa rive imedyatman, kidonk si gen yon gwo gwoup, Lè sa a, pwosesis pouse konfigirasyon an pran kèk tan. Men, tout bagay sa yo trè pratik pou itilize.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou konplike travay la. Gwoup la ap devlope. Nou vle repwodui done yo. Sa vle di, nou deja gen de shards, yon kopi chak, itilizatè yo configuré. Nou ap grandi epi nou vle repwodui.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki sa nou bezwen pou repwodiksyon?

Nou bezwen ZooKeeper. Nan ClickHouse, replikasyon yo bati ak ZooKeeper. ZooKeeper nesesè pou diferan kopi ClickHouse gen yon konsansis sou ki blòk done yo sou ki ClickHouse.

ZooKeeper ka itilize pa nenpòt moun. Si yon antrepriz gen yon ZooKeeper ekstèn, Lè sa a, li ka itilize. Si ou pa, Lè sa a, ou ka enstale soti nan repozitwa nou an. Gen yon enstalatè ki fè tout bagay sa a pi fasil.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ak konplo a nan entèraksyon nan tout sistèm nan vire soti tankou sa a. Nou gen Kubernetes kòm yon platfòm. Li egzekite deklarasyon ClickHouse la. ZooKeeper mwen te foto isit la. Ak operatè a reyaji ak tou de ClickHouse ak ZooKeeper. Sa vle di, yo jwenn yon entèraksyon.

Ak tout bagay sa yo nesesè pou ClickHouse repwodui done yo avèk siksè nan k8s.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann gade kounye a travay nan tèt li, ki jan manifest pou replikasyon an pral sanble.

Nou ajoute de seksyon nan manifest nou an. Premye a se kote yo ka resevwa ZooKeeper, ki ka swa andedan Kubernetes oswa ekstèn. Sa a se jis yon deskripsyon. Epi nou kòmande kopi. Moun sa yo. nou vle de kopi. An total, nou ta dwe gen 4 gous nan pwodiksyon an. Nou sonje sou depo, li pral retounen yon ti kras pi lwen. Depo se yon chante separe.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Se te tankou sa a.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Li vin konsa. Replik yo ajoute. 4yèm lan pat anfòm, nou kwè ka gen anpil ladan yo. Epi ZooKeeper ajoute sou bò a. Modèl yo ap vin pi konplèks.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Epi li lè yo ajoute pwochen travay la. Nou pral ajoute Depo Pèsistan.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)Pou Depo Persistent, nou gen yon varyete opsyon.

Si nou ap kouri nan yon founisè nwaj, pou egzanp, lè l sèvi avèk Amazon, Google, Lè sa a, gen yon gwo tantasyon yo sèvi ak depo nwaj. Li trè pratik, li bon.

Epi gen yon dezyèm opsyon. Sa a se pou depo lokal, lè nou gen disk lokal sou chak ne. Opsyon sa a pi difisil pou aplike, men an menm tan li pi pwodiktif.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann wè sa nou genyen konsènan depo nwaj.

Gen merit. Li trè fasil pou konfigirasyon. Nou tou senpleman kòmande nan men yon founisè nwaj ki tanpri ban nou depo nan tèl ak tèl yon kapasite, tèl ak tèl yon klas. Founisè yo pentire klas yo poukont yo.

Epi gen yon dezavantaj. Pou kèk moun, sa a se yon enpèfeksyon san kritik. Natirèlman, pral gen kèk superpositions pèfòmans. Li trè pratik pou itilize, serye, men gen kèk dezavantaj potansyèl nan pèfòmans.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

E depi ClickHouse konsantre sou pèfòmans, ou ka menm di ke li peze soti tout sa ki posib, se konsa anpil kliyan eseye peze pèfòmans maksimòm nan.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

E pou nou kapab benefisye avek li, nou bezwen depo lokal.

Kubernetes bay twa abstraksyon pou itilize depo lokal nan Kubernetes. Sa a:

  • EmptyDir
  • HostPath.
  • Lokal

Konsidere ki jan yo diferan, ki jan yo sanble.

Premyèman, nan tout twa apwòch, nou gen depo - sa yo se disk lokal ki sitiye sou menm ne k8s fizik la. Men, yo gen kèk diferans.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann kòmanse ak pi senp la, sa vle di emptyDir. Ki sa ki nan pratik? Se nou menm ki mande sistèm kontenèrizasyon (pi souvan Docker) nan spesifikasyon nou an pou l ba nou aksè a yon katab sou yon disk lokal.

Nan pratik, Docker a kreye yon katab tanporè yon kote nan chemen pwòp li yo, rele li yon hash long. Epi li bay yon koòdone pou jwenn aksè nan li.

Ki jan li pral fè an tèm de pèfòmans? Sa a pral kouri nan vitès la nan disk lokal la, sa vle di. sa a se aksè konplè nan vis ou a.

Men, ka sa a gen dezavantaj li yo. Pèsistan nan ka sa a se pito ézitan. Nan mouvman an premye nan docker la ak kontenè, Pèsistan se pèdi. Si Kubernetes vle deplase Pod sa a nan yon lòt disk pou kèk rezon, Lè sa a, done yo pral pèdi.

Apwòch sa a bon pou tès yo, paske li deja montre vitès nòmal, men opsyon sa a pa apwopriye pou yon bagay ki grav.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Se poutèt sa, gen yon dezyèm apwòch. Sa a se hostPath. Si ou gade nan glise anvan an ak yon sèl sa a, ou ka wè yon sèl diferans. Katab nou an kite docker la dirèkteman nan ne Kubernetes la. Li se yon ti kras pi vit isit la. Nou dirèkteman ekri chemen an sou sistèm dosye lokal la kote nou ta renmen sere done nou yo.

Metòd sa a gen avantaj. Sa a se deja yon reyèl pèsistan, ak yon sèl klasik. Sou disk nou an, done yo pral ekri nan kèk adrès.

Genyen tou dezavantaj. Sa a se konpleksite nan jesyon. Kubernetes nou an ka vle deplase Pod la nan yon lòt ne fizik. Sa a se kote DevOps antre nan jwèt. Li dwe kòrèkteman eksplike tout sistèm nan ke ou ka sèlman deplase gous sa yo nan nœuds sa yo sou kote ou gen yon bagay monte sou chemen sa yo, epi pa plis pase yon ne nan yon moman. Li difisil ase.

Espesyalman pou rezon sa yo, nou te fè modèl nan operatè nou an nan lòd yo kache tout konpleksite sa a. Epi ou ta ka jis di: "Mwen vle gen yon egzanp ClickHouse pou chak ne fizik ak sou tankou yon chemen."

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Men, bezwen sa a se pa sèlman pou nou, se konsa mesye yo soti nan Kubernetes tèt li konprann tou ke moun vle gen aksè a disk fizik, se konsa yo bay yon twazyèm nivo.

Yo rele sa lokal. Pratikman pa gen okenn diferans ak glise anvan an. Se sèlman pi bonè li te nesesè pote soti nan men ke nou pa ka transfere gous sa yo soti nan ne nan ne, paske yo dwe tache sou yon tèl ak tankou yon chemen nan disk fizik lokal la, e kounye a, tout konesans sa a se encapsulé nan Kubernetes tèt li. Epi li sanble pi fasil pou konfigirasyon.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann retounen nan travay pratik nou an. Ann tounen nan modèl YAML la. Isit la nou gen yon depo reyèl. Nou tounen sou sa. Nou mete modèl klasik VolumeClaim la tankou nan k8s. Epi nou dekri ki kalite depo nou vle.

Apre sa, k8s pral mande depo. Atribye li pou nou nan StatefulSet la. Ak nan fen a, li pral vire soti nan jete a nan ClickHouse.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou te gen yon konplo konsa. Depo Pèsistan nou an te wouj, ki te sanble allusion ke li ta dwe fè.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Epi li vin vèt. Koulye a, ClickHouse sou konplo gwoup k8s la konplètman finalize. Nou gen shards, kopi, ZooKeeper, nou gen reyèl Persistent, ki se aplike nan yon fason oswa yon lòt. Konplo a deja fonksyone nèt.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou kontinye viv. Gwoup nou an ap grandi. Epi Aleksey ap eseye ak pibliye yon nouvo vèsyon ClickHouse.

Yon travay pratik rive - teste nouvo vèsyon ClickHouse sou gwoup nou an. Epi, nan kou, mwen pa vle woule li tout soti, mwen vle mete yon nouvo vèsyon yon kote nan kwen ki pi lwen nan yon sèl kopi, oswa petèt pa yon nouvo vèsyon, men de nan yon fwa, paske yo soti souvan.

Kisa nou ka di sou sa?

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Isit la nou gen jis yon opòtinite konsa. Sa yo se modèl gous. Ou ka penti, operatè nou an konplètman pèmèt ou bati yon grap etewojèn. Moun sa yo. konfigirasyon, kòmanse nan tout kopi nan yon pakèt, fini ak chak kopi pèsonèl, ki vèsyon nou vle ClickHouse, ki vèsyon nou vle depo. Nou ka konplètman konfigirasyon gwoup la nan yon konfigirasyon jan nou bezwen.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann ale pi fon anndan yon ti jan. Anvan sa, nou te pale sou fason ClickHouse-operatè a ap travay an relasyon ak spesifik yo nan ClickHouse.

Koulye a, mwen ta renmen di kèk mo sou ki jan nenpòt operatè travay an jeneral, osi byen ke ki jan li reyaji ak K8s.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Konsidere entèraksyon ak K8 pou kòmanse. Kisa k ap pase lè nou aplike kubectl? Atravè API a, objè nou yo parèt nan etcd.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Pou egzanp, objè Kubernetes debaz yo: pod, StatefulSet, sèvis, ak sou sa atravè lis la.

Sepandan, pa gen anyen fizik k ap pase ankò. Objè sa yo dwe konkretize nan yon gwoup.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Sa a se kote kontwolè a antre. Kontwolè a se yon eleman espesyal k8s ki ka konkretize deskripsyon sa yo. Li konnen ki jan ak kisa pou l fè fizikman. Li konnen ki jan yo kouri kontenè, ki sa ki bezwen yo dwe configuré la nan lòd pou sèvè a travay.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Epi li konkretize objè nou yo nan K8s.

Men, nou vle opere pa sèlman ak gous, StatefulSets, nou vle kreye yon ClickHouseInstallation, se sa ki, yon objè nan kalite ClickHouse, yo nan lòd yo opere ak li kòm yon antye. Jiskaprezan, pa gen okenn posiblite sa yo.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Men, K8s gen yon lòt bèl bagay. Nou vle nou gen yon antite konplèks konsa yon kote, kote gwoup nou an ta rasanble nan gous ak StatefulSet.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ak sa ki ta dwe fè pou sa a? Premyèman, Definisyon Resous Custom antre nan sèn nan. Ki sa li ye? Sa a se yon deskripsyon pou K8s ke ou pral gen yon lòt kalite done ke nou vle ajoute nan gous la, StatefulSet, yon resous koutim ki pral konplèks andedan. Sa a se yon deskripsyon estrikti done yo.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou menm tou nou voye li la atravè kubectl aplike. Kubernetes san pwoblèm mwen tap pran li.

Epi, koulye a nan depo nou an, objè a nan etcd gen opòtinite pou yo ekri yon resous koutim ki rele ClickHouseInstallation.

Men, pou kounye a, pa gen anyen lòt ki pral rive. Sa vle di, si kounye a nou kreye yon dosye YAML ke nou konsidere ak yon deskripsyon shard la, kopi epi di "kubectl aplike", Lè sa a, Kubernetes pral aksepte li, mete l nan etcd epi li di: "Bon, men mwen pa konnen. kisa pou fè ak li. Mwen pa konnen ki jan yo kenbe ClickHouseInstallation."

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

An konsekans, nou bezwen yon moun pou ede Kubernetes sèvi nouvo kalite done yo. Sou bò gòch la, nou gen yon kontwolè stock Kubernetes ki travay ak kalite done stock. Ak sou bò dwat la, nou ta dwe gen yon kontwolè koutim ki ka travay ak kalite done koutim.

Ak nan yon lòt fason yo rele li yon operatè. Mwen espesyalman te pran li soti isit la pou Kubernetes, paske li kapab tou egzekite deyò nan K8s. Pi souvan, nan kou, tout deklarasyon yo egzekite nan Kubernetes, men pa gen anyen anpeche li kanpe deyò, kidonk isit la li se espesyalman pote soti.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

E deja, nan vire, kontwolè a koutim, ke yo rele tou operatè a, reyaji ak Kubernetes atravè API a. Li deja konnen ki jan yo kominike avèk API a. Apre sa, li deja konnen ki jan yo konkretize yon konplo konplèks ke nou vle fè soti nan yon resous koutim. Sa a se egzakteman sa operatè a fè.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki jan operatè a travay? Ann pran yon gade sou bò dwat la pou wè ki jan li fè li. Nou pral chèche konnen ki jan operatè a konkretize tout bagay sa yo ak ki jan plis entèraksyon ak K8s pran plas.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Operatè a se pwogram nan. Li se evènman oryante. Operatè a abònman nan evènman lè l sèvi avèk API Kubernetes. API Kubernetes gen pwen antre kote ou ka abònman nan evènman yo. Men, si yon bagay chanje nan K8s, Lè sa a, Kubernetes voye evènman bay tout moun, i.e. ki moun ki abònman nan pwen API sa a pral resevwa notifikasyon.

Operatè a abònman nan evènman, epi yo dwe fè kèk kalite reyaksyon. Travay li se pou reponn a evènman émergentes.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Evènman yo pwodwi pa kèk mizajou. Fichye YAML nou an rive ak yon deskripsyon ClickHouseInstallation. Li te ale nan etcd via kubectl aplike. Yon evènman te travay la, kòm yon rezilta, evènman sa a te vini nan ClickHouse-operatè a. Operatè a te resevwa deskripsyon sa a. Epi li dwe fè yon bagay. Si yon aktyalizasyon te vini nan objè ClickHouseInstallation la, Lè sa a, ou bezwen mete ajou gwoup la. Ak travay la nan operatè a se mete ajou gwoup la.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki sa l ap fè? Premyèman, nou bezwen trase yon plan aksyon pou sa nou pral fè ak aktyalizasyon sa a. Mizajou yo ka piti anpil, sa vle di. ti nan ekzekisyon YAML, men li ka mennen nan gwo chanjman sou gwoup la. Se poutèt sa, operatè a kreye yon plan, ak Lè sa a, li respekte li.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Li komanse, daprè plan sa a, bouyi estrikti sa a andedan pou l kapab materyalize gous, sèvis, i.e. fè sa travay prensipal li se. Se tankou bati yon gwoup ClickHouse nan Kubernetes.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Koulye a, ann manyen yon bagay enteresan konsa. Sa a se yon divizyon responsablite ant Kubernetes ak operatè a, i.e. kisa Kubernetes fè, sa operatè a fè, ak fason yo kominike youn ak lòt.

Kubernetes responsab pou bagay sistèm, i.e. pou yon seri de baz objè ki ka entèprete kòm yon sistèm-dimansyon. Kubernetes konnen ki jan yo kòmanse gous, ki jan yo rekòmanse resipyan, ki jan fè monte volim, ki jan yo travay ak ConfigMap, i.e. nenpòt bagay ki ka rele yon sistèm.

Operatè yo opere nan domèn sijè. Chak operatè fèt pou sijè li yo. Nou te fè pou ClickHouse.

Ak operatè a kominike jisteman an tèm de sijè a, tankou ajoute yon kopi, fè yon konplo, mete kanpe siveyans. Gen yon separasyon konsa.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann gade nan yon egzanp pratik ki jan separasyon sa a nan enkyetid rive lè nou fè yon aksyon ajoute kopi.

Travay la vini nan operatè a - ajoute yon kopi. Kisa operatè a ap fè? Operatè a pral kalkile ke li nesesè fè yon nouvo StatefulSet, nan ki li nesesè yo dekri modèl sa yo ak sa yo, reklamasyon volim.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Li te prepare li tout epi li pase l bay K8 yo. Li di ke li bezwen ConfigMap, StatefulSet, Volim. Kubernetes ap travay. Li konkretize inite debaz yo ak ki li opere.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Lè sa a, ClickHouse-operatè antre nan jwèt ankò. Li deja gen yon gous fizik sou ki ou ka deja fè yon bagay. Ak ClickHouse-operatè ankò ap travay an tèm de sijè a. Moun sa yo. Espesyalman, ClickHouse, pou w ka mete yon kopi nan yon gwoup, ou dwe, premyèman, konfigirasyon konplo done ki egziste nan gwoup sa a. E, dezyenmman, sa remark i devret ganny mete dan monitoring pour li kapab ganny trase klerman. Operatè a deja mete l kanpe.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Epi sèlman apre sa ClickHouse tèt li antre nan jwèt, i.e. yon lòt antite pi wo nivo. Li deja yon baz done. Li gen egzanp pwòp li yo, pwochen konfigirasyon kopi a, ki se pare yo rantre nan gwoup la.

Li sanble chèn nan ekzekisyon ak separasyon nan responsablite lè ajoute yon kopi se lontan ase.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou kontinye travay pratik nou yo. Si gwoup la deja egziste, Lè sa a, ou ka imigre konfigirasyon an.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nou te fè li pou li posib pou pase nan xml ki egziste deja, ki ClickHouse konprann.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ou ka ajiste ClickHouse. Jis deplwaman zoned se sa mwen te pale sou lè eksplike hostPath, depo lokal yo. Men ki jan yo fè deplwaman zòn kòrèkteman.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Pwochen travay pratik la se siveyans.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Si gwoup nou an chanje, Lè sa a, nou bezwen detanzantan configured siveyans.

Ann pran yon gade nan dyagram nan. Nou te deja konsidere flèch vèt yo isit la. Koulye a, ann gade nan flèch wouj yo. Men ki jan nou vle kontwole gwoup nou an. Ki jan mezi ki soti nan gwoup ClickHouse la antre nan Prometheus, epi answit nan Grafana.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki pwoblèm nan ak siveyans? Poukisa sa a prezante kòm yon kalite siksè? Difikilte a se nan dinamik yo. Lè nou gen yon sèl gwoup epi li se estatik, Lè sa a, ou ka mete kanpe siveyans yon fwa epi yo pa deranje ankò.

Men, si nou gen yon anpil nan grap, oswa yon bagay ki toujou ap chanje, Lè sa a, pwosesis la se dinamik. Ak toujou ap konfigirasyon siveyans se yon fatra nan resous ak tan; menm jis parese. Sa a bezwen otomatize. Difikilte a se nan dinamik pwosesis la. Ak operatè a otomatize sa a trè byen.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki jan gwoup nou an te devlope? Nan kòmansman an li te tankou sa a.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Lè sa a, li te tankou sa a.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Nan fen a, li te vin tankou sa a.

Ak siveyans otomatikman fè pa operatè a. Single pwen antre.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Epi nou jis gade sòti nan tablodbò Grafana a, ki jan lavi gwoup nou an bouyi andedan.

By wout la, tablodbò Grafana distribye tou ak operatè nou an dwa nan kòd sous la. Ou ka konekte ak itilize. Ekran sa a te ban mwen pa DevOps nou an.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki kote nou ta renmen ale apre? Sa a:

  • Devlope tès automatisation. Travay prensipal la se tès otomatik nan nouvo vèsyon.
  • Nou reyèlman vle tou otomatize entegrasyon an ak ZooKeeper. Ak plan yo entegre ak ZooKeeper-operatè. Moun sa yo. yo te ekri yon operatè pou ZooKeeper, epi li lojik ke de operatè yo kòmanse entegre pou konstwi yon solisyon ki pi pratik.
  • Nou vle fè chèk lavi pi konplèks.
  • Mwen make an vèt ke nou gen eritaj modèl sou wout la - FÈ, sa vle di ak pwochen lage operatè a, nou pral deja gen eritaj modèl. Sa a se yon zouti pwisan ki pèmèt ou bati konfigirasyon konplèks soti nan moso.
  • Epi nou vle otomatize travay konplèks. Youn prensipal la se Re-sharding.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ann fè kèk rezilta entèmedyè.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki sa nou jwenn kòm yon rezilta? Epi èske li vo li oswa ou pa? Èske mwen menm bezwen eseye trennen baz done a nan Kubernetes epi aplike operatè a an jeneral ak operatè a Alitnity an patikilye.

Nan pwodiksyon an nou jwenn:

  • Dramatikman senplifye ak otomatize konfigirasyon, deplwaman, ak antretyen.
  • Imedyatman bati-an siveyans.
  • Ak modèl kodifye ki pare pou itilize pou sitiyasyon konplèks. Deja aksyon an nan kalite a ajoute yon kopi pa bezwen fè alamen. Se operatè a ki fè sa.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Se sèlman dènye kesyon an ki rete. Nou deja gen yon baz done nan Kubernetes, Virtualization. Ki sa ki sou pèfòmans nan yon solisyon konsa, espesyalman depi ClickHouse optimize pou pèfòmans?

Repons lan se tout bagay anfòm! Mwen pa pral dekri an detay, sa a se sijè a nan yon rapò separe.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Men, gen yon pwojè tankou TSBS. Ki travay prensipal li? Sa a se yon tès pèfòmans baz done. Sa a se yon tantativ pou konpare cho ak cho, mou ak mou.

Ki jan li travay? Yon seri done yo pwodwi. Lè sa a, mete done sa a sou menm seri tès la kouri sou baz done diferan. Epi chak baz done rezoud yon pwoblèm fason li kapab. Lè sa a, ou ka konpare rezilta yo.

Li deja sipòte yon pakèt gwo baz done. Mwen te idantifye twa prensipal yo. Sa a:

  • tan b.
  • InfluxDB.
  • clickhouse.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Yo te fè yon konparezon tou ak yon lòt solisyon menm jan an. Konparezon ak RedShift. Te konparezon an te fè sou Amazon. ClickHouse se tou byen devan tout moun nan zafè sa a.

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Ki konklizyon yo ka tire nan sa mwen te di a?

  • DB nan Kubernetes se posib. Pwobableman, ou ka fè anyen, men an jeneral li sanble ke ou kapab. ClickHouse nan Kubernetes se definitivman posib avèk èd nan operatè nou an.
  • Operatè a ede otomatize pwosesis ak vrèman senplifye lavi.
  • Pèfòmans nòmal.
  • Epi, li sanble nou ke li ka epi yo ta dwe itilize.

Sous louvri - rantre nan nou!

Kòm mwen te di, operatè a se yon pwodwi sous konplètman louvri, kidonk li ta trè bon si kantite maksimòm moun te itilize li. Antre nan kounye a! Nap tann nou tout!

Mèsi tout!

Kesyon ou yo

Operatè nan Kubernetes pou jere gwoup baz done. Vladislav Klimenko (Altinity, 2019)

Mèsi pou rapò a! Non mwen se Anton. Mwen soti nan SEMrush. M ap mande kisa ki genyen ak logmantasyon an. Nou tande pale de siveyans, men pa gen anyen sou antre, si nou pale sou tout gwoup la. Pou egzanp, nou gen yon gwoup sou pyès ki nan konpitè. Apre sa, nou itilize santralize antre, nou kolekte li nan yon pil komen pa mwayen estanda. Apre sa, apati de la nou jwenn done ki enteresan pou nou.

Bon kesyon, sa vle di antre nan lis tout bagay la. Operatè nou an poko otomatize sa. Li toujou ap devlope, pwojè a toujou byen jèn. Nou konprann nesesite pou antre. Sa a se tou yon sijè trè enpòtan. Epi li se pwobableman pa mwens enpòtan pase siveyans. Men, premye sou lis la pou aplikasyon te siveyans. Pral gen antre. Natirèlman, nou ap eseye otomatize tout aspè nan lavi gwoup la. Se poutèt sa, repons lan se ke nan moman sa a operatè a, malerezman, pa konnen ki jan fè sa, men li se nan plan yo, nou pral fè li. Si ou vle rantre nan, Lè sa a, rale demann, tanpri.

Bonjou! Mèsi pou rapò a! Mwen gen yon kesyon estanda ki gen rapò ak Persistent Volumes. Lè nou kreye yon konfigirasyon ak operatè sa a, ki jan operatè a detèmine sou ki ne nou gen kèk disk oswa katab? Nou dwe premye eksplike li ke, tanpri, mete ClickHouse nou an egzakteman sou nœuds sa yo ki gen yon disk?

Osi lwen ke mwen konprann, kesyon sa a se yon kontinyasyon nan depo lokal, espesyalman pati nan hostPath nan li. Se tankou eksplike nan tout sistèm nan ke li nesesè pou gous la dwe lanse egzakteman sou tankou ak tankou yon ne, sou ki nou gen yon disk ki konekte fizik, ki monte sou tankou ak tankou yon chemen. Sa a se yon seksyon antye ke mwen manyen trè supèrfisyèl, paske repons lan se byen gwo.

Yon ti tan, li sanble sa a. Natirèlman, nou bezwen fè pwovizyon nan volim sa yo. Nan moman sa a, pa gen okenn pwovizyon dinamik nan depo lokal, kidonk DevOps dwe koupe disk yo tèt yo, isit la se komèsan sa yo. Apre sa, yo dwe eksplike Kubernetes pwovizyon, ke ou pral gen komèsan pèsistan nan sa yo ak tankou yon klas, ki sitiye sou sa yo ak sa yo nœuds. Lè sa a, li pral nesesè yo eksplike Kubernetes ke gous ki mande tankou yon klas depo lokal yo bezwen pwograme dapre etikèt sèlman nan sa yo ak sa yo nœuds. Pou rezon sa yo, operatè a gen kapasite pou bay kèk kalite etikèt ak youn pou chak egzanp lame. Epi li sanble ke gous yo pral dirije pa Kubernetes yo kouri sèlman sou nœuds ki satisfè kondisyon yo, etikèt, an tèm senp. Administratè yo bay etikèt, fè pwovizyon nan disk alamen. Apre sa, li balanse.

Ak jis twazyèm opsyon lokal la ede fè li yon ti kras pi fasil. Kòm mwen te deja mete aksan sou, sa a se yon travay rigoureux nan akor, ki finalman ede jwenn pèfòmans maksimòm.

Mwen gen yon dezyèm kesyon ki gen rapò ak sa a. Kubernetes te vin ansent nan yon fason ke li pa enpòtan pou nou si nou pèdi yon ne oswa ou pa. Kisa nou ta dwe fè nan ka sa a si nou te pèdi ne kote nou gen yon shard?

Wi, Kubernetes te orijinèlman pozisyone ke relasyon nou ak gous nou yo se tankou bèt, men isit la chak disk vin tounen yon bagay tankou yon bèt kay. Gen yon pwoblèm konsa ke nou pa ka jis jete yo. Ak devlopman nan Kubernetes pral nan direksyon ke li enposib konplètman trete li filozofik, kòm yon resous konplètman abandone.

Koulye a, yon kesyon pratik. Kisa ou dwe fè si ou pèdi ne ki gen disk la? Isit la se pwoblèm nan rezoud nan yon nivo ki pi wo. Nan ka a nan ClickHouse, nou gen kopi ki travay nan yon nivo ki pi wo, i.e. nan nivo ClickHouse.

Ki sa ki dispozisyon an? DevOps responsab pou asire ke done yo pa pèdi. Li dwe byen mete kanpe replikasyon epi li dwe asire ke replikasyon an ap kouri. Nan kopi a nan nivo ClickHouse, done yo dwe kopi. Sa a se pa travay la ke operatè a rezoud. Epi se pa travay la ke Kubernetes tèt li rezoud. Sa a se nan nivo ClickHouse.

Kisa pou w fè si ne fè ou tonbe? Epi li sanble ke li pral nesesè yo mete dezyèm lan, byen deplase disk la sou li, aplike etikèt. Apre sa, li pral satisfè kondisyon yo ke Kubernetes sou li ka kouri yon egzanp gous. Kubernetes pral lanse li. Kantite gous ou yo pa ase pou youn espesifye a. Li pral ale nan sik la ke mwen te montre. Ak nan nivo ki pi wo a, ClickHouse pral konprann ke nou gen yon kopi antre, li toujou vid epi nou bezwen kòmanse transfere done nan li. Moun sa yo. pwosesis sa a toujou mal otomatize.

Mèsi pou rapò a! Lè tout kalite move bagay rive, operatè a aksidan ak rekòmanse, ak nan moman sa a evènman yo rive, èske ou yon jan kanmenm trete sa a?

Kisa k ap pase si operatè a aksidan epi rekòmanse, wi?

Wi. Epi nan moman sa a evènman yo te vini.

Travay la nan sa yo dwe fè nan ka sa a se pasyèlman divize ant operatè a ak Kubernetes. Kubernetes gen kapasite pou rejoue yon evènman ki te fèt. Li rejoue. Ak travay la nan operatè a se asire w ke lè jounal evènman an te rejoue sou li, evènman sa yo se idempotent. E pou re-occurrence menm evènman an pa kraze sistèm nou an pou nou. Ak operatè nou an fè fas ak travay sa a.

Bonjou! Mèsi pou rapò a! Dmitry Zavialov, konpayi Smedov. Èske li te planifye pou ajoute opsyon personnalisation ak haproxy operatè a? Gen kèk lòt balanse ki enteresan anplis estanda a, se konsa ke li entelijan epi li konprann ke ClickHouse reyèl la.

Èske w ap pale de Ingress?

Wi, ranplase Ingress ak haproxy. Nan haproxy, ou ka presize topoloji gwoup la kote li gen kopi.

Jiskaprezan, nou poko reflechi sou sa. Si ou bezwen li epi ou ka eksplike poukisa li nesesè, Lè sa a, li pral posib pou aplike li, sitou si ou vle patisipe. Nou pral kontan konsidere opsyon an. Repons kout la se non, kounye a nou pa gen fonksyonalite sa yo. Mèsi pou konsèy la, nou pral gade sa a. Men, si ou tou eksplike ka a itilize ak poukisa li nesesè nan pratik, pou egzanp, kreye pwoblèm sou GitHub, Lè sa a, li pral gwo.

Gen deja.

Byen. Nou ouvè a nenpòt sijesyon. Epi yo mete haproxy sou lis tout bagay. Tout lis la ap grandi, li poko diminye. Men, sa a se yon bon bagay, sa vle di ke pwodwi a se nan demann.

Sous: www.habr.com

Add nouvo kòmantè