{"id":96965,"date":"2020-10-15T14:42:53","date_gmt":"2020-10-15T12:42:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/operator-v-kubernetes-dlya-upravleniya-klasterami-bd-vladislav-klimenko-altinity-2019"},"modified":"2020-10-15T14:42:53","modified_gmt":"2020-10-15T12:42:53","slug":"operator-v-kubernetes-dlya-upravleniya-klasterami-bd-vladislav-klimenko-altinity-2019","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operator-v-kubernetes-dlya-upravleniya-klasterami-bd-vladislav-klimenko-altinity-2019","title":{"rendered":"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/56e002c7408c4708e39ece867f84171e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Raporti \u00ebsht\u00eb i dedikuar p\u00ebr pyetjet praktike t\u00eb zhvillimit t\u00eb operator\u00ebve n\u00eb Kubernetes, projektimin e arkitektur\u00ebs s\u00eb tij dhe parimet themelore t\u00eb funksionimit.<\/p>\n<p><\/p>\n<p>N\u00eb pjes\u00ebn e par\u00eb t\u00eb raportit do t\u00eb shqyrtojm\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>\u00e7far\u00eb \u00ebsht\u00eb nj\u00eb operator n\u00eb Kubernetes dhe pse \u00ebsht\u00eb i nevojsh\u00ebm;<\/li>\n<li>si e thjeshton operatori menaxhimin e sistemeve t\u00eb nd\u00ebrlikuara;<\/li>\n<li>\u00e7far\u00eb mund t\u00eb b\u00ebj\u00eb nj\u00eb operator dhe \u00e7far\u00eb nuk mund t\u00eb b\u00ebj\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<p>Pas k\u00ebsaj, do t\u00eb kalojm\u00eb n\u00eb diskutimin e struktur\u00ebs s\u00eb brendshme t\u00eb operatorit. Do t\u00eb shqyrtojm\u00eb arkitektur\u00ebn dhe funksionimin e operatorit hap pas hapi. Do t\u00eb thellohemi n\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>nd\u00ebrveprimin midis operatorit dhe Kubernetes;<\/li>\n<li>cilat funksione merr mbi vete operatori dhe \u00e7far\u00eb delegon n\u00eb Kubernetes.<\/li>\n<\/ul>\n<p><\/p>\n<p>Do t\u00eb shqyrtojm\u00eb menaxhimin e shard-eve dhe kopjeve t\u00eb DB n\u00eb Kubernetes.<br \/>\nM\u00eb pas, do t\u00eb diskutojm\u00eb pyetje mbi ruajtjen e t\u00eb dh\u00ebnave:<\/p>\n<p><\/p>\n<ul>\n<li>si t\u00eb punojm\u00eb me Ruajtjen e P\u00ebrhershme nga perspektiva e operatorit;<\/li>\n<li>pikat delikate n\u00eb p\u00ebrdorimin e Ruajtjes Lokale.<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb pjes\u00ebn p\u00ebrfundimtare t\u00eb raportit do t\u00eb shqyrtojm\u00eb shembuj praktik\u00eb t\u00eb aplikimit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Altinity\/clickhouse-operator\">clickhouse-operator<\/a><\/noindex> nga Amazon ose Google Cloud Service. Raporti \u00ebsht\u00eb nd\u00ebrtuar mbi shembujt e zhvillimit dhe p\u00ebrvoj\u00ebs s\u00eb funksionimit t\u00eb operatorit p\u00ebr ClickHouse.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Video:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"z2aARjKDg4w\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/z2aARjKDg4w\/hqdefault.jpg\" alt=\"Luaj videon\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Quhem Vladislav Klimenko. Sot do t\u00eb doja t\u00eb flas p\u00ebr p\u00ebrvoj\u00ebn ton\u00eb n\u00eb zhvillimin dhe operimin e operatorit, dhe kjo \u00ebsht\u00eb nj\u00eb operator i specializuar p\u00ebr menaxhimin e klastereve t\u00eb bazave t\u00eb dh\u00ebnash. N\u00eb shembullin e <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Altinity\/clickhouse-operator\">ClickHouse-operator<\/a><\/noindex> p\u00ebr menaxhimin e klasterit ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/cc297a3edb3b2a5e30d0dc2725de4011.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pse kemi mund\u00ebsin\u00eb t\u00eb flasim p\u00ebr operatorin dhe ClickHouse?<\/p>\n<p><\/p>\n<ul>\n<li>Ne merremi me mb\u00ebshtetje dhe zhvillim t\u00eb ClickHouse. <\/li>\n<li>Aktualisht po p\u00ebrpiqemi t\u00eb japim kontributin ton\u00eb t\u00eb mundsh\u00ebm n\u00eb zhvillimin e ClickHouse. Dhe jemi t\u00eb dyti pas Yandex n\u00eb volumet e ndryshimeve t\u00eb b\u00ebra n\u00eb ClickHouse. <\/li>\n<li>P\u00ebrpiqemi t\u00eb b\u00ebjm\u00eb projekte t\u00eb tjera p\u00ebr ekosistemin e ClickHouse. <\/li>\n<\/ul>\n<p><\/p>\n<p>Nj\u00eb nga projektet e tilla do doja t\u00eb flas p\u00ebr t\u00eb. Ky \u00ebsht\u00eb ClickHouse-operator p\u00ebr Kubernetes. <\/p>\n<p><\/p>\n<p>N\u00eb raportin tim do t\u00eb doja t\u00eb prek dy tema: <\/p>\n<p><\/p>\n<ul>\n<li>Tema e par\u00eb \u2013 se si funksionon operatori yn\u00eb p\u00ebr menaxhimin e bazave t\u00eb t\u00eb dh\u00ebnave ClickHouse n\u00eb Kubernetes. <\/li>\n<li>Tema e dyt\u00eb \u2013 se si funksionon \u00e7do operator, dometh\u00ebn\u00eb, se si nd\u00ebrvepron me Kubernetes. <\/li>\n<\/ul>\n<p><\/p>\n<p>K\u00ebto dy pyetje do t\u00eb nd\u00ebrthuren gjat\u00eb gjith\u00eb raportit tim. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4cc9790e18e70ae1ccde2cf39ef4ef00.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00eb \u00ebsht\u00eb interesante t\u00eb d\u00ebgjoj\u00eb at\u00eb q\u00eb un\u00eb p\u00ebrpiqem t\u00eb tregoj?<\/p>\n<p><\/p>\n<ul>\n<li>M\u00eb s\u00eb shumti do t\u00eb jet\u00eb interesante p\u00ebr ata q\u00eb operojn\u00eb operator\u00eb. <\/li>\n<li>Ose ata q\u00eb duan t\u00eb krijojn\u00eb nj\u00eb t\u00eb till\u00eb, p\u00ebr t\u00eb kuptuar se si funksionon brenda, si nd\u00ebrvepron operatori me Kubernetes dhe cilat jan\u00eb pikat delikate q\u00eb mund t\u00eb shfaqen. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/07545f7a0171b610697c519d4aa9cd43.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb kuptuar sa m\u00eb mir\u00eb at\u00eb q\u00eb do t\u00eb diskutojm\u00eb sot, do t\u00eb ishte e dobishme t\u00eb dihet se si funksionon Kubernetes dhe t\u00eb k\u00ebt\u00eb nj\u00eb p\u00ebrgatitje baz\u00eb mbi teknologjit\u00eb e cloud. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/eff56cc3e83fde3d3e64d73d41b07417.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb \u00ebsht\u00eb ClickHouse? \u00cbsht\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash kolonore e specializuar p\u00ebr p\u00ebrpunimin n\u00eb koh\u00eb reale t\u00eb pyetjeve analitik\u00eb. Dhe \u00ebsht\u00eb plot\u00ebsisht open source. <\/p>\n<p><\/p>\n<p>Dhe na duhet t\u00eb dim\u00eb vet\u00ebm dy gj\u00ebra. Duhet t\u00eb dim\u00eb se kjo \u00ebsht\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash, prandaj ajo q\u00eb do t\u00eb tregoj do t\u00eb jet\u00eb e zbatueshme praktikisht p\u00ebr \u00e7do baz\u00eb t\u00eb dh\u00ebnash. Dhe se SGBD ClickHouse \u00ebsht\u00eb shum\u00eb e shkall\u00ebzueshme, ofron nj\u00eb shkall\u00ebzueshm\u00ebri praktikisht lineare. Prandaj, gjendja e klasterit \u00ebsht\u00eb nj\u00eb gjendje natyrore p\u00ebr ClickHouse. Dhe na intereson m\u00eb s\u00eb shumti t\u00eb diskutojm\u00eb se si t\u00eb mbajm\u00eb klasterin ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/5eb1ff5026c492117bf2467b10de7053.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pse \u00ebsht\u00eb e nevojshme atje? Pse nuk mund ta operojm\u00eb at\u00eb vet\u00eb? Dhe p\u00ebrgjigjet jan\u00eb pjes\u00ebrisht teknike dhe pjes\u00ebrisht organizative. <\/p>\n<p><\/p>\n<ul>\n<li>N\u00eb praktik\u00eb, ne gjithnj\u00eb e m\u00eb shpesh p\u00ebrballemi me situat\u00ebn kur n\u00eb kompanit\u00eb e m\u00ebdha pothuajse t\u00eb gjitha komponent\u00ebt tashm\u00eb jan\u00eb n\u00eb Kubernetes. Baza t\u00eb dh\u00ebnash mbeten jasht\u00eb. <\/li>\n<li>Dhe gjithnj\u00eb e m\u00eb shpesh b\u00ebhet pyetja: \"A mund ta vendosim brenda?\". Prandaj, kompanit\u00eb e m\u00ebdha p\u00ebrpiqen t\u00eb prodhojn\u00eb maksimale unifikim menaxhimi p\u00ebr t\u00eb pasur mund\u00ebsin\u00eb p\u00ebr t\u00eb menaxhuar shpejt ruajtjen e t\u00eb dh\u00ebnave. <\/li>\n<li>Dhe kjo ndihmon ve\u00e7an\u00ebrisht n\u00ebse k\u00ebrkohet maksimalja p\u00ebr t\u00eb riprodhuar t\u00eb nj\u00ebjt\u00ebn gj\u00eb n\u00eb nj\u00eb vend t\u00eb ri, dometh\u00ebn\u00eb, maksimalja e transportueshm\u00ebris\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/99312e74bd7ed4031128c7ec872f6a68.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sa e leht\u00eb ose e v\u00ebshtir\u00eb \u00ebsht\u00eb? Kjo, sigurisht, mund t\u00eb b\u00ebhet manualisht. Por nuk \u00ebsht\u00eb aq e leht\u00eb, sepse ne duam t\u00eb menaxhojm\u00eb veten Kubernetes-in, por p\u00ebr m\u00eb tep\u00ebr diktohet nga specifikat e ClickHouse. Dhe k\u00ebshtu rezulton nj\u00eb agregat\u00eb. <\/p>\n<p><\/p>\n<p>Dhe gjith\u00e7ka s\u00eb bashku jep nj\u00eb kompleksitet t\u00eb mjaftuesh\u00ebm q\u00eb e b\u00ebn menaxhimin mjaft t\u00eb v\u00ebshtir\u00eb, sepse Kubernetes sjell pyetje t\u00eb saj p\u00ebr funksionimin e p\u00ebrditsh\u00ebm, dhe ClickHouse sjell pyetje t\u00eb saj p\u00ebr eksploatimin e p\u00ebrditsh\u00ebm. Sidomos n\u00ebse kemi disa ClickHouse dhe duhet t\u00eb b\u00ebjm\u00eb gjithmon\u00eb di\u00e7ka me ta. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/ca10b805b2744d1a5283f96b0ac1cc11.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Me ClickHouse-in, n\u00eb konfigurimin dinamik ka nj\u00eb sasi t\u00eb konsiderueshme pyetjesh q\u00eb krijojn\u00eb nj\u00eb ngarkes\u00eb t\u00eb vazhdueshme mbi DevOps:<\/p>\n<p><\/p>\n<ul>\n<li>Kur duam t\u00eb ndryshojm\u00eb di\u00e7ka n\u00eb ClickHouse, p\u00ebr shembull, t\u00eb shtojm\u00eb nj\u00eb kopje, nj\u00eb shard, duhet t\u00eb kryejm\u00eb menaxhimin e konfigurimit. <\/li>\n<li>Pastaj duhet t\u00eb ndryshohet skema e t\u00eb dh\u00ebnave, sepse ClickHouse ka nj\u00eb m\u00ebnyr\u00eb specifike t\u00eb sharding. Duhet t\u00eb ndajm\u00eb skem\u00ebn e t\u00eb dh\u00ebnave, t\u00eb ndajm\u00eb konfigurimet. <\/li>\n<li>Duhet t\u00eb konfigurojm\u00eb monitorimin. <\/li>\n<li>Marrja e log\u00ebve p\u00ebr shard-at e rinj, p\u00ebr replikat e reja. <\/li>\n<li>T\u00eb mendojm\u00eb p\u00ebr rikuperimin.<\/li>\n<li>Dhe p\u00ebr riparimin. <\/li>\n<\/ul>\n<p><\/p>\n<p>K\u00ebto jan\u00eb pun\u00eb rutin\u00eb, t\u00eb cilat do t\u00eb donim t'i leht\u00ebsonim n\u00eb p\u00ebrdorim.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/2461e861ca1d2f2344ead9decf85a97e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kubernetes ndihmon shum\u00eb n\u00eb p\u00ebrdorim, por n\u00eb sistemet themelore. <\/p>\n<p><\/p>\n<p>Kubernetes leht\u00ebson dhe automatizon pun\u00eb t\u00eb tilla si:<\/p>\n<p><\/p>\n<ul>\n<li>Rikuperimin.<\/li>\n<li>Riparimin. <\/li>\n<li>Menaxhimin e sistemit t\u00eb ruajtjes.<\/li>\n<\/ul>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb mir\u00eb, kjo \u00ebsht\u00eb rruga e duhur, por nuk ka nj\u00eb ide t\u00eb qart\u00eb se si t\u00eb p\u00ebrdoret klasteri i baz\u00ebs s\u00eb t\u00eb dh\u00ebnave. <\/p>\n<p><\/p>\n<p>Duam m\u00eb shum\u00eb, duam q\u00eb t\u00eb kemi t\u00eb gjith\u00eb baz\u00ebn e t\u00eb dh\u00ebnave n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/6564e9f29d5d518925c8593bca978345.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Duam t\u00eb kemi di\u00e7ka si nj\u00eb buton t\u00eb madh magjik t\u00eb kuq, q\u00eb kur e shtyp, t\u00eb krijohet dhe t\u00eb mb\u00ebshtetet nj\u00eb klaster me detyrat e p\u00ebrditshme q\u00eb duhet t\u00eb zgjidhen. Klasteri ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p>Dhe ne p\u00ebrpiqemi t\u00eb krijojm\u00eb nj\u00eb zgjidhje q\u00eb do t\u00eb ndihmonte p\u00ebr t\u00eb leht\u00ebsuar pun\u00ebn. Kjo \u00ebsht\u00eb ClickHouse-operator p\u00ebr Kubernetes nga kompania Altinity.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4ff80c6fc59069ec900d545096ad978d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Operatori \u00ebsht\u00eb nj\u00eb program, detyra kryesore e t\u00eb cilit \u00ebsht\u00eb t\u00eb menaxhoj\u00eb programe t\u00eb tjera, dmth. \u00ebsht\u00eb nj\u00eb menaxher. <\/p>\n<p><\/p>\n<p>Dhe ai p\u00ebrmban modele t\u00eb sjelljes. Mund ta quajm\u00eb k\u00ebt\u00eb njohuri t\u00eb kodifikuar mbi fush\u00ebn e subjektit. <\/p>\n<p><\/p>\n<p>Dhe detyra kryesore e tij \u00ebsht\u00eb t\u00eb leht\u00ebsoj\u00eb jet\u00ebn e DevOps dhe t\u00eb reduktoj\u00eb menaxhimin e mikro detyrave, n\u00eb m\u00ebnyr\u00eb q\u00eb ai (DevOps) t\u00eb mendoj\u00eb n\u00eb terma t\u00eb nivelit t\u00eb lart\u00eb, dmth. q\u00eb ai (DevOps) t\u00eb mos merret me mikro menaxhimin, p\u00ebr t'i zgjidhur t\u00eb gjitha detajet manualisht. <\/p>\n<p><\/p>\n<p>Dhe operatori \u00ebsht\u00eb nj\u00eb robot asistent, i cili lufton me mikro detyrat dhe ndihmon DevOps.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/0824a1fa710e8c4f45406aa7f596b977.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrse nevojitet operatori? Ai d\u00ebshmohet ve\u00e7an\u00ebrisht i dobish\u00ebm n\u00eb dy \u00e7\u00ebshtje:<\/p>\n<p><\/p>\n<ul>\n<li>Kur specialisti, i cili merret me ClickHouse, nuk ka p\u00ebrvoj\u00ebn e mjaftueshme, por duhet t\u00eb p\u00ebrdor\u00eb ClickHouse, operatori ndihmon n\u00eb leht\u00ebsimin e p\u00ebrdorimit dhe lejon p\u00ebrdorimin e klasterit ClickHouse me nj\u00eb konfigurim mjaft t\u00eb komplikuar, pa u futur shum\u00eb n\u00eb detaje se si funksionon gjith\u00e7ka brenda. Thjesht i jepni detyra t\u00eb nivelit t\u00eb lart\u00eb dhe kjo funksionon. <\/li>\n<li>Dhe detyra e dyt\u00eb, n\u00eb t\u00eb cil\u00ebn ai e tregon m\u00eb s\u00eb miri veten, \u00ebsht\u00eb kur duhet t\u00eb automatizoni nj\u00eb num\u00ebr t\u00eb madh detyrash standarde. Hiqen mikro detyrat nga administrator\u00ebt e sistemit. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/f1cb11156d57f560d0b6c82700ac6ff8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kjo i nevojitet m\u00eb shum\u00eb atyre q\u00eb sapo po fillojn\u00eb rrug\u00ebn e tyre, ose atyre q\u00eb duan t\u00eb merren shum\u00eb me automatizim. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/128e7d9ff1ce0c535f98be66aedb1060.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cila \u00ebsht\u00eb pastaj dallimi i qasjes s\u00eb bazuar n\u00eb operator\u00eb nga sistemet e tjera? Ka Helm. Ai gjithashtu ndihmon p\u00ebr t\u00eb instaluar ClickHouse, mund t\u00eb krijoni helm charts q\u00eb madje vendosin nj\u00eb klaster t\u00eb t\u00ebr\u00eb ClickHouse. Cili \u00ebsht\u00eb pra dallimi midis operatorit dhe, p\u00ebr shembull, Helm?<\/p>\n<p><\/p>\n<p>Dallimi themelor \u00ebsht\u00eb q\u00eb Helm \u00ebsht\u00eb menaxhim paketash, nd\u00ebrsa operatori shkon m\u00eb tej. Ai p\u00ebrfshin gjith\u00eb ciklin e jet\u00ebs. Nuk \u00ebsht\u00eb vet\u00ebm instalimi, jan\u00eb detyra t\u00eb p\u00ebrditshme, q\u00eb p\u00ebrfshijn\u00eb zgjerimin, sharding, dmth. gjith\u00e7ka q\u00eb duhet t\u00eb kryhet n\u00eb procesin e ciklit t\u00eb jet\u00ebs (n\u00ebse \u00ebsht\u00eb e nevojshme, edhe fshirja) \u2013 t\u00eb gjitha k\u00ebto zgjidh operatori. Ai p\u00ebrpiqet t\u00eb automatizoj\u00eb dhe mb\u00ebshtes\u00eb gjith\u00eb ciklin e jet\u00ebs s\u00eb softuerit. Kjo \u00ebsht\u00eb dallimi i tij themelor nga zgjidhjet e tjera t\u00eb disponueshme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/e26b57c8caf8437f683d7afbfa127ebd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kjo ishte pjesa hyr\u00ebse, le t\u00eb vazhdojm\u00eb. <\/p>\n<p><\/p>\n<p>Si e nd\u00ebrtojm\u00eb operatorin ton\u00eb? Ne p\u00ebrpiqemi t\u00eb qasemi \u00e7\u00ebshtjes p\u00ebr t\u00eb menaxhuar klasterin ClickHouse si nj\u00eb burim. <\/p>\n<p><\/p>\n<p>Ja, n\u00eb pjes\u00ebn e majt\u00eb t\u00eb figur\u00ebs kemi t\u00eb dh\u00ebna inputi. Kjo \u00ebsht\u00eb YAML me specifikimin e klasterit, i cili n\u00eb m\u00ebnyr\u00eb t\u00eb zakonshme kalon n\u00eb Kubernetes p\u00ebrmes kubectl. At\u00ebher\u00eb operatori e merr, b\u00ebn magjin\u00eb e tij. Dhe n\u00eb fund kemi k\u00ebt\u00eb skem\u00eb. Kjo \u00ebsht\u00eb implementimi i ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p>Dhe m\u00eb pas do t\u00eb shohim ngadal\u00eb se si funksionon operatori, cilat detyra standarde mund t\u00eb zgjidhen. Do t\u00eb shqyrtojm\u00eb vet\u00ebm detyrat standarde, sepse kemi koh\u00eb t\u00eb kufizuar. Dhe nuk do t\u00eb flasim p\u00ebr gjith\u00e7ka q\u00eb mund t\u00eb zgjidh\u00eb operatori. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/b40401931b58988058419d4495dbb1bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb bazojm\u00eb n\u00eb praktik\u00eb. Projekti yn\u00eb \u00ebsht\u00eb plot\u00ebsisht open source, k\u00ebshtu q\u00eb mund t\u00eb shihni n\u00eb GitHub se si funksionon. Dhe mund t\u00eb shqyrtojm\u00eb n\u00ebse doni thjesht ta filloni, at\u00ebher\u00eb mund t\u00eb filloni me Udh\u00ebzuesin e Shpejt\u00eb.<\/p>\n<p><\/p>\n<p>N\u00ebse doni t\u00eb kuptoni m\u00eb n\u00eb detaje, ne p\u00ebrpiqemi t\u00eb mbajm\u00eb dokumentacionin n\u00eb nj\u00eb gjendje mjaft t\u00eb pranueshme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/9414d7c3aa94b6ad999e150f0ac25a97.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb fillojm\u00eb me nj\u00eb detyr\u00eb praktike. Detyra e par\u00eb, nga e cila t\u00eb gjith\u00eb d\u00ebshirojm\u00eb t\u00eb fillojm\u00eb, \u00ebsht\u00eb t\u00eb nisnim shembullin ton\u00eb t\u00eb par\u00eb n\u00eb \u00e7far\u00ebdo m\u00ebnyre. Si ta nisim ClickHouse p\u00ebrmes operatorit, pa e ditur shum\u00eb se si funksionon? Shkruajm\u00eb manifestin, pasi t\u00eb gjitha komunikimet me k8s jan\u00eb p\u00ebrmes manifest\u00ebve.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/3e97cd235827460693ed95fb3598d31d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00ebtu \u00ebsht\u00eb nj\u00eb manifest i till\u00eb i nd\u00ebrlikuar. Ajo q\u00eb kemi theksuar me t\u00eb kuqe \u00ebsht\u00eb ajo mbi t\u00eb cil\u00ebn duhet t\u00eb fokusohemi. Po k\u00ebrkojm\u00eb nga operativi t\u00eb krijoj\u00eb nj\u00eb klas\u00ebr me emrin demo.<\/p>\n<p><\/p>\n<p>Derik\u00ebt tani, k\u00ebto jan\u00eb shembuj bazik\u00eb. Storage-in nuk e p\u00ebrmendim ende, por do t\u00eb kthehemi te storage m\u00eb von\u00eb. Derik\u00ebt tani do t\u00eb 'v\u00ebzhgojm\u00eb' zhvillimin e klas\u00ebs n\u00eb dinamik\u00eb.<\/p>\n<p><\/p>\n<p>Kemi krijuar k\u00ebt\u00eb manifest. I japim atij operativit ton\u00eb. Ai e p\u00ebrpunoi, b\u00ebri magjin\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/502e64fbe6ed7d04b2aecb7d51abc7f9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Shikojm\u00eb n\u00eb konsol\u00eb. Tre komponent\u00eb jan\u00eb interesante - Pod-i, dy Sh\u00ebrbime dhe StatefulSet-i.<\/p>\n<p><\/p>\n<p>Operativi punoi dhe mund t\u00eb shohim se \u00e7far\u00eb krijoi. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/67faf120e21e5113680ccff9c71b00f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ai krijon nj\u00eb skem\u00eb t\u00eb till\u00eb. Kemi StatefulSet, Pod, ConfigMap p\u00ebr \u00e7do replik\u00eb, ConfigMap p\u00ebr t\u00eb gjith\u00eb klas\u00ebn. Sh\u00ebrbimet si pika hyrjeje n\u00eb klas\u00ebn jan\u00eb t\u00eb domosdoshme. <\/p>\n<p><\/p>\n<p>Sh\u00ebrbimet - kjo \u00ebsht\u00eb Sh\u00ebrbimi kryesor Load Balancer dhe gjithashtu p\u00ebr \u00e7do replik\u00eb, p\u00ebr \u00e7do shard. <\/p>\n<p><\/p>\n<p>K\u00ebshtu duket klastri yn\u00eb baz\u00eb. Ai p\u00ebrb\u00ebhet nga nj\u00eb nod\u00eb t\u00eb vet\u00ebm. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/f235ada45ee58b517c0e041f795ae122.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb shkojm\u00eb p\u00ebrpara, do ta komplikohemi. Na nevojitet t\u00eb shardojm\u00eb klastrin.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/992836a00434c64fb4616c1c4cc4df97.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detyrat tona po rriten, fillon dinamika. Duam t\u00eb shtojm\u00eb nj\u00eb shard. Po ndjekim zhvillimin. Ndryshojm\u00eb specifikimin ton\u00eb. Po tregojm\u00eb se duam dy sharda. <\/p>\n<p><\/p>\n<p>Ky \u00ebsht\u00eb i nj\u00ebjti skedar, i cili po zhvillohet dinamikisht me rritjen e sistemit. Storage nuk ka, storage do t\u00eb shqyrtohet m\u00eb von\u00eb, \u00ebsht\u00eb nj\u00eb tem\u00eb e ve\u00e7ant\u00eb.<\/p>\n<p><\/p>\n<p>I japim YAML-operatorit dhe shohim se \u00e7far\u00eb rezulton. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/8ddb5845cae160098470208f51b5da7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Operativi mendoj\u00eb dhe krijoi entitete t\u00eb tjera. Tani kemi dy Pod-a, tre Sh\u00ebrbime dhe, papritur, dy StatefulSet-a. Pse dy StatefulSet-a?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/26eb734ff1a195de2ceaab842b472ee4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb skem\u00eb ishte k\u00ebshtu - ky \u00ebsht\u00eb gjendja fillestare, kur ishim me nj\u00eb pod.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/657838b0d378121fdd66ad3ff8168600.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tani q\u00ebndron k\u00ebshtu. Derik\u00ebt tani gjith\u00e7ka \u00ebsht\u00eb e thjesht\u00eb, \u00ebsht\u00eb kopjuar. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/f039a7046f1c56fbdad6b5a26a519b10.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe pse StatefulSet u b\u00eb dy? K\u00ebtu duhet t\u00eb shk\u00ebputemi dhe t\u00eb diskutojm\u00eb se si menaxhohen Pod-\u00ebt n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p>Ka nj\u00eb objekt t\u00eb till\u00eb q\u00eb quhet StatefulSet, i cili lejon krijimin e nj\u00eb grupi Pod-ash nga nj\u00eb shablon. Faktori ky\u00e7 k\u00ebtu \u00ebsht\u00eb Template. Dhe mund t\u00eb nisni shum\u00eb Pod-a nga nj\u00eb shablon n\u00eb nj\u00eb StatefulSet. Fjal\u00eb ky\u00e7e k\u00ebtu \u00ebsht\u00eb \u201cnga nj\u00eb shablon shum\u00eb Pod-a\u201d.<\/p>\n<p><\/p>\n<p>Dhe kishte nj\u00eb joshje t\u00eb madhe p\u00ebr t\u00eb krijuar t\u00eb gjith\u00eb klasrin duke ambalazhuar n\u00eb nj\u00eb StatefulSet. Kjo do t\u00eb funksiononte, nuk ka asnj\u00eb problem. Por ka nj\u00eb nuanc\u00eb. N\u00ebse d\u00ebshirojm\u00eb t\u00eb krijojm\u00eb nj\u00eb klas\u00ebr heterogjen, dmth t\u00eb p\u00ebrb\u00ebhet nga disa versione ClickHouse, at\u00ebher\u00eb lindin pyetje. Po, StatefulSet mund t\u00eb b\u00ebj\u00eb rolling update, po atje mund t\u00eb vendosni nj\u00eb version t\u00eb ri, duke shpjeguar se duhet t\u00eb provoni t\u00eb mos keni m\u00eb shum\u00eb se kaq node nj\u00ebkoh\u00ebsisht.<\/p>\n<p><\/p>\n<p>Por n\u00ebse e ekstrapolojm\u00eb detyr\u00ebn dhe themi se duam t\u00eb krijojm\u00eb nj\u00eb klas\u00ebr plot\u00ebsisht heterogjen dhe duam t\u00eb mos kalojm\u00eb nga versioni i vjet\u00ebr n\u00eb versionin e ri p\u00ebrmes rolling update, por thjesht duam t\u00eb krijojm\u00eb nj\u00eb klas\u00ebr heterogjen si n\u00eb pjes\u00ebn e versioneve t\u00eb ndryshme t\u00eb ClickHouse dhe n\u00eb pjes\u00ebn e storage-it t\u00eb ndrysh\u00ebm. Duam, p\u00ebr shembull, disa replika t\u00eb krijohen n\u00eb disqe t\u00eb ve\u00e7anta, n\u00eb t\u00eb ngadalta, p\u00ebr ta nd\u00ebrtuar plot\u00ebsisht nj\u00eb klas\u00ebr heterogjen. Dhe p\u00ebr shkak se StatefulSet b\u00ebn nj\u00eb zgjidhje standardizuese nga nj\u00eb shablon, nuk ka mund\u00ebsi t\u00eb b\u00ebjm\u00eb k\u00ebt\u00eb. <\/p>\n<p><\/p>\n<p>Pas disa mendimeve u mor vendimi q\u00eb do ta b\u00ebjm\u00eb k\u00ebshtu. T\u00eb gjitha replikat jan\u00eb n\u00eb StatefulSet-in e vet. Ka disa disavantazhe t\u00eb k\u00ebsaj zgjidhjeje, por n\u00eb praktik\u00eb, \u00ebsht\u00eb krejt\u00ebsisht e inkapsuluar nga operativi. Dhe ka shum\u00eb p\u00ebrpar\u00ebsi. Mund t\u00eb nd\u00ebrtojm\u00eb plot\u00ebsisht nj\u00eb klas\u00ebr ashtu si\u00e7 e duam, p\u00ebr shembull krejt\u00ebsisht heterogjen. Prandaj, n\u00eb klasrin ku kemi dy sharda me nj\u00eb replik\u00eb, do t\u00eb kemi dy StatefulSet-a dhe dy Pod-a, pik\u00ebrisht sepse kemi zgjedhur k\u00ebt\u00eb qasje p\u00ebr shkakun e p\u00ebrmendur m\u00eb lart p\u00ebr mund\u00ebsin\u00eb e nd\u00ebrtimit t\u00eb nj\u00eb klasre heterogjene. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4b7ae92a545f9bb6cc5f0136df87207f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>T\u00eb kthehemi te detyrat praktike. N\u00eb klasrin ton\u00eb duhet t\u00eb konfigurojm\u00eb p\u00ebrdoruesit, dmth duhet t\u00eb kryejm\u00eb ndonj\u00eb konfigurim ClickHouse n\u00eb Kubernetes. Operativi ofron t\u00eb gjitha mund\u00ebsit\u00eb p\u00ebr k\u00ebt\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/6a65aa78293c0b40230cf24efc58e55a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mund t\u00eb shkruani drejtp\u00ebrdrejt n\u00eb YAML at\u00eb q\u00eb duam. T\u00eb gjitha mund\u00ebsit\u00eb konfigurimi mapohen drejtp\u00ebrdrejt nga ky YAML n\u00eb konfigurimet ClickHouse, t\u00eb cilat shp\u00ebrndahen m\u00eb pas n\u00eb t\u00eb gjith\u00eb klasrin.<\/p>\n<p><\/p>\n<p>Mund t\u00eb shkruani edhe k\u00ebshtu. Kjo \u00ebsht\u00eb p\u00ebr shembull. Fjal\u00ebkalimi mund t\u00eb b\u00ebhet i enkriptuar. P\u00ebrkrah\u00ebn t\u00eb gjitha mund\u00ebsit\u00eb konfigurimi t\u00eb ClickHouse. K\u00ebtu \u00ebsht\u00eb vet\u00ebm nj\u00eb shembull. <\/p>\n<p><\/p>\n<p>Konfigurimi n\u00eb klas\u00ebr shp\u00ebrndahet si ConfigMap. N\u00eb praktik\u00eb, p\u00ebrdit\u00ebsimi i ConfigMap-it nuk ndodh menj\u00ebher\u00eb, prandaj n\u00ebse klastrin \u00ebsht\u00eb i madh, procesi i shp\u00ebrndarjes s\u00eb konfigurimit zgjas disa koh\u00eb. Por gjith\u00e7ka \u00ebsht\u00eb shum\u00eb e leht\u00eb p\u00ebr t'u p\u00ebrdorur.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/2e42d19d7a558e3b8d4bbb51fe5bd08b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>E komplikojm\u00eb detyr\u00ebn. Klastri po zhvillohet. Ne duam t\u00eb aplikojm\u00eb replikimin e t\u00eb dh\u00ebnave. Pra, kemi tashm\u00eb dy sharda, secila me nga nj\u00eb replik\u00eb, p\u00ebrdoruesit jan\u00eb t\u00eb konfiguruar. Ne po rritemi dhe duam t\u00eb merremi me replikimin.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4c97e5e6ca9cb66d3a94fb8cfe610186.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb na nevojitet p\u00ebr replikimin? <\/p>\n<p><\/p>\n<p>Na nevojitet ZooKeeper. N\u00eb ClickHouse, replikimi \u00ebsht\u00eb nd\u00ebrtuar duke p\u00ebrdorur ZooKeeper. ZooKeeper \u00ebsht\u00eb e nevojshme q\u00eb replikat e ndryshme t\u00eb ClickHouse t\u00eb ken\u00eb konsensus mbi cilat blloqe t\u00eb dh\u00ebnash ndodhen n\u00eb cilin ClickHouse. <\/p>\n<p><\/p>\n<p>Mund t\u00eb p\u00ebrdorim \u00e7do ZooKeeper. N\u00ebse ka nj\u00eb ZooKeeper t\u00eb jasht\u00ebm n\u00eb nd\u00ebrmarrje, at\u00ebher\u00eb mund ta p\u00ebrdorim at\u00eb. N\u00ebse jo, allora mund t\u00eb installojm\u00eb nga depoja jon\u00eb. Ka nj\u00eb instalues q\u00eb e leht\u00ebson k\u00ebt\u00eb proces. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/6cc40951a19b982abf578836edf569d3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe skema e bashk\u00ebpunimit t\u00eb gjith\u00eb sistemit duket k\u00ebshtu. Kemi Kubernetes si platform\u00eb. N\u00eb t\u00eb ekzekutohet operatori ClickHouse. ZooKeeper e kam paraqitur k\u00ebtu. Dhe operatori bashk\u00ebpunon si me ClickHouse ashtu edhe me ZooKeeper. Pra, ka bashk\u00ebpunim. <\/p>\n<p><\/p>\n<p>Dhe gjith\u00e7ka \u00ebsht\u00eb e nevojshme p\u00ebr q\u00eb ClickHouse t\u00eb arrij\u00eb t\u00eb replikoj\u00eb me sukses t\u00eb dh\u00ebnat n\u00eb k8s.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4fc37aee850acd20517fa3d7562f0165.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tani le t\u00eb shohim detyr\u00ebn vet\u00eb, se si do t\u00eb duket manifesti p\u00ebr replikimin.<\/p>\n<p><\/p>\n<p>Ne e shtojm\u00eb dy sekcione n\u00eb manifestin ton\u00eb. E para \u2013 \u00ebsht\u00eb se ku t\u00eb marrim ZooKeeper, i cili mund t\u00eb jet\u00eb brenda Kubernetes, ose t\u00eb jashtme. Ky \u00ebsht\u00eb thjesht nj\u00eb p\u00ebrshkrim. Dhe k\u00ebrkojm\u00eb replikat. Pra, ne duam dy replikat. N\u00eb total, do t\u00eb kemi 4 pod'e. P\u00ebr storage-in e kujtojm\u00eb, ai do t\u00eb rikthehet m\u00eb von\u00eb. Storage \u00ebsht\u00eb nj\u00eb k\u00ebng\u00eb e ve\u00e7ant\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/afb8c974d0587a4ad87d6ba36bbe5e3b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ishte k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/909ffd258dbce718ddf529a1a753de6f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>B\u00ebhet k\u00ebshtu. Shtohen replikat. E kat\u00ebrta nuk po p\u00ebrshtatet, ne besojm\u00eb se atje mund t\u00eb ket\u00eb shum\u00eb. Dhe n\u00eb an\u00eb shtohet ZooKeeper. Skemat po komplikohen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/c33b37fc7fc72f51276e5e98b9ec2134.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe ka ardhur koha t\u00eb shtojm\u00eb nj\u00eb detyr\u00eb tjet\u00ebr. Do t\u00eb shtojm\u00eb Storage t\u00eb P\u00ebrhersh\u00ebm. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/f28d14901a713eca413a52ec6ea21ac5.jpeg\" style=\"display:block;margin: 0 auto;\" \/>P\u00ebr Storage t\u00eb P\u00ebrhersh\u00ebm kemi disa mund\u00ebsi t\u00eb zbatimit.<\/p>\n<p><\/p>\n<p>N\u00eb rast se ekzekutojm\u00eb n\u00eb nj\u00eb ofrues cloud, si Amazon, Google, ka nj\u00eb tundim t\u00eb madh p\u00ebr t\u00eb shfryt\u00ebzuar storage-in cloud. Kjo \u00ebsht\u00eb shum\u00eb e p\u00ebrshtatshme, \u00ebsht\u00eb e mir\u00eb. <\/p>\n<p><\/p>\n<p>Dhe ka nj\u00eb mund\u00ebsi tjet\u00ebr. Kjo \u00ebsht\u00eb p\u00ebr storage-in lokal, kur disk\u00ebt jan\u00eb lokal\u00eb n\u00eb \u00e7do nod. Ky opsion \u00ebsht\u00eb shum\u00eb m\u00eb i v\u00ebshtir\u00eb p\u00ebr t'u zbatuar, por \u00ebsht\u00eb m\u00eb produktiv. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/483ee5c08b62e987620bf54fd32a44b4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb shohim se \u00e7far\u00eb kemi lidhur me storage-in cloud.<\/p>\n<p><\/p>\n<p>Ka p\u00ebrfitime. \u00cbsht\u00eb shum\u00eb e thjesht\u00eb p\u00ebr tu konfiguruar. Ne thjesht k\u00ebrkojm\u00eb nga ofruesi cloud, q\u00eb na jep storage me k\u00ebt\u00eb kapacitet, k\u00ebt\u00eb klas\u00eb. Klasat jan\u00eb t\u00eb p\u00ebrshkruara nga ofruesit vet\u00eb. <\/p>\n<p><\/p>\n<p>Dhe ka nj\u00eb disavantazh. P\u00ebr disa, ky disavantazh nuk \u00ebsht\u00eb kritik. N\u00eb m\u00ebnyr\u00eb t\u00eb sigurt, aty do t\u00eb ket\u00eb disa probleme me performanc\u00ebn. Kjo \u00ebsht\u00eb shum\u00eb e p\u00ebrshtatshme n\u00eb pun\u00eb, e sigurt, por ka disa ulje potenciale n\u00eb performanc\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/8e82430b64477f91640078ff4eacb47e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe pasi ClickHouse fokusohet pik\u00ebrisht n\u00eb performanc\u00eb, mund t\u00eb themi madje se nxjerr gjith\u00e7ka q\u00eb mund, prandaj shum\u00eb klient\u00eb p\u00ebrpiqen t\u00eb nxjerrin maksimumin e performanc\u00ebs.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/8638fe37b848a98ce8326218d368baa3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe p\u00ebr t\u00eb nxjerr\u00eb maksimumin, na nevojitet storage i lokal.<\/p>\n<p><\/p>\n<p>Kubernetes ofron tri abstraksione p\u00ebr p\u00ebrdorimin e storage-it lokal n\u00eb Kubernetes. K\u00ebto jan\u00eb: <\/p>\n<p><\/p>\n<ul>\n<li>EmptyDir<\/li>\n<li>HostPath.<\/li>\n<li>Local<\/li>\n<\/ul>\n<p><\/p>\n<p>Le t\u00eb shohim se si ndryshojn\u00eb dhe \u00e7far\u00eb kan\u00eb t\u00eb p\u00ebrbashk\u00ebt. <\/p>\n<p><\/p>\n<p>S\u00eb pari, n\u00eb t\u00eb tri qasjet, storage-i \u00ebsht\u00eb disk\u00ebt lokal\u00eb, t\u00eb cil\u00ebt ndodhen n\u00eb t\u00eb nj\u00ebjtin nod fizik t\u00eb k8s. Por ata kan\u00eb disa dallime.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/79afb620a0c9a1552b47240b405fedc9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb fillojm\u00eb me gj\u00ebn\u00eb m\u00eb t\u00eb thjesht\u00eb, pra me emptyDir. \u00c7far\u00eb \u00ebsht\u00eb kjo praktikisht? Kjo \u00ebsht\u00eb kur i k\u00ebrkojm\u00eb specifikacionit ton\u00eb q\u00eb sistemi i konteinerizimit (m\u00eb shpesh \u00ebsht\u00eb docker) t\u00eb na jap\u00eb qasje n\u00eb nj\u00eb dosje n\u00eb diskun lokal.<\/p>\n<p><\/p>\n<p>N\u00eb praktik\u00eb, docker krijon dikund me rrug\u00ebt e tij t\u00eb brendshme nj\u00eb dosje temporale, e quajtur me nj\u00eb hash t\u00eb gjat\u00eb. Dhe ofron nj\u00eb nd\u00ebrfaqe p\u00ebr qasje n\u00eb t\u00eb. <\/p>\n<p><\/p>\n<p>Si do t\u00eb funksionoj\u00eb kjo p\u00ebr performanc\u00ebn? Kjo do t\u00eb funksionoj\u00eb me shpejt\u00ebsin\u00eb e diskut lokal, pra \u00ebsht\u00eb qasje e plot\u00eb n\u00eb diskun tuaj. <\/p>\n<p><\/p>\n<p>Por ky qasje ka nj\u00eb disavantazh. Persistance \u00ebsht\u00eb mjaft dyshuese n\u00eb k\u00ebt\u00eb rast. Me l\u00ebvizjen e par\u00eb t\u00eb dockers me kontejner\u00ebt, persistance humbet. N\u00ebse Kubernetes d\u00ebshiron p\u00ebr ndonj\u00eb arsye ta transferoj\u00eb k\u00ebt\u00eb Pod n\u00eb nj\u00eb disk tjet\u00ebr, t\u00eb dh\u00ebnat do t\u00eb humbasin. <\/p>\n<p><\/p>\n<p>Ky qasje \u00ebsht\u00eb i mir\u00eb p\u00ebr teste, sepse shpejt\u00ebsin\u00eb e tregon tashm\u00eb normale, por p\u00ebr ndonj\u00eb gj\u00eb serioze ky opsion nuk \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/0b60f80fc9ea0e2c1820021bcd9e1382.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prandaj ka nj\u00eb qasje t\u00eb dyt\u00eb. Kjo \u00ebsht\u00eb hostPath. N\u00ebse shikoni slajdin e m\u00ebparsh\u00ebm dhe k\u00ebt\u00eb, mund t\u00eb shihni nj\u00eb vet\u00ebm dallim. Dosja ka dal\u00eb nga docker direkt n\u00eb nod\u00ebn e Kubernetes. K\u00ebtu \u00ebsht\u00eb pak m\u00eb e thjesht\u00eb. Ne e shkruajm\u00eb direkt rrug\u00ebn n\u00eb sistemin lokal t\u00eb skedar\u00ebve, ku d\u00ebshironim t\u00eb ruanim t\u00eb dh\u00ebnat tona. <\/p>\n<p><\/p>\n<p>P\u00ebrfitimet e k\u00ebtij m\u00ebnyre ekzistojn\u00eb. Kjo \u00ebsht\u00eb tashm\u00eb nj\u00eb persistance e v\u00ebrtet\u00eb, madje klasike. T\u00eb dh\u00ebnat do t\u00eb ruhen n\u00eb nj\u00eb adres\u00eb n\u00eb disk. <\/p>\n<p><\/p>\n<p>Ka jan\u00eb dhe disavantazhe. Kjo \u00ebsht\u00eb kompleksiteti i menaxhimit. Kubernetes ton\u00eb mund t\u00eb d\u00ebshiroj\u00eb t\u00eb zhvendos\u00eb nj\u00eb Pod n\u00eb nj\u00eb nod\u00eb tjet\u00ebr fizike. Dhe k\u00ebtu hyn n\u00eb loj\u00eb DevOps. Ai duhet t\u00eb shpjegoj\u00eb sakt\u00ebsisht gjith\u00eb sistemit se k\u00ebto pod\u2019i mund t\u00eb zhvendosen vet\u00ebm n\u00eb ato nod\u00eb, ku ke di\u00e7ka t\u00eb montuar n\u00eb k\u00ebto rrug\u00eb, dhe jo m\u00eb shum\u00eb se nj\u00eb nod\u00eb n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb. Kjo \u00ebsht\u00eb mjaft e komplikuar. <\/p>\n<p><\/p>\n<p>Pik\u00ebrisht p\u00ebr k\u00ebto q\u00ebllime, ne n\u00eb operatorin ton\u00eb kemi nd\u00ebrtuar \u0448\u0430\u0431\u043b\u043e\u043d\u0438 p\u00ebr ta fshehur gjith\u00eb k\u00ebt\u00eb kompleksitet. Dhe do t\u00eb ishte e mundur t\u00eb thuash thjesht: \"Un\u00eb dua q\u00eb t\u00eb kem nj\u00eb instance ClickHouse p\u00ebr \u00e7do nod\u00eb fizike dhe n\u00eb k\u00ebt\u00eb rrug\u00eb t\u00eb caktuar.\" <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/9f64c19bccc8b187d6af112eda896b25.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Por kjo nevoj\u00eb nuk \u00ebsht\u00eb vet\u00ebm p\u00ebr ne, prandaj zot\u00ebrinjt\u00eb nga vet\u00eb Kubernetes gjithashtu kuptojn\u00eb se njer\u00ebzit duan akses n\u00eb disk\u00ebt fizik\u00eb, prandaj ata ofrojn\u00eb nj\u00eb nivel t\u00eb tret\u00eb.<\/p>\n<p><\/p>\n<p>Ai quhet local. Nuk ka asnj\u00eb ndryshim nga slajdi i m\u00ebparsh\u00ebm. Vet\u00ebm se m\u00eb par\u00eb duhej ta b\u00ebnim me duar, q\u00eb nuk mund t\u00eb zhvendosnim k\u00ebto pod\u2019e nga nj\u00eb nod\u00eb n\u00eb tjetr\u00ebn, sepse ato duhet t\u00eb ishin t\u00eb lidhura n\u00eb k\u00ebt\u00eb rrug\u00eb me diskun fizik lokal, dhe tani t\u00eb gjitha k\u00ebto njohuri inkapsulohen n\u00eb Kubernetes vet\u00eb. Dhe b\u00ebhet shum\u00eb m\u00eb e leht\u00eb t\u00eb konfigurosh.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/140c43be34dd7015c0bf4cfd0a0bb384.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kthehemi te detyra jon\u00eb praktike. Kthehemi te YAML template. K\u00ebtu kemi nj\u00eb storage t\u00eb v\u00ebrtet\u00eb. Ne u kthyem te kjo. Ne caktojm\u00eb nj\u00eb template t\u00eb klasit VolumeClaim ashtu si\u00e7 \u00ebsht\u00eb n\u00eb k8s. Dhe p\u00ebrshkruajm\u00eb se cilin storage duam.<\/p>\n<p><\/p>\n<p>Pas k\u00ebsaj, k8s do t\u00eb k\u00ebrkoj\u00eb storage. Do t\u00eb na alokoj\u00eb at\u00eb n\u00eb StatefulSet. Dhe n\u00eb fund, ky do t\u00eb jet\u00eb n\u00eb dispozicion p\u00ebr ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/960e666486ed09cebd83235d43f83970.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kishim nj\u00eb skem\u00eb t\u00eb till\u00eb. Storage yn\u00eb Persistent ishte i kuq, q\u00eb sinonimizon se duhet t\u00eb b\u00ebhej. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/a989df489e3a9fef6a4fbf7b93c489a6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe ai b\u00ebhet i gjelb\u00ebr. Tani skema e klustrit ClickHouse n\u00eb k8s \u00ebsht\u00eb plot\u00ebsisht e finalizuar. Kemi shard\u00eb, replika, ZooKeeper, kemi nj\u00eb Persistent t\u00eb v\u00ebrtet\u00eb, i cili \u00ebsht\u00eb realizuar n\u00eb nj\u00eb m\u00ebnyr\u00eb ose n\u00eb nj\u00eb tjet\u00ebr. Skema \u00ebsht\u00eb tani plot\u00ebsisht funksionale. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/c409ee5da6309a67904394d968ed4906.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne vazhdojm\u00eb t\u00eb jetojm\u00eb. Klustri yn\u00eb po zhvillohet. Dhe Aleksei p\u00ebrpiqet dhe nxjerr nj\u00eb version t\u00eb ri t\u00eb ClickHouse.<\/p>\n<p><\/p>\n<p>Shpesh lind nj\u00eb detyr\u00eb praktike \u2013 t\u00eb testojm\u00eb versionin e ri t\u00eb ClickHouse n\u00eb klust\u00ebrin ton\u00eb. Dhe, natyrisht, nuk d\u00ebshirojm\u00eb ta instalojm\u00eb t\u00eb gjith\u00eb, duam ta vendosim diku n\u00eb nj\u00eb k\u00ebnd t\u00eb larg\u00ebt n\u00eb nj\u00eb replik\u00eb t\u00eb re, ndoshta jo nj\u00eb version t\u00eb ri, por ndoshta dy, sepse ata dalin shpesh. <\/p>\n<p><\/p>\n<p>\u00c7far\u00eb mund t\u00eb themi p\u00ebr k\u00ebt\u00eb?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/48ed52d393d977d0cfaa9320bd02ed1e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00ebtu kemi pik\u00ebrisht nj\u00eb mund\u00ebsi t\u00eb till\u00eb. K\u00ebto jan\u00eb template t\u00eb pod\u2019\u00ebve. Mund t\u00eb shpjegojm\u00eb, operatori yn\u00eb plot\u00ebsisht lejon nd\u00ebrtimin e nj\u00eb klusteri heterogjen. Pra, konfigurimi, duke filluar nga t\u00eb gjitha replikat si nj\u00eb grumbull, p\u00ebrfundon me \u00e7do replik\u00eb personale si\u00e7 d\u00ebshirojm\u00eb versionin e ClickHouse, versionin e storage. Ne mund t\u00eb konfigurim plot\u00ebsisht klusterin n\u00eb k\u00ebt\u00eb konfigurim q\u00eb na nevojitet. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4949ecd8119cb4ec0f4bad9bf27fa74e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pak do t\u00eb thellohemi brenda. M\u00eb par\u00eb flitnim p\u00ebr si funksionon ClickHouse-operatori n\u00eb p\u00ebrputhje me karakteristikat e ClickHouse.<\/p>\n<p><\/p>\n<p>Tani do t\u00eb doja t\u00eb thosha disa fjal\u00eb p\u00ebr si funksionon \u00e7do operator, si dhe p\u00ebr si nd\u00ebrvepron me K8s.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/5ca9c2a23c54b2a81ac0a8bba88d5e65.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb shqyrtojm\u00eb nd\u00ebrveprimin me K8s p\u00ebr fillim. \u00c7far\u00eb ndodh kur b\u00ebjm\u00eb kubectl apply? Objektet tona shfaqen n\u00eb etcd p\u00ebrmes API-s\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4b9eaedeb0f34d10398ba0187f09fef9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebr shembull, objektet baz\u00eb Kubernetes: pod, StatefulSet, sh\u00ebrbim dhe k\u00ebshtu me radh\u00eb. <\/p>\n<p><\/p>\n<p>Sidoqoft\u00eb, asgj\u00eb fizike nuk ndodh ende. K\u00ebto objekte duhet t\u00eb materializohen n\u00eb kluster. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/3c49dc1b0067347d5fc415ef9b87642d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebr k\u00ebt\u00eb, shfaqet kontroleri. Kontroleri \u00ebsht\u00eb nj\u00eb komponent i ve\u00e7ant\u00eb k8s, i cili di si t\u00eb materializoj\u00eb k\u00ebto p\u00ebrshkrime. Ai di se si dhe \u00e7far\u00eb duhet b\u00ebr\u00eb fizikisht. Ai di si t\u00eb nis\u00eb kontejner\u00ebt, \u00e7far\u00eb duhet t\u00eb konfigurohet q\u00eb serveri t\u00eb funksionoj\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/d951eb0f7bacf519566b0ef6cf9bc100.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe ai materializon objektet tona n\u00eb K8s.<\/p>\n<p><\/p>\n<p>Por ne duam t\u00eb veprojm\u00eb jo vet\u00ebm me pod'a, StatefulSet'a, ne duam t\u00eb krijojm\u00eb ClickHouseInstallation, pra, nj\u00eb objekt t\u00eb tipit ClickHouse, p\u00ebr ta operuar at\u00eb si nj\u00eb t\u00ebr\u00ebsi. Deri tani nuk ekziston nj\u00eb mund\u00ebsi e till\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/1594921ac5dd9384ce81ceae92f5cda9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Por K8s ka nj\u00eb tjet\u00ebr gj\u00eb t\u00eb k\u00ebndshme. Ne duam q\u00eb t\u00eb kemi diku nj\u00eb entitet t\u00eb till\u00eb kompleks, n\u00eb t\u00eb cilin t\u00eb jen\u00eb t\u00eb mbledhura nga pod\u2019\u00ebt dhe StatefulSet klusteri yn\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/04f86706f506fa91e365d45537dd9def.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe \u00e7far\u00eb duhet t\u00eb b\u00ebjm\u00eb p\u00ebr k\u00ebt\u00eb? S\u00eb pari, n\u00eb sken\u00eb del Custom Resource Definition. \u00c7far\u00eb \u00ebsht\u00eb kjo? Ky \u00ebsht\u00eb nj\u00eb p\u00ebrshkrim p\u00ebr K8s, q\u00eb do t\u00eb kesh nj\u00eb tip t\u00eb ri t\u00eb t\u00eb dh\u00ebnave, q\u00eb d\u00ebshirojm\u00eb t\u00eb shtojm\u00eb nj\u00eb burim t\u00eb personalizuar, i cili do t\u00eb jet\u00eb kompleks brenda. Ky \u00ebsht\u00eb p\u00ebrshkrimi i struktur\u00ebs s\u00eb t\u00eb dh\u00ebnave. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/f02ae12ef3ab5db974234b14e38792ac.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne e d\u00ebrgojm\u00eb at\u00eb gjithashtu p\u00ebrmes kubectl apply. Kubernetes e pranon me g\u00ebzim. <\/p>\n<p><\/p>\n<p>Dhe tani n\u00eb ruajtjen ton\u00eb, tek objekti n\u00eb etcd, ndodhet mund\u00ebsia p\u00ebr t\u00eb regjistruar nj\u00eb burim t\u00eb personalizuar me emrin ClickHouseInstallation.<\/p>\n<p><\/p>\n<p>Por tani, nuk do t\u00eb ndodhi asgj\u00eb tjet\u00ebr. Pra, n\u00ebse tani krijojm\u00eb nj\u00eb skedar YAML q\u00eb kemi shqyrtuar me p\u00ebrshkrimin e shard, replikave dhe themi \"kubectl apply\", Kubernetes do ta pranoj\u00eb, do ta vendos\u00eb n\u00eb etcd dhe do t\u00eb thot\u00eb: \"Shk\u00eblqyer, por nuk di se \u00e7far\u00eb t\u00eb b\u00ebj me t\u00eb. Si t\u00eb administroj ClickHouseInstallation nuk e di.\" <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/7c2f9f3f81b83c987a3bd72a881d0d91.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prandaj, na nevojitet dikush q\u00eb ndihmon Kubernetes-in t\u00eb administroj\u00eb nj\u00eb lloj t\u00eb ri t\u00eb t\u00eb dh\u00ebnave. N\u00eb an\u00ebn e majt\u00eb kemi kontrolluesin standard t\u00eb Kubernetes-it, i cili punon me llojet standarde t\u00eb t\u00eb dh\u00ebnave. Nd\u00ebrsa n\u00eb an\u00ebn e djatht\u00eb duhet t\u00eb shfaqet nj\u00eb kontrollues i personalizuar q\u00eb di t\u00eb punoj\u00eb me llojet e personalizuara t\u00eb t\u00eb dh\u00ebnave. <\/p>\n<p><\/p>\n<p>Dhe ndryshe quhet operator. E kam nxjerr\u00eb q\u00ebllimisht jasht\u00eb Kubernetes-it, sepse ai mund t\u00eb ekzekutohet edhe jasht\u00eb K8s. N\u00eb fakt, shumic\u00ebn e koh\u00ebs, t\u00eb gjith\u00eb operator\u00ebt ekzekutohen n\u00eb Kubernetes, por asgj\u00eb nuk e ndalon at\u00eb t\u00eb jet\u00eb jasht\u00eb, prandaj k\u00ebtu \u00ebsht\u00eb nxjerr\u00eb jasht\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/7aa3a1b67d0def5ba752dff56baeebbf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe tani kontrolluesi i personalizuar, q\u00eb \u00ebsht\u00eb operatori, nd\u00ebrvepron me Kubernetes-in p\u00ebrmes API-t. Ai tashm\u00eb di t\u00eb nd\u00ebrveproj\u00eb me API-n. Dhe ai e di se si nga burimi i personalizuar t\u00eb materializoj\u00eb nj\u00eb skem\u00eb komplekse q\u00eb duam t\u00eb krijojm\u00eb. K\u00ebshtu punon operatori. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/a5f773ddc3663f24d5379955da9c3037.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si funksionon operatori? Le t\u00eb shohim n\u00eb an\u00ebn e djatht\u00eb p\u00ebr t\u00eb zbuluar se si e b\u00ebn k\u00ebt\u00eb. T\u00eb zbulojm\u00eb se si operatori e materializon gjith\u00e7ka dhe si vazhdon nd\u00ebrveprimi me K8s.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/08a8d8dbcb35117a0eb3320589c6ff8d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Operatori \u2013 \u00ebsht\u00eb nj\u00eb program. Ai \u00ebsht\u00eb orientuar ndaj ngjarjeve. Operatorin, p\u00ebrmes API-t t\u00eb Kubernetes-it, e subscribon p\u00ebr ngjarje. N\u00eb API-n e Kubernetes-it ka pika hyrjeje ku mund t\u00eb abonohesh p\u00ebr ngjarje. Dhe n\u00ebse di\u00e7ka ndryshon n\u00eb K8s, at\u00ebher\u00eb Kubernetes-i d\u00ebrgon ngjarje p\u00ebr t\u00eb gjith\u00eb t\u00eb interesuarit, dmth. kushdo q\u00eb \u00ebsht\u00eb abonuar n\u00eb k\u00ebt\u00eb pik\u00eb API do t\u00eb marr\u00eb njoftime.<\/p>\n<p><\/p>\n<p>Operatori abonon p\u00ebr ngjarje, dhe duhet t\u00eb reagoj\u00eb. Detyra e tij \u00ebsht\u00eb t\u00eb reagoj\u00eb ndaj ngjarjeve q\u00eb shfaqen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/9f0664a4151e6e7f6f8575a3e54372e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ngjarjet gjenerohen nga disa p\u00ebrdit\u00ebsime. Vjen skedari yn\u00eb YAML me p\u00ebrshkrimin e ClickHouseInstallation. Ai p\u00ebrmes kubectl apply shkon n\u00eb etcd. Atje ndodhi nj\u00eb ngjarje, dhe n\u00eb fund kjo ngjarje arriti te ClickHouse-operatori. Operatorin e mori k\u00ebt\u00eb p\u00ebrshkrim. Dhe ai duhet t\u00eb b\u00ebj\u00eb di\u00e7ka. N\u00ebse erdhi nj\u00eb p\u00ebrdit\u00ebsim mbi objektin e ClickHouseInstallation, duhet t\u00eb p\u00ebrdit\u00ebsojm\u00eb klasterin. Dhe detyra e operatorit \u00ebsht\u00eb t\u00eb p\u00ebrdit\u00ebsoj\u00eb klasterin. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/0952bdd391a72aa15bf66af4ce69f4af.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb b\u00ebn ai? S\u00eb pari, duhet t\u00eb p\u00ebrgatis\u00eb nj\u00eb plan veprimi, \u00e7far\u00eb do t\u00eb b\u00ebjm\u00eb me k\u00ebt\u00eb p\u00ebrdit\u00ebsim. P\u00ebrdit\u00ebsimet mund t\u00eb jen\u00eb shum\u00eb t\u00eb vogla, dmth. t\u00eb vogla n\u00eb implementimin YAML, por mund t\u00eb sjellin ndryshime shum\u00eb t\u00eb m\u00ebdha n\u00eb klaster. Prandaj, operatori krijon nj\u00eb plan dhe pastaj e ndjek at\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/79caaa43b6fd9f3e2eb1afe44ecb2df9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ai fillon sipas k\u00ebtij plani t\u00eb krijoj\u00eb struktur\u00ebn brenda, p\u00ebr t\u00eb materializuar pod-et, sh\u00ebrbimet, dmth. t\u00eb b\u00ebj\u00eb at\u00eb q\u00eb \u00ebsht\u00eb detyra e tij kryesore. \u00c7far\u00eb \u00ebsht\u00eb si t\u00eb nd\u00ebrtojm\u00eb nj\u00eb klaster ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/e91576a26d6b758a68ae0b35cbe01897.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tani le t\u00eb prekim nj\u00eb gj\u00eb interesante. Ky \u00ebsht\u00eb ndarjen e p\u00ebrgjegj\u00ebsive midis Kubernetes-it dhe operatorit, dmth. \u00e7far\u00eb b\u00ebn Kubernetes-i, \u00e7far\u00eb b\u00ebn operatori dhe si nd\u00ebrveprojn\u00eb ata me nj\u00ebri-tjetrin. <\/p>\n<p><\/p>\n<p>Kubernetes-i p\u00ebrgjigjet p\u00ebr gj\u00ebrat sistemike, dmth. p\u00ebr grupin baz\u00eb t\u00eb objekteve, t\u00eb cilin mund ta interpretojm\u00eb si sistem-scope. Kubernetes-i di si t\u00eb nis\u00eb pod-et, si t\u00eb rinis\u00eb konteiner\u00ebt, si t\u00eb b\u00ebj\u00eb mount volumes, si t\u00eb punoj\u00eb me ConfigMap, dmth. gjith\u00e7ka q\u00eb mund t\u00eb quhet sistem. <\/p>\n<p><\/p>\n<p>Operator\u00ebt operojn\u00eb n\u00eb fusha tematike. \u00c7do operator b\u00ebhet p\u00ebr fush\u00ebn e tij t\u00eb caktuar. Ne e b\u00ebm\u00eb p\u00ebr ClickHouse.<\/p>\n<p><\/p>\n<p>Dhe operatori nd\u00ebrvepron pik\u00ebrisht n\u00eb terma t\u00eb fush\u00ebs tematike si, t\u00eb shtosh nj\u00eb replik\u00eb, t\u00eb krijosh nj\u00eb skem\u00eb, t\u00eb konfigurosh monitorimin. K\u00ebshtu krijohet kjo ndarje.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/9dc07d9c29d5dfd538343aadb751e4c0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb shqyrtojm\u00eb nj\u00eb shembull praktik, si ndodh kjo ndarje p\u00ebrgjegj\u00ebsish kur b\u00ebjm\u00eb veprimin p\u00ebr t\u00eb shtuar nj\u00eb replik\u00eb. <\/p>\n<p><\/p>\n<p>Operatori merr detyr\u00ebn \u2013 t\u00eb shtoj\u00eb nj\u00eb replik\u00eb. \u00c7far\u00eb b\u00ebn operatori? Operatorit do t\u00eb llogaris\u00eb se duhet t\u00eb krijohet nj\u00eb StatefulSet t\u00eb ri, n\u00eb t\u00eb cilin duhet t\u00eb p\u00ebrshkruhen disa modele dhe k\u00ebrkesat p\u00ebr volume. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/7a31f2f76a3bdda87e4bccf0e04fe4a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ai e p\u00ebrgatit t\u00eb gjith\u00eb k\u00ebt\u00eb dhe e d\u00ebrgon m\u00eb tej n\u00eb K8s. I thot\u00eb se i nevojitet ConfigMap, StatefulSet, Volume. Kubernetes-i e ekzekuton. Ai materializon nj\u00ebsit\u00eb baz\u00eb me t\u00eb cilat ai operon. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/2be6892234cc12b056962265c13dba07.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe pastaj p\u00ebrs\u00ebri hyn n\u00eb pun\u00eb ClickHouse-operatori. Ai tashm\u00eb ka nj\u00eb pod fizik, n\u00eb t\u00eb cilin mund t\u00eb b\u00ebhet di\u00e7ka. Dhe ClickHouse-operatori p\u00ebrs\u00ebri punon n\u00eb terma t\u00eb fush\u00ebs tematike. DMth. konkretisht ClickHouse, p\u00ebr t\u00eb p\u00ebrfshir\u00eb nj\u00eb replik\u00eb n\u00eb klaster, s\u00eb pari duhet t\u00eb konfiguroj\u00eb skem\u00ebn e t\u00eb dh\u00ebnave q\u00eb \u00ebsht\u00eb n\u00eb k\u00ebt\u00eb klaster. Dhe, p\u00ebrve\u00e7 k\u00ebsaj, duhet t\u00eb aktivizoj\u00eb k\u00ebt\u00eb replik\u00eb n\u00eb monitorim, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb shihet mir\u00eb. K\u00ebt\u00eb e konfiguron operatori. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/790616342b98b347fa67e0100754c8b6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe vet\u00ebm pas k\u00ebsaj, vet\u00eb ClickHouse del n\u00eb veprim, dmth. nj\u00eb entitet tjet\u00ebr m\u00eb t\u00eb avancuar. Kjo \u00ebsht\u00eb tashm\u00eb baza e t\u00eb dh\u00ebnave. Ajo ka instanc\u00ebn e saj, nj\u00eb replik\u00eb t\u00eb dyt\u00eb t\u00eb konfiguruar, e cila \u00ebsht\u00eb gati p\u00ebr t'u bashkuar me klasterin.<\/p>\n<p><\/p>\n<p>K\u00ebshtu, zinxhirin e ekzekutimit dhe ndarjen e p\u00ebrgjegj\u00ebsive p\u00ebr shtimin e nj\u00eb replike e kemi mjaft t\u00eb gjat\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/5ec79cfa2b45fadbe25f4d9fe8d2ec5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>T\u00eb vazhdojm\u00eb me detyrat tona praktike. N\u00ebse klasteri tashm\u00eb ekziston, at\u00ebher\u00eb mund t\u00eb realizojm\u00eb migrimin e konfiguracionit. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/a52aee0d4350b8da00cdb4b525df80ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kemi b\u00ebr\u00eb q\u00eb n\u00eb xml-n\u00eb ekzistuese, t\u00eb cil\u00ebn ClickHouse e kupton, mund t\u00eb kalojm\u00eb p\u00ebrmes saj.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/91abb1d3b0a14f2118361403a74e14c1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mund t\u00eb b\u00ebjm\u00eb rregullimin e detajuar t\u00eb ClickHouse. Pik\u00ebrisht implementimi zonal \u2013 \u00ebsht\u00eb ajo p\u00ebr t\u00eb cil\u00ebn kam folur kur shpjegoja hostPath, magazinim lokal. K\u00ebshtu e b\u00ebjm\u00eb si\u00e7 duhet implementimin zonal.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/fde502f30223e04a918f4fd598c3dd9f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detyra jon\u00eb e ardhshme praktike \u00ebsht\u00eb monitorimi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4e685fba7883075105c0164a778c51e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00ebse klasteri yn\u00eb ndryshon, at\u00ebher\u00eb duhet t\u00eb konfiguroni monitorimin periodikisht. <\/p>\n<p><\/p>\n<p>Le t\u00eb shqyrtojm\u00eb diagramin. Ne tashm\u00eb kemi shqyrtuar shenjat e gjelbra k\u00ebtu. Tani le t\u00eb shqyrtojm\u00eb shenjat e kuqe. Kjo \u00ebsht\u00eb m\u00ebnyra se si duam t\u00eb monitorojm\u00eb klasterin ton\u00eb. Si p\u00ebrfundimet nga klasteri ClickHouse kalojn\u00eb n\u00eb Prometheus, e m\u00eb pas n\u00eb Grafana.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/1210c1423f99d48a20e06e855bf48a72.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cila \u00ebsht\u00eb v\u00ebshtir\u00ebsia me monitorimin? Pse kjo e shohim si nj\u00eb arritje? V\u00ebshtir\u00ebsia \u00ebsht\u00eb pik\u00ebrisht n\u00eb dinamik\u00eb. Kur kemi nj\u00eb klaster t\u00eb vet\u00ebm dhe ai \u00ebsht\u00eb statik, mund t\u00eb konfiguroni nj\u00eb her\u00eb monitorimin dhe pastaj t\u00eb mos shqet\u00ebsoheni m\u00eb.<\/p>\n<p><\/p>\n<p>Por n\u00ebse kemi shum\u00eb klaster\u00eb, ose vazhdimisht di\u00e7ka ndryshon, at\u00ebher\u00eb procesi \u00ebsht\u00eb dinamik. Dhe t\u00eb merresh me p\u00ebrs\u00ebritjen e konfigurimit t\u00eb monitorimit \u00ebsht\u00eb nj\u00eb humbje burimesh dhe kohe, pra, madje edhe thjesht dembeliz\u00ebm. Kjo duhet automatizuar. V\u00ebshtir\u00ebsia \u00ebsht\u00eb pik\u00ebrisht n\u00eb dinamik\u00ebn e procesit. Dhe operatori e automatizon k\u00ebt\u00eb shum\u00eb mir\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/48a7264f1228671e0c483c8211a71eb3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si u zhvillua klasteri yn\u00eb? N\u00eb fillim ishte k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/8a8c7b6cd5562deb315368e1e8e1c976.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pastaj ishte k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/1a3e915fbadf3aa5f3b33d337f36e76e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb fund ai u b\u00eb k\u00ebshtu. <\/p>\n<p><\/p>\n<p>Dhe monitorimi b\u00ebhet automatikisht nga operatori. Nj\u00eb pik\u00eb e vetme hyrjeje. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/e079e65bf8deff43a81d8ffde938a709.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe ne thjesht shikojm\u00eb n\u00eb panelin Grafana, si n\u00eb brend\u00ebsi jeta e klasterit ton\u00eb vlon. <\/p>\n<p><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, paneli Grafana gjithashtu shp\u00ebrndahet me operatorin ton\u00eb direkt n\u00eb burim. Mund ta lidhim dhe ta p\u00ebrdorim. Ky screenshot m\u00eb dha ekipi yn\u00eb DevOps.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4ad1c2899dd845d0ba4185bdf758468c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ku do t\u00eb donim t\u00eb shkonim m\u00eb tej? Kjo \u00ebsht\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>T\u00eb zhvillojm\u00eb automatizimin e testimit. Detyra kryesore \u00ebsht\u00eb testimi i automatizuar i versioneve t\u00eb reja. <\/li>\n<li>Gjithashtu duam shum\u00eb t\u00eb automatizojm\u00eb integrimin me ZooKeeper. Dhe n\u00eb planet \u00ebsht\u00eb integrimi me ZooKeeper-operatorin. Pra, p\u00ebr ZooKeeper \u00ebsht\u00eb shkruar nj\u00eb operator dhe \u00ebsht\u00eb e arsyeshme q\u00eb dy operator\u00ebt t\u00eb fillojn\u00eb t\u00eb integrohen p\u00ebr t\u00eb nd\u00ebrtuar nj\u00eb zgjidhje m\u00eb t\u00eb p\u00ebrshtatshme. <\/li>\n<li>Duam t\u00eb b\u00ebjm\u00eb verifikime m\u00eb t\u00eb komplikuara t\u00eb jet\u00ebs. <\/li>\n<li>Kam theksuar me gjelb\u00ebr at\u00eb q\u00eb kemi p\u00ebr kalimin e trash\u00ebgimis\u00eb s\u00eb Templates \u2013 GATSHM\u00cb, pra, n\u00eb l\u00ebshimin e ardhsh\u00ebm t\u00eb operatorit do t\u00eb kemi tashm\u00eb trash\u00ebgimin\u00eb e shablloneve. Ky \u00ebsht\u00eb nj\u00eb mjet i fuqish\u00ebm q\u00eb lejon nd\u00ebrtimin e konfigurimeve t\u00eb nd\u00ebrlikuara nga cop\u00ebza. <\/li>\n<li>Dhe duam automatizimin e detyrave t\u00eb komplikuara. Nj\u00ebra prej tyre \u00ebsht\u00eb Re-sharding. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/f232c0aab389be5069e5c7886e265c01.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb b\u00ebjm\u00eb nj\u00eb p\u00ebrmbledhje t\u00eb nd\u00ebrmjetme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/62f7814994af0441ba5a82de4e9780d7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb marrim si rezultat? A ka vler\u00eb t\u00eb merremi me k\u00ebt\u00eb apo jo? A duhet t\u00eb p\u00ebrpiqemi t\u00eb sillnim baz\u00ebn e t\u00eb dh\u00ebnave n\u00eb Kubernetes dhe t\u00eb zbatonim operatorin n\u00eb p\u00ebrgjith\u00ebsi dhe operatorin Alitnity n\u00eb ve\u00e7anti.<\/p>\n<p><\/p>\n<p>Si rezultat marrim:<\/p>\n<p><\/p>\n<ul>\n<li>Thjeshtim t\u00eb konsideruesh\u00ebm dhe automatizim t\u00eb konfigurimit, implementimit, si dhe mb\u00ebshtetjes. <\/li>\n<li>Monitorim t\u00eb integruar menj\u00ebher\u00eb. <\/li>\n<li>Dhe shabllone t\u00eb kodifikuara me p\u00ebrdorim p\u00ebr situata t\u00eb komplikuara. Tani veprime t\u00eb parashikuara si shtimi i replik\u00ebs nuk duhen b\u00ebr\u00eb manualisht. K\u00ebt\u00eb e b\u00ebn operatori. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/aebccd7a2dc55f14645f79f89f7b7458.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ka mbetur vet\u00ebm nj\u00eb pyetje e fundit. A kemi tashm\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash n\u00eb Kubernetes, virtualizim. Si \u00ebsht\u00eb performanca e k\u00ebtij zgjidhjeje, ve\u00e7an\u00ebrisht n\u00eb drit\u00ebn e faktit se ClickHouse \u00ebsht\u00eb optimizuar p\u00ebr performanc\u00eb?<\/p>\n<p><\/p>\n<p>P\u00ebrgjigjja \u00ebsht\u00eb \u2013 gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull! Nuk do t\u00eb jap m\u00eb shum\u00eb detaje, kjo \u00ebsht\u00eb nj\u00eb tem\u00eb e nj\u00eb referati t\u00eb ve\u00e7ant\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/ffc230941f0ae24926186db4d8d68ade.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Por ka nj\u00eb projekt si TSBS. Cila \u00ebsht\u00eb detyra e tij kryesore? \u00cbsht\u00eb testi i bazave t\u00eb t\u00eb dh\u00ebnave p\u00ebr performanc\u00eb. Kjo \u00ebsht\u00eb nj\u00eb p\u00ebrpjekje p\u00ebr t\u00eb krahasuar ngrohten me ngrohten, butin me butin. <\/p>\n<p><\/p>\n<p>Si funksionon? Generohet nj\u00eb set t\u00eb dh\u00ebnash. Pastaj ky set t\u00eb dh\u00ebnash kalon n\u00eb t\u00eb nj\u00ebjtin set testesh n\u00eb bazat e t\u00eb dh\u00ebnave t\u00eb ndryshme. Nd\u00ebrsa secila baz\u00eb e t\u00eb dh\u00ebnave zgjidh nj\u00eb problem n\u00eb m\u00ebnyr\u00ebn se si di. Dhe m\u00eb pas mund t\u00eb krahasojm\u00eb rezultatet. <\/p>\n<p><\/p>\n<p>Ai tashm\u00eb mb\u00ebshtet nj\u00eb num\u00ebr t\u00eb madh bazash t\u00eb t\u00eb dh\u00ebnave. Kam theksuar tre t\u00eb r\u00ebnd\u00ebsishmet. K\u00ebto jan\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>TimescaleDB.<\/li>\n<li>InfluxDB.<\/li>\n<li>ClickHouse.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/5b4733534a4e6e36fb7788127adc6e86.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Gjithashtu \u00ebsht\u00eb b\u00ebr\u00eb nj\u00eb krahasim me nj\u00eb zgjidhje tjet\u00ebr t\u00eb ngjashme. Krahasimi me RedShift. Krahasimi \u00ebsht\u00eb b\u00ebr\u00eb n\u00eb Amazon. ClickHouse gjithashtu e tejkalon t\u00eb gjith\u00eb n\u00eb k\u00ebt\u00eb \u00e7\u00ebshtje. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/44cc8dedc07a02fe1ed5aad3e17a579c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb konkluzionesh mund t\u00eb nxjerrim nga ato q\u00eb p\u00ebrmenda?<\/p>\n<p><\/p>\n<ul>\n<li>DB n\u00eb Kubernetes \u00ebsht\u00eb i mundur. Ndoshta, \u00ebsht\u00eb i mundur \u00e7do lloj, por n\u00eb p\u00ebrgjith\u00ebsi duket se \u00ebsht\u00eb i mundur. ClickHouse n\u00eb Kubernetes me siguri \u00ebsht\u00eb i mundur fal\u00eb operatorit ton\u00eb. <\/li>\n<li>Operatori ndihmon n\u00eb automatizimin e proceseve dhe realisht thjeshton jet\u00ebn.<\/li>\n<li>Performanca \u00ebsht\u00eb e mir\u00eb.<\/li>\n<li>Dhe, na duket, se \u00ebsht\u00eb di\u00e7ka q\u00eb mund dhe duhet t\u00eb p\u00ebrdoret. <\/li>\n<\/ul>\n<p><\/p>\n<p>Open source \u2013 bashkohuni!<\/p>\n<p><\/p>\n<p>Si\u00e7 thash\u00eb, operatori \u00ebsht\u00eb nj\u00eb produkt krejt\u00ebsisht open source, prandaj do t\u00eb ishte shum\u00eb e mir\u00eb n\u00ebse sa m\u00eb shum\u00eb njer\u00ebz ta p\u00ebrdornin at\u00eb. Bashkohuni! Ne po ju presim t\u00eb gjith\u00ebve!<\/p>\n<p><\/p>\n<p>Faleminderit t\u00eb gjith\u00ebve!<\/p>\n<p><\/p>\n<p>Pyetje<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/4afe8b10c4f103c2a9a295511e4eb69a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr prezantimin! M\u00eb quajn\u00eb Anton. Jam nga kompania SEMrush. M\u00eb intereson \u00e7\u00ebshtja e logimit. Kemi d\u00ebgjuar p\u00ebr monitorimin, por s'kemi d\u00ebgjuar asgj\u00eb p\u00ebr logimin n\u00eb lidhje me klasterin n\u00eb t\u00ebr\u00ebsi. Ne, p\u00ebr shembull, kemi ngritur nj\u00eb klaster n\u00eb pajisje dhe p\u00ebrdorim logim t\u00eb centralizuar duke mbledhur me mjete standart q\u00eb i grumbullojm\u00eb n\u00eb nj\u00eb vend t\u00eb p\u00ebrbashk\u00ebt. Pastaj prej andej nxjerrim t\u00eb dh\u00ebnat e interesit.<\/em> <\/p>\n<p><\/p>\n<p>\u00cbsht\u00eb nj\u00eb pyetje e mir\u00eb, pra logimi \u00ebsht\u00eb n\u00eb list\u00ebn e pun\u00ebve p\u00ebr t\u00eb b\u00ebr\u00eb. Aktualisht operatori yn\u00eb nuk e automatizojn\u00eb k\u00ebt\u00eb. Ai ende po zhvillohet, projekti \u00ebsht\u00eb akoma mjaft i rinj. Ne e kuptojm\u00eb nevoj\u00ebn p\u00ebr logimin. Kjo \u00ebsht\u00eb edhe nj\u00eb tem\u00eb shum\u00eb e r\u00ebnd\u00ebsishme. Dhe ndoshta \u00ebsht\u00eb po aq e r\u00ebnd\u00ebsishme sa monitorimi. Por e para n\u00eb list\u00ebn p\u00ebr zbatim ishte monitorimi. Logimi do t\u00eb jet\u00eb. Ne, sigurisht, po p\u00ebrpiqemi t\u00eb automatizojm\u00eb t\u00eb gjitha aspektet e funksionimit t\u00eb klasterit. Prandaj, p\u00ebrgjigjja \u00ebsht\u00eb \u2013 p\u00ebr momentin operatori, p\u00ebr fat t\u00eb keq, nuk e di si ta b\u00ebj\u00eb k\u00ebt\u00eb, por \u00ebsht\u00eb n\u00eb planet tona, ne do ta b\u00ebjm\u00eb. N\u00ebse keni d\u00ebshir\u00eb t\u00eb bashkoheni, at\u00ebher\u00eb ju lutem b\u00ebni nj\u00eb pull request.<\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr prezantimin! Kam nj\u00eb pyetje standarde lidhur me Volume t\u00eb P\u00ebrhersh\u00ebm. Kur krijojm\u00eb nj\u00eb konfigurim me k\u00ebt\u00eb operator, si e p\u00ebrcakton operatori se n\u00eb cilin nod kemi montuar nj\u00eb disk apo nj\u00eb dosje? Duhet ta shpjegojm\u00eb paraprakisht se, ju lutem, vendosni ClickHouse ton\u00eb sakt\u00ebsisht n\u00eb k\u00ebto nodet ku ka disk?<\/em><\/p>\n<p><\/p>\n<p>Sa e kuptoj un\u00eb, kjo pyetje \u00ebsht\u00eb nj\u00eb vazhdim\u00ebsi e ruajtjes lokale, ve\u00e7an\u00ebrisht pjes\u00ebs s\u00eb saj p\u00ebr hostPath. \u00cbsht\u00eb si t\u00eb shpjegosh t\u00ebr\u00eb sistemit se duhet q\u00eb pod t\u00eb lancoj\u00eb pik\u00ebrisht n\u00eb nj\u00eb nod\u00eb t\u00eb till\u00eb, ku kemi nj\u00eb disk fizik t\u00eb lidhur, i cili \u00ebsht\u00eb montuar n\u00eb k\u00ebt\u00eb rrug\u00eb. Kjo \u00ebsht\u00eb nj\u00eb e gjith\u00eb seksion, q\u00eb e kam p\u00ebrmendur shum\u00eb n\u00eb sip\u00ebrfaqe, sepse p\u00ebrgjigjja \u00ebsht\u00eb mjaft e gj\u00ebr\u00eb. <\/p>\n<p><\/p>\n<p>N\u00eb thelb duket k\u00ebshtu. Ne, natyrisht, duhet t\u00eb b\u00ebjm\u00eb provisionin e k\u00ebtyre volumeve. Aktualisht, n\u00eb ruajtjen lokale nuk ka provision t\u00eb dinamik, prandaj DevOps duhet t'i pres\u00eb vet\u00eb disqet, k\u00ebto volume. Dhe duhet t'i shpjegojn\u00eb Kubernetes-it se do t\u00eb keni Volume t\u00eb P\u00ebrhersh\u00ebm t\u00eb nj\u00eb klase t\u00eb till\u00eb, q\u00eb ndodhen n\u00eb k\u00ebto nodet. Pastaj do t\u00eb duhet t'i shpjegoni Kubernetes-it se pod\u00ebt q\u00eb k\u00ebrkojn\u00eb nj\u00eb klas\u00eb t\u00eb till\u00eb t\u00eb ruajtjes lokale duhet t\u00eb planifikohen vet\u00ebm n\u00eb k\u00ebto nodet p\u00ebrmes etiketimeve. P\u00ebr k\u00ebto q\u00ebllime, operatori ka mund\u00ebsin\u00eb p\u00ebr t\u00eb caktuar ndonj\u00eb etikete dhe nj\u00eb p\u00ebr instanc\u00ebn e \u00e7do hosti. Dhe k\u00ebshtu, pod\u00ebt do t\u00eb rruhen nga Kubernetes p\u00ebr t\u00eb u ngjitur vet\u00ebm n\u00eb nodet q\u00eb plot\u00ebsojn\u00eb k\u00ebrkesat, etiketimeve, duke folur thjesht. Administrator\u00ebt caktojn\u00eb etiketa, b\u00ebjn\u00eb provisionin e disqeve me duar. Dhe at\u00ebher\u00eb ajo do t\u00eb shkall\u00ebzohet.<\/p>\n<p><\/p>\n<p>Dhe pik\u00ebrisht opsioni i tret\u00eb local ndihmon t\u00eb leht\u00ebsoj\u00eb k\u00ebt\u00eb pak. Si\u00e7 e theksova, kjo \u00ebsht\u00eb nj\u00eb pun\u00eb e mundimshme e konfigurimit, q\u00eb n\u00eb fund ndihmon p\u00ebr t\u00eb arritur maksimalen e performanc\u00ebs.<\/p>\n<p><\/p>\n<p><em>Kam nj\u00eb pyetje t\u00eb dyt\u00eb, e cila \u00ebsht\u00eb e lidhur me k\u00ebt\u00eb. Kubernetes \u00ebsht\u00eb menduar q\u00eb t\u00eb mos na interesoj\u00eb n\u00ebse do t\u00eb humbasim nj\u00eb nod\u00eb apo jo. \u00c7far\u00eb duhet t\u00eb b\u00ebjm\u00eb n\u00eb k\u00ebt\u00eb rast n\u00ebse humbim nod\u00ebn ku kemi nj\u00eb shard?<\/em><\/p>\n<p><\/p>\n<p>Po, Kubernetes fillimisht \u00ebsht\u00eb pozicionuar q\u00eb ne lidhur me pod\u00ebt tan\u00eb t\u00eb mendojm\u00eb si derrat, por k\u00ebtu \u00e7do disk b\u00ebhet si nj\u00eb kafsh\u00eb sht\u00ebpiake. Ka nj\u00eb problem se ne nuk mund t'i hedhim thjesht. Dhe zhvillimi i Kubernetes shkon n\u00eb at\u00eb drejtim q\u00eb nuk \u00ebsht\u00eb e mundur ta trajtojm\u00eb k\u00ebt\u00eb me filozofi, si resurse q\u00eb mund t\u00eb hidhni plot\u00ebsisht.<\/p>\n<p><\/p>\n<p>Tani, pytja praktike. \u00c7far\u00eb duhet t\u00eb b\u00ebjm\u00eb n\u00ebse humbet nj\u00eb nod\u00eb ku ndodhej disku? K\u00ebtu problemi zgjidhet n\u00eb nj\u00eb nivel m\u00eb t\u00eb lart\u00eb. N\u00eb rastin e ClickHouse kemi riplikime q\u00eb punojn\u00eb n\u00eb nj\u00eb nivel m\u00eb t\u00eb lart\u00eb, dmth, n\u00eb nivelin e ClickHouse.<\/p>\n<p><\/p>\n<p>Cila \u00ebsht\u00eb disponimi? P\u00ebr t\u00eb siguruar q\u00eb t\u00eb dh\u00ebnat t\u00eb mos humbasin, p\u00ebrgjegj\u00ebs \u00ebsht\u00eb DevOps. Ai duhet ta konfiguroj\u00eb sakt\u00eb riplikimin dhe duhet t\u00eb sigurohet q\u00eb riplikimi t\u00eb realizohet. N\u00eb riplikim n\u00eb nivelin e ClickHouse duhet t\u00eb jen\u00eb t\u00eb dh\u00ebnat e dubluara. Kjo nuk \u00ebsht\u00eb nj\u00eb detyr\u00eb q\u00eb zgjidh operatori. Dhe nuk \u00ebsht\u00eb nj\u00eb detyr\u00eb q\u00eb zgjidh vet\u00eb Kubernetes. Kjo \u00ebsht\u00eb n\u00eb nivelin e ClickHouse.<\/p>\n<p><\/p>\n<p>\u00c7far\u00eb duhet t\u00eb b\u00ebjm\u00eb n\u00ebse ndodhet nj\u00eb nod\u00eb fizike e prishur? Dmth, ne duhet t\u00eb vendosim nj\u00eb tjet\u00ebr, ta konfiguroni sakt\u00eb disku, t'i vendosim etiketat. Dhe pas k\u00ebsaj ajo do t\u00eb p\u00ebrmbush\u00eb k\u00ebrkesat q\u00eb Kubernetes mund ta lancoj\u00eb instanc\u00ebn e pod-it. Kubernetes do ta lancoj\u00eb. Numri i pod\u2019\u00ebve tuaja do t\u00eb jet\u00eb i pamjaftuesh\u00ebm p\u00ebr at\u00eb q\u00eb \u00ebsht\u00eb caktuar. Ajo do t\u00eb kaloj\u00eb p\u00ebrmes ciklit q\u00eb tregova. Dhe n\u00eb nivelin m\u00eb t\u00eb lart\u00eb ClickHouse do t\u00eb kuptoj\u00eb se kemi pranuar nj\u00eb riplikim, ai \u00ebsht\u00eb ende i zbraz\u00ebt dhe mbi t\u00eb duhet q\u00eb t\u00eb fillojm\u00eb t\u00eb derdhim t\u00eb dh\u00ebnat. Dmth, ky proces \u00ebsht\u00eb akoma i automatizuar keq. <\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr referatin! Kur ndodhin ndodhi t\u00eb papritura, operatori bie dhe rip\u00ebrdoret, dhe n\u00eb at\u00eb moment ndodhin ngjarje, a e p\u00ebrpunoni ndonj\u00ebher\u00eb k\u00ebt\u00eb?<\/em><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb do t\u00eb ndodhte n\u00ebse operatori ra dhe u rip\u00ebrk\u00ebdhen, apo jo? <\/p>\n<p><\/p>\n<p><em>Po. Dhe n\u00eb at\u00eb moment ndodh\u00ebn ngjarje.<\/em> <\/p>\n<p><\/p>\n<p>Detyra, \u00e7far\u00eb t\u00eb b\u00ebni n\u00eb k\u00ebt\u00eb rast ndan pjes\u00ebrisht p\u00ebrgjegj\u00ebsit\u00eb midis operatorit dhe Kubernetes. Kubernetes ka mund\u00ebsin\u00eb t\u00eb riprodhoj\u00eb eventin q\u00eb ka ndodhur. Ai e riprodhon. Dhe detyra e operatorit \u00ebsht\u00eb t\u00eb siguroj\u00eb q\u00eb, kur t\u00eb b\u00ebhet rip\u00ebrs\u00ebritja e regjistrit t\u00eb ngjarjeve, ngjarjet t\u00eb jen\u00eb idempotente. Dhe q\u00eb rikthimi i t\u00eb nj\u00ebjt\u00ebs ngjarje t\u00eb mos d\u00ebmtoj\u00eb sistemin ton\u00eb. Dhe operatori yn\u00eb ia del me k\u00ebt\u00eb detyr\u00eb. <\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr referatin! Dmitri Zavjalov, kompania<\/em> <em>Smedova. A ka p\u00ebr t\u00eb ardhur mund\u00ebsia p\u00ebr konfigurimin me haproxy? Intereson ndonj\u00eb balancues tjet\u00ebr p\u00ebrve\u00e7 atij standard, q\u00eb t\u00eb jet\u00eb m\u00eb inteligjent dhe t\u00eb kuptoj\u00eb q\u00eb aty \u00ebsht\u00eb me t\u00eb v\u00ebrtet\u00eb ClickHouse.<\/em> <\/p>\n<p><\/p>\n<p>Apo flisni p\u00ebr Ingress?<\/p>\n<p><\/p>\n<p><em>Po, z\u00ebvend\u00ebsoni Ingress me haproxy. N\u00eb haproxy mund t\u00eb specifikoni topologjin\u00eb e klasterit, ku ka replikat.<\/em><\/p>\n<p><\/p>\n<p>Deritani nuk kemi menduar p\u00ebr k\u00ebt\u00eb. N\u00ebse ju nevojitet dhe mund ta shpjegoni pse \u00ebsht\u00eb e nevojshme, mund t\u00eb realizohet, ve\u00e7an\u00ebrisht n\u00ebse d\u00ebshironi t\u00eb merrni pjes\u00eb. Ne e shqyrtojm\u00eb me k\u00ebnaq\u00ebsi variantin. P\u00ebrgjigja e shkurt\u00ebr \u2013 jo, n\u00eb momentin aktual nuk kemi nj\u00eb funksionalitet t\u00eb till\u00eb. Faleminderit p\u00ebr sugjerimin, do ta shqyrtojm\u00eb. N\u00ebse gjithashtu mund t\u00eb shpjegoni rastin e p\u00ebrdorimit dhe pse \u00ebsht\u00eb e nevojshme n\u00eb praktik\u00eb, p\u00ebr shembull, t\u00eb krijoni issues n\u00eb GitHub, do t\u00eb ishte shk\u00eblqyer.<\/p>\n<p><\/p>\n<p><em>Tashm\u00eb ekziston.<\/em><\/p>\n<p><\/p>\n<p>Mir\u00eb. Ne jemi t\u00eb hapur p\u00ebr \u00e7do propozim. Dhe haproxy \u00ebsht\u00eb n\u00eb list\u00ebn ton\u00eb t\u00eb pun\u00ebve p\u00ebr t\u00eb b\u00ebr\u00eb. Lista e pun\u00ebve p\u00ebr t\u00eb b\u00ebr\u00eb rritet, por jo zvog\u00eblohet p\u00ebr momentin. Por kjo \u00ebsht\u00eb mir\u00eb, do t\u00eb thot\u00eb se produkti \u00ebsht\u00eb i k\u00ebrkuar.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/523378\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u043a\u043b\u0430\u0434 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432 Kubernetes, \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0435\u0433\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0432 Kubernetes \u0438 \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d; \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438; \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442, \u0430 \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442. \u0414\u0430\u043b\u0435\u0435, \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":96966,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-96965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operator-v-kubernetes-dlya-upravleniya-klasterami-bd-vladislav-klimenko-altinity-2019\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0432 Kubernetes \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 \u0411\u0414. \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u041a\u043b\u0438\u043c\u0435\u043d\u043a\u043e (Altinity, 2019) | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operator-v-kubernetes-dlya-upravleniya-klasterami-bd-vladislav-klimenko-altinity-2019\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-15T12:42:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-15T12:42:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Operator n\u00eb Kubernetes p\u00ebr menaxhimin e klastereve t\u00eb DB. Vladislav Klimenko (Altinity, 2019) | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operator-v-kubernetes-dlya-upravleniya-klasterami-bd-vladislav-klimenko-altinity-2019","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0432 Kubernetes \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 \u0411\u0414. \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u041a\u043b\u0438\u043c\u0435\u043d\u043a\u043e (Altinity, 2019) | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operator-v-kubernetes-dlya-upravleniya-klasterami-bd-vladislav-klimenko-altinity-2019","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-15T12:42:53+00:00","article:modified_time":"2020-10-15T12:42:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"96965","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:29:25","updated":"2022-09-30 17:40:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/96965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=96965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/96965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/96966"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=96965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=96965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=96965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}