{"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 klaster\u00ebve 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 klaster\u00ebve 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 i dedikohet \u00e7\u00ebshtjeve praktike t\u00eb zhvillimit t\u00eb operator\u00ebve n\u00eb Kubernetes, dizajnimit t\u00eb arkitektur\u00ebs s\u00eb tij dhe parimeve 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 p\u00ebr \u00e7far\u00eb \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 operatori dhe \u00e7far\u00eb nuk mund t\u00eb b\u00ebj\u00eb.<\/li>\n<\/ul>\n<p><\/p>\n<p>M\u00eb pas, 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 analizojm\u00eb n\u00eb detaje:<\/p>\n<p><\/p>\n<ul>\n<li>interaksionin midis operatorit dhe Kubernetes;<\/li>\n<li>cilat funksione operatori merr p\u00ebrsip\u00ebr, 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 \u00e7\u00ebshtjet e ruajtjes s\u00eb t\u00eb dh\u00ebnave:<\/p>\n<p><\/p>\n<ul>\n<li>si t\u00eb punoni me Ruajtjen e P\u00ebrhershme nga k\u00ebndv\u00ebshtrimi i operatorit;<\/li>\n<li>tronditjet e mundshme t\u00eb p\u00ebrdorimit t\u00eb 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 p\u00ebrdorimit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Altinity\/clickhouse-operator\">clickhouse-operator<\/a><\/noindex> me Amazon ose Sh\u00ebrbimin e Google Cloud. Raporti nd\u00ebrtone mbi shembujt e zhvillimit dhe p\u00ebrvoj\u00ebs s\u00eb operimit 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>E kam emrin Vladislav Klimenko. Sot doja t\u00eb flisja p\u00ebr p\u00ebrvoj\u00ebn ton\u00eb n\u00eb zhvillimin dhe operimin e operator\u00ebve, sidomos p\u00ebr nj\u00eb operator t\u00eb specializuar p\u00ebr menaxhimin e klastereve t\u00eb databazave. 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 klaster\u00ebve 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 p\u00ebrpiqemi gradualisht t\u00eb kontribuojm\u00eb n\u00eb zhvillimin e ClickHouse. Dhe jemi t\u00eb dyt\u00ebt pas Yandex n\u00eb sasin\u00eb e ndryshimeve t\u00eb kryera n\u00eb ClickHouse. <\/li>\n<li>P\u00ebrpiqemi t\u00eb b\u00ebjm\u00eb projekte shtes\u00eb p\u00ebr ekosistemin e ClickHouse. <\/li>\n<\/ul>\n<p><\/p>\n<p>Nj\u00eb nga k\u00ebto projekte doja t\u00eb flisja. Ky \u00ebsht\u00eb ClickHouse-operator p\u00ebr Kubernetes. <\/p>\n<p><\/p>\n<p>N\u00eb raportin tim do t\u00eb doja t\u00eb preknja dy tema: <\/p>\n<p><\/p>\n<ul>\n<li>Tema e par\u00eb \u2013 si funksionon operatori yn\u00eb p\u00ebr menaxhimin e databazave ClickHouse n\u00eb Kubernetes. <\/li>\n<li>Tema e dyt\u00eb \u2013 si funksionon \u00e7do operator, pra si bashk\u00ebvepron ai me Kubernetes. <\/li>\n<\/ul>\n<p><\/p>\n<p>Sidoqoft\u00eb, 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 klaster\u00ebve 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>Kush do t\u00eb jet\u00eb i interesuar t\u00eb d\u00ebgjoj\u00eb at\u00eb q\u00eb p\u00ebrpiqem t\u00eb them?<\/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\u00ebt. <\/li>\n<li>Apo p\u00ebr ata q\u00eb duan t\u00eb krijojn\u00eb t\u00eb vetin, p\u00ebr t\u00eb kuptuar se si funksionon brenda, si bashk\u00ebvepron operatori me Kubernetes dhe cilat tronditje mund t\u00eb shfaqen. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 ta kuptuar m\u00eb mir\u00eb at\u00eb q\u00eb do t\u00eb diskutojm\u00eb sot, do t\u00eb ishte e dobishme t\u00eb dim\u00eb se si funksionon Kubernetes dhe t\u00eb kemi nj\u00eb p\u00ebrgatitje bazike p\u00ebr teknologjit\u00eb e cloud. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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? Ajo \u00ebsht\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash kolonore me specifik\u00eb n\u00eb p\u00ebrpunimin online t\u00eb k\u00ebrkesave analitike. Dhe ajo \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 aplikueshme praktikisht p\u00ebr \u00e7do baz\u00eb t\u00eb dh\u00ebnash. Dhe se DBMS ClickHouse \u00ebsht\u00eb shum\u00eb e shkall\u00ebzueshme, duke ofruar p\u00ebr nj\u00eb shkall\u00ebzim pothuajse linear. Prandaj, gjendja e klasterit \u2013 \u00ebsht\u00eb nj\u00eb gjendje natyrale p\u00ebr ClickHouse. Dhe ndoshta m\u00eb interesante \u00ebsht\u00eb t\u00eb diskutojm\u00eb se si t\u00eb menaxhojm\u00eb klasterin ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 t\u00eb vazhdojm\u00eb ta eksploatojm\u00eb at\u00eb vet? Pergjigjet 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 hasim situata t\u00eb tilla, kur n\u00eb kompanit\u00eb e m\u00ebdha tashm\u00eb praktikisht t\u00eb gjitha komponent\u00ebt jan\u00eb n\u00eb Kubernetes. Baza e t\u00eb dh\u00ebnave mbetet p\u00ebrjashtim. <\/li>\n<li>Dhe gjithnj\u00eb e m\u00eb shpesh b\u00ebhet pyetja: \"A mund ta fusim at\u00eb brenda?\". Prandaj, kompanit\u00eb e m\u00ebdha p\u00ebrpiqen t\u00eb krijojn\u00eb maksimal\u00ebn e unifikimit t\u00eb menaxhimit p\u00ebr t\u00eb pasur mund\u00ebsin\u00eb t\u00eb menaxhojn\u00eb shpejt depozitat e tyre t\u00eb dh\u00ebnash. <\/li>\n<li>Dhe kjo ndihmon n\u00eb ve\u00e7anti, n\u00ebse \u00ebsht\u00eb e nevojshme q\u00eb maksimalisht t\u00eb p\u00ebrs\u00ebrisim t\u00eb nj\u00ebjt\u00ebn gj\u00eb n\u00eb nj\u00eb vend t\u00eb ri, dmth. maksimalja portabilitet.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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? Natyrisht, kjo mund t\u00eb b\u00ebhet me duar. Por nuk \u00ebsht\u00eb aq e leht\u00eb, sepse ne hasim n\u00eb nd\u00ebrlikimin e menaxhimit t\u00eb vet\u00eb Kubernetes, por mbi k\u00ebt\u00eb p\u00ebrflakja e specifik\u00ebs s\u00eb ClickHouse. K\u00ebshtu, ndodh nj\u00eb agregat\u00eb. <\/p>\n<p><\/p>\n<p>Dhe gjith\u00e7ka s\u00eb bashku ofron nj\u00eb set mjaft t\u00eb gjer\u00eb teknologjish, t\u00eb cilat b\u00ebhen mjaft t\u00eb v\u00ebshtira p\u00ebr t'u menaxhuar, sepse Kubernetes sjell pyetje t\u00eb p\u00ebrditshme p\u00ebr operimin, nd\u00ebrsa ClickHouse sjell pyetje t\u00eb veta p\u00ebr operimin e p\u00ebrditsh\u00ebm. Sidomos, n\u00ebse kemi disa ClickHouse-e dhe duhet t\u00eb b\u00ebjm\u00eb vazhdimisht di\u00e7ka me to. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>N\u00eb ClickHouse, me konfigurim dinamik, ka nj\u00eb num\u00ebr t\u00eb konsideruesh\u00ebm pyetjesh q\u00eb krijojn\u00eb nj\u00eb ngarkes\u00eb t\u00eb vazhdueshme p\u00ebr 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 replik\u00eb, nj\u00eb shard, do t\u00eb duhet t\u00eb realizojm\u00eb menaxhimin e konfiguracionit. <\/li>\n<li>M\u00eb pas, duhet t\u00eb ndryshoni skem\u00ebn e t\u00eb dh\u00ebnave, sepse ClickHouse ka nj\u00eb m\u00ebnyr\u00eb specifike t\u00eb shardimit. Duhet t\u00eb ndahen skemat e t\u00eb dh\u00ebnave dhe t\u00eb konfigurohen. <\/li>\n<li>Duhet t\u00eb konfigurohet monitorimi. <\/li>\n<li>Mblidhni logjet p\u00ebr shards t\u00eb rinj, p\u00ebr replika t\u00eb reja. <\/li>\n<li>Kujdesuni p\u00ebr rikuperimin.<\/li>\n<li>Dhe p\u00ebr rindezjen. <\/li>\n<\/ul>\n<p><\/p>\n<p>K\u00ebto jan\u00eb pun\u00eb rutinore, t\u00eb cilat shum\u00eb do t\u00eb donin t'i leht\u00ebsonin n\u00eb p\u00ebrgatitje.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 po ndihmon shum\u00eb n\u00eb menaxhim, por n\u00eb aspektet themelore t\u00eb sistemit. <\/p>\n<p><\/p>\n<p>Kubernetes leht\u00ebson dhe automatizon gj\u00ebra si:<\/p>\n<p><\/p>\n<ul>\n<li>Rikuperimi.<\/li>\n<li>Rindezja. <\/li>\n<li>Menaxhimi i sistemit t\u00eb ruajtjes.<\/li>\n<\/ul>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb e mir\u00eb, kjo \u00ebsht\u00eb drejtimi i duhur, por ai nuk ka nj\u00eb kuptim t\u00eb plot\u00eb se si t\u00eb menaxhohet nj\u00eb klaster i baz\u00ebs s\u00eb t\u00eb dh\u00ebnave. <\/p>\n<p><\/p>\n<p>D\u00ebshirojm\u00eb m\u00eb shum\u00eb, duam q\u00eb e gjith\u00eb baza e t\u00eb dh\u00ebnave t\u00eb funksionoj\u00eb n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>D\u00ebshirojm\u00eb t\u00eb kemi di\u00e7ka si nj\u00eb buton t\u00eb madh magjik t\u00eb kuq, mbi t\u00eb cilin klikoni dhe ju krijohet dhe mbahet gjat\u00eb gjith\u00eb ciklit t\u00eb jet\u00ebs nj\u00eb klaster me detyra t\u00eb p\u00ebrditshme q\u00eb duhen zgjidhur. Klasteri ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p>Dhe ne kemi p\u00ebrpjekur t\u00eb krijojm\u00eb nj\u00eb zgjidhje q\u00eb do t\u00eb ndihmonte n\u00eb leht\u00ebsimin e pun\u00ebs. Ky \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 klaster\u00ebve 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, dometh\u00ebn\u00eb ai \u00ebsht\u00eb nj\u00eb menaxher. <\/p>\n<p><\/p>\n<p>Dhe ai p\u00ebrmban modele sjelljeje. Mund ta quajm\u00eb k\u00ebt\u00eb njohuri t\u00eb kodifikuara mbi fush\u00ebn p\u00ebrkat\u00ebse. <\/p>\n<p><\/p>\n<p>Dhe detyra kryesore e tij \u00ebsht\u00eb t\u00eb leht\u00ebsoj\u00eb jet\u00ebn p\u00ebr DevOps dhe t\u00eb reduktoj\u00eb menaxhimin e mikros, q\u00eb ai (DevOps) t\u00eb mendoj\u00eb n\u00eb terma m\u00eb t\u00eb lart\u00eb, dometh\u00ebn\u00eb q\u00eb ai (DevOps) t\u00eb mos merret me menaxhimin e detajeve manualisht. <\/p>\n<p><\/p>\n<p>Dhe operatori \u00ebsht\u00eb pik\u00ebrisht nj\u00eb robot ndihm\u00ebs, q\u00eb lufton me detyra t\u00eb vogla dhe ndihmon DevOps.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Pse \u00ebsht\u00eb nevojitur operatori? Ai tregohet ve\u00e7an\u00ebrisht i mir\u00eb n\u00eb dy \u00e7\u00ebshtje:<\/p>\n<p><\/p>\n<ul>\n<li>Kur nj\u00eb specialist q\u00eb merret me ClickHouse, nuk ka p\u00ebrvoj\u00eb t\u00eb mjaftueshme, por duhet t\u00eb operohet ClickHouse, operatori leht\u00ebson operimin dhe ndihmon n\u00eb manaxhimin e nj\u00eb klasteri ClickHouse me nj\u00eb konfiguracion mjaft t\u00eb komplikuar, duke mos u p\u00ebrfshir\u00eb 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 shihet m\u00eb s\u00eb miri, \u00ebsht\u00eb kur duhet t\u00eb automatizohet nj\u00eb num\u00ebr i madh detyrash tipike. Ai heq mikrodetyrat nga administruesit e sistemit. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 \u00ebsht\u00eb m\u00eb e nevojshme p\u00ebr ata q\u00eb sapo kan\u00eb filluar rrug\u00ebn e tyre, ose p\u00ebr ata q\u00eb duhet t\u00eb angazhohen shum\u00eb n\u00eb automatizim. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 dallimi i qasjes q\u00eb bazohet n\u00eb operator\u00eb nga sistemet e tjera? Ka Helm. Ai gjithashtu ndihmon n\u00eb instalimin e ClickHouse, mund t\u00eb vizatoni helm charts, t\u00eb cilat madje vendosin nj\u00eb klaster t\u00eb t\u00ebr\u00eb ClickHouse. \u00c7far\u00eb dallimi ka midis operatorit dhe, p\u00ebr shembull, Helm?<\/p>\n<p><\/p>\n<p>Dallimi themelor \u00ebsht\u00eb se Helm \u00ebsht\u00eb menaxhim paketash, ndersa operatori shkon m\u00eb tej. Ai mbulon t\u00eb gjith\u00eb ciklin e jet\u00ebs. Nuk \u00ebsht\u00eb vet\u00ebm instalimi, jan\u00eb detyrat e p\u00ebrditshme, q\u00eb p\u00ebrfshijn\u00eb skalimin, sharding, pra, t\u00eb gjitha ato q\u00eb duhet t\u00eb kryhen n\u00eb procesin e ciklit t\u00eb jet\u00ebs (n\u00ebse nevojitet, edhe fshirja) \u2013 t\u00eb gjitha k\u00ebto i zgjidh operatori. Ai p\u00ebrpiqet t\u00eb automatizoj\u00eb dhe mb\u00ebshtes\u00eb t\u00eb gjith\u00eb ciklin e jet\u00ebs s\u00eb softuerit. Kjo \u00ebsht\u00eb dallimi i tij themelor nga zgjidhjet e tjera q\u00eb jan\u00eb t\u00eb pranishme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 m\u00eb tutje. <\/p>\n<p><\/p>\n<p>Si nd\u00ebrtuojm\u00eb operatorin ton\u00eb? Ne p\u00ebrpiqemi t\u00eb qasemi n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb menaxhojm\u00eb klasterin ClickHouse si nj\u00eb burim t\u00eb vet\u00ebm. <\/p>\n<p><\/p>\n<p>Ja, n\u00eb an\u00ebn e majt\u00eb t\u00eb pamjes kemi t\u00eb dh\u00ebnat hyr\u00ebse. Ky \u00ebsht\u00eb nj\u00eb YAML me specifikimin e klasterit, q\u00eb n\u00eb m\u00ebnyr\u00ebn klasike kalon p\u00ebrmes kubectl n\u00eb Kubernetes. Atje, operatori e merr, b\u00ebn magjin\u00eb e tij. Dhe n\u00eb daljen kemi di\u00e7ka t\u00eb till\u00eb. Kjo \u00ebsht\u00eb implementimi i ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p>Dhe m\u00eb pas do t\u00eb shikojm\u00eb gradualisht se si funksionon operatori, cilat detyra tipike mund t\u00eb zgjidhen. Do t\u00eb shqyrtojm\u00eb vet\u00ebm detyrat tipike, 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 klaster\u00ebve 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 nisemi nga praktika. 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 lini q\u00eb, n\u00ebse d\u00ebshironi t\u00eb provoni ta aktivizoni thjesht, at\u00ebher\u00eb mund t\u00eb filloni me udh\u00ebzuesin e shpejt\u00eb.<\/p>\n<p><\/p>\n<p>N\u00ebse d\u00ebshironi t\u00eb zhyteni n\u00eb detaje, ne p\u00ebrpiqemi t\u00eb mbajm\u00eb dokumentacionin n\u00eb nj\u00eb form\u00eb m\u00eb t\u00eb pranueshme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 nisim me nj\u00eb detyr\u00eb praktike. Detyra e par\u00eb, nga e cila t\u00eb gjith\u00eb duam t\u00eb fillojm\u00eb, \u00ebsht\u00eb ta nisnim shembullin e par\u00eb n\u00eb nj\u00ebfar\u00eb m\u00ebnyre. Si ta nxjerrim n\u00eb pun\u00eb ClickHouse me ndihm\u00ebn e operatorit, edhe pa e ditur shum\u00eb si funksionon? Shkruajm\u00eb nj\u00eb manifest, pasi t\u00eb gjitha komunikimet me k8s jan\u00eb komunikime p\u00ebrmes manafests.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Ja nj\u00eb manifest i till\u00eb i komplikuar. Ajo q\u00eb kemi theksuar me t\u00eb kuqe \u00ebsht\u00eb ajo q\u00eb duhet t\u00eb akcentohet. Ne i k\u00ebrkojm\u00eb operatorit t\u00eb krijoj\u00eb nj\u00eb grup me emrin demo.<\/p>\n<p><\/p>\n<p>P\u00ebr momentin k\u00ebto jan\u00eb shembuj bazik\u00eb. Storage ende nuk p\u00ebrshkruhet, por do t\u00eb kthehemi te storage pak m\u00eb von\u00eb. P\u00ebr tani, do t\u00eb ndjekim zhvillimin e grupit n\u00eb dinamik\u00eb.<\/p>\n<p><\/p>\n<p>E krijuam k\u00ebt\u00eb manifest. I japim at\u00eb operatorit ton\u00eb. Ai punoi, b\u00ebri magjin\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 komponente t\u00eb ndryshme jan\u00eb interesante \u2013 k\u00ebto jan\u00eb Pod, dy Sh\u00ebrbime dhe StatefulSet.<\/p>\n<p><\/p>\n<p>Operatori kreu pun\u00ebn e tij, dhe ne mund t\u00eb shohim se \u00e7far\u00eb sakt\u00ebsisht krijoi ai. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 ndryshim, ConfigMap p\u00ebr t\u00eb gjith\u00eb grupin. Sigurisht, sh\u00ebrbimet si pika hyr\u00ebse n\u00eb grup. <\/p>\n<p><\/p>\n<p>Sh\u00ebrbimet jan\u00eb Sh\u00ebrbimi Qendror Load Balancer dhe gjithashtu mund t\u00eb ket\u00eb p\u00ebr \u00e7do ndryshim, p\u00ebr \u00e7do shard. <\/p>\n<p><\/p>\n<p>Ja si duket grupi yn\u00eb baz\u00eb. Ai p\u00ebrb\u00ebhet nga nj\u00eb nod\u00ebsh t\u00eb vetme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 vazhdojm\u00eb, do t\u00eb komplikohemi. Duhet t\u00eb shardojm\u00eb grupin.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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, duke filluar dinamik\u00ebn. D\u00ebshirojm\u00eb t\u00eb shtojm\u00eb nj\u00eb shard. Ndjekim zhvillimin. Ndryshojm\u00eb specifikimin ton\u00eb. Shkruajm\u00eb se duam dy shard. <\/p>\n<p><\/p>\n<p>Ky \u00ebsht\u00eb po ai skedar, i cili zhvillohet n\u00eb m\u00ebnyr\u00eb dinamike me rritjen e sistemit. Storage nuk ka, storage do t\u00eb shqyrtohet m\u00eb von\u00eb, kjo \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 del. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Operatori mendoi dhe krijoi entitetet e m\u00ebposhtme. Tani kemi dy Pod, tre Sh\u00ebrbime dhe, befas, 2 StatefulSet. Pse 2 StatefulSet?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 \u2013 ky ishte gjendja fillestare, kur kishim nj\u00eb pod.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 u b\u00eb k\u00ebshtu. P\u00ebr momentin gjith\u00e7ka \u00ebsht\u00eb e thjesht\u00eb, \u00ebsht\u00eb e dyfishuar. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 largohemi dhe t\u00eb diskutojm\u00eb \u00e7\u00ebshtjen se si n\u00eb Kubernetes menaxhohen Pod\u2019\u00ebt.<\/p>\n<p><\/p>\n<p>Ka nj\u00eb objekt t\u00eb till\u00eb t\u00eb quajtur StatefulSet, i cili lejon krijimin e nj\u00eb grupi Pod\u2019\u00ebsh nga nj\u00eb shablon. Faktor kryesor \u00ebsht\u00eb Template. Dhe mund t\u00eb eksploroni shum\u00eb Pod\u2019\u00eb nga nj\u00eb shablon n\u00eb nj\u00eb StatefulSet. Dhe fraza ky\u00e7e k\u00ebtu \u00ebsht\u00eb \"nga nj\u00eb shablon shum\u00eb Pod\u2019\u00eb.\"<\/p>\n<p><\/p>\n<p>Dhe kishte nj\u00eb tundim t\u00eb madh p\u00ebr t\u00eb b\u00ebr\u00eb t\u00eb gjith\u00eb klastri, duke e paketuar n\u00eb nj\u00eb StatefulSet. Kjo do t\u00eb funksiononte, nuk ka asnj\u00eb problem. Por ka nj\u00eb nuanc\u00eb. N\u00ebse duam t\u00eb formojm\u00eb nj\u00eb klas\u00ebr heterogjen, pra me disa versione t\u00eb ClickHouse, at\u00ebher\u00eb kemi disa pyetje. Po, StatefulSet mund t\u00eb b\u00ebj\u00eb nj\u00eb p\u00ebrdit\u00ebsim t\u00eb rrotulluesh\u00ebm, po aty mund t\u00eb vendosim versionin e ri, duke shpjeguar se nuk duhet t\u00eb provojm\u00eb m\u00eb shum\u00eb se kaq shum\u00eb nod\u00eb nj\u00ebher\u00ebsh.<\/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 jo t\u00eb kalojm\u00eb nga versioni i vjet\u00ebr n\u00eb t\u00eb riun me an\u00eb t\u00eb p\u00ebrdit\u00ebsimit rrotullues, 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, ashtu edhe n\u00eb pjes\u00ebn e ruajtjes s\u00eb ndryshme. Duam, p\u00ebr shembull, t\u00eb krijojm\u00eb disa replika mbi disqe t\u00eb ve\u00e7anta, mbi t\u00eb ngadalta, n\u00eb p\u00ebrgjith\u00ebsi, t\u00eb nd\u00ebrtojm\u00eb plot\u00ebsisht nj\u00eb klas\u00ebr heterogjen. Dhe p\u00ebr shkak se StatefulSet b\u00ebn nj\u00eb zgjidhje t\u00eb standardizuar nga nj\u00eb model, nuk ka mund\u00ebsi ta b\u00ebjm\u00eb k\u00ebt\u00eb. <\/p>\n<p><\/p>\n<p>Pas disa reflektimesh, u mor vendimi q\u00eb t\u00eb veprojm\u00eb k\u00ebshtu. \u00c7do replika \u00ebsht\u00eb n\u00eb StatefulSet-in e vet. Ka disa mang\u00ebsi n\u00eb k\u00ebt\u00eb zgjidhje, por n\u00eb praktik\u00eb, operatori e enkapsulon plot\u00ebsisht k\u00ebt\u00eb. Dhe ka shum\u00eb p\u00ebrfitime. Mund t\u00eb nd\u00ebrtojm\u00eb nj\u00eb klas\u00ebr plot\u00ebsisht ashtu si\u00e7 duam, p\u00ebr shembull, absolutisht heterogjen. Prandaj, n\u00eb klastrin ton\u00eb, ku kemi dy shard-e me nj\u00eb replika, do t\u00eb kemi 2 StatefulSet-a dhe 2 Pod-a pik\u00ebrisht p\u00ebr shkak se kemi zgjedhur nj\u00eb qasje t\u00eb till\u00eb p\u00ebr shkak t\u00eb arsyeve t\u00eb p\u00ebrmendura m\u00eb sip\u00ebr p\u00ebr mund\u00ebsin\u00eb e nd\u00ebrtimit t\u00eb nj\u00eb klasri heterogjen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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. Ne n\u00eb klastrin ton\u00eb duam t\u00eb konfigurimim p\u00ebrdoruesit, pra na nevojitet ndonj\u00eb konfigurim i ClickHouse n\u00eb Kubernetes. Operator\u00ebt ofrojn\u00eb 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 klaster\u00ebve 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 ta shkruajm\u00eb drejtp\u00ebrs\u00ebdrejti n\u00eb YAML at\u00eb q\u00eb duam. T\u00eb gjitha mund\u00ebsit\u00eb e konfigurimit mapohen drejtp\u00ebrs\u00ebdrejti nga ky YAML tek konfigurimet e ClickHouse, t\u00eb cilat m\u00eb pas shp\u00ebrndahen n\u00eb t\u00eb gjith\u00eb klastrin.<\/p>\n<p><\/p>\n<p>Mund t\u00eb shkruajm\u00eb edhe k\u00ebshtu. Ky \u00ebsht\u00eb vet\u00ebm nj\u00eb shembull. Fjal\u00ebkalimi mund t\u00eb b\u00ebhet e enkriptuar. T\u00eb gjitha mund\u00ebsit\u00eb e konfigurimit t\u00eb ClickHouse mb\u00ebshteten. K\u00ebtu \u00ebsht\u00eb vet\u00ebm nj\u00eb shembull. <\/p>\n<p><\/p>\n<p>Konfigurimi p\u00ebr klastri shp\u00ebrndahet si ConfigMap. N\u00eb praktik\u00eb, p\u00ebrdit\u00ebsimi i ConfigMap-it nuk ndodh n\u00eb m\u00ebnyr\u00eb t\u00eb menj\u00ebhershme, prandaj n\u00ebse klastri \u00ebsht\u00eb i madh, procesi i shp\u00ebrndarjes s\u00eb konfigurimit zgjat disi. Por gjith\u00e7ka \u00ebsht\u00eb shum\u00eb e rehatshme n\u00eb funksionim.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 rendim situat\u00ebn m\u00eb t\u00eb komplikuar. Klusteri po zhvillohet. Ne duam t\u00eb replikojm\u00eb t\u00eb dh\u00ebnat. Pra, kemi tashm\u00eb dy shard-e, me nj\u00eb replik\u00eb secili, t\u00eb vendosur p\u00ebrdoruesit. 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 klaster\u00ebve 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 nd\u00ebrtohet duke p\u00ebrdorur ZooKeeper. ZooKeeper \u00ebsht\u00eb i nevojsh\u00ebm q\u00eb replikat e ndryshme t\u00eb ClickHouse t\u00eb ken\u00eb konsensus n\u00eb lidhje me cilat blloqe t\u00eb dh\u00ebnash ndodhen n\u00eb cilin ClickHouse. <\/p>\n<p><\/p>\n<p>Mund t\u00eb p\u00ebrdoren \u00e7far\u00ebdo ZooKeeper-i. N\u00ebse kompania ka nj\u00eb ZooKeeper t\u00eb jasht\u00ebm, at\u00ebher\u00eb mund ta p\u00ebrdorim at\u00eb. N\u00ebse jo, mund t\u00eb instalojm\u00eb nga depoja jon\u00eb. Ka nj\u00eb installer q\u00eb e b\u00ebn k\u00ebt\u00eb pun\u00eb m\u00eb t\u00eb leht\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>K\u00ebtu \u00ebsht\u00eb skema e bashk\u00ebveprimit t\u00eb gjith\u00eb sistemit. Kemi Kubernetes si platform\u00eb. Atje ekzekutohet operatori ClickHouse. ZooKeeper e kam paraqitur k\u00ebtu. Dhe operatori bashk\u00ebpunon si me ClickHouse, ashtu edhe me ZooKeeper. Pra, kemi bashk\u00ebveprim. <\/p>\n<p><\/p>\n<p>Dhe gjith\u00e7ka kjo \u00ebsht\u00eb e nevojshme q\u00eb ClickHouse t\u00eb ngashmoj\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 klaster\u00ebve 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 vet\u00eb detyr\u00ebn, se si do t\u00eb duket manifesti p\u00ebr replikimin.<\/p>\n<p><\/p>\n<p>Ne i shtojm\u00eb dy seksione manifestit ton\u00eb. E para \u2013 \u00ebsht\u00eb se nga mund t\u00eb marr\u00eb ZooKeeper, i cili mund t\u00eb jet\u00eb brenda Kubernetes, ose t\u00eb jashtme. Kjo \u00ebsht\u00eb thjesht nj\u00eb p\u00ebrshkrim. Dhe k\u00ebrkojm\u00eb replikat. Pra, ne duam dy replika. N\u00eb p\u00ebrfundim, do t\u00eb kemi 4 pod-e. P\u00ebr ruajtjen kujtojm\u00eb, ajo do t\u00eb kthehet pak m\u00eb von\u00eb. Ruajtja \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 klaster\u00ebve 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 klaster\u00ebve 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 u fut, ne besojm\u00eb q\u00eb atje mund t\u00eb ket\u00eb shum\u00eb. Dhe n\u00eb an\u00eb shtohet ZooKeeper. Skemat po komplikohet. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 erdhi koha t\u00eb shtojm\u00eb detyr\u00ebn tjet\u00ebr. Do t\u00eb shtojm\u00eb Ruajtje t\u00eb P\u00ebrhershme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve t\u00eb DB. Vladislav Klimenko (Altinity, 2019)\" src=\"\/wp-content\/uploads\/2020\/10\/f28d14901a713eca413a52ec6ea21ac5.jpeg\" style=\"display:block;margin: 0 auto;\" \/>P\u00ebr Ruajtjen e P\u00ebrhershme kemi mund\u00ebsi t\u00eb ndryshme ekzekutimi.<\/p>\n<p><\/p>\n<p>N\u00eb rast se ne ekzekutojm\u00eb n\u00eb nj\u00eb ofrues cloud, p\u00ebr shembull, duke p\u00ebrdorur Amazon, Google, ka nj\u00eb joshje t\u00eb madhe p\u00ebr t\u00eb p\u00ebrdorur ruajtjen cloud. Kjo \u00ebsht\u00eb shum\u00eb e convenient, kjo \u00ebsht\u00eb mir\u00eb. <\/p>\n<p><\/p>\n<p>Dhe ka nj\u00eb opsion tjet\u00ebr. Kjo \u00ebsht\u00eb p\u00ebr ruajtjen lokale, kur disk\u00ebt jan\u00eb lokale n\u00eb \u00e7do nod. Ky opsion \u00ebsht\u00eb shum\u00eb m\u00eb i komplikuar n\u00eb ekzekutim, por n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb \u00ebsht\u00eb m\u00eb i efektsh\u00ebm. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 n\u00eb lidhje me ruajtjen cloud.<\/p>\n<p><\/p>\n<p>Ka avantazhe. \u00cbsht\u00eb shum\u00eb e leht\u00eb p\u00ebr t'u konfiguruar. Ne thjesht k\u00ebrkojm\u00eb nga ofruesi cloud, q\u00eb na jepni, ju lutem, ruajtjen e till\u00eb me kapacitet t\u00eb till\u00eb, t\u00eb k\u00ebtij klas\u00eb. Klasat jan\u00eb p\u00ebrshkruar nga ofruesit vet\u00eb. <\/p>\n<p><\/p>\n<p>Dhe ka nj\u00eb mang\u00ebsi. P\u00ebr dik\u00eb ky \u00ebsht\u00eb nj\u00eb mang\u00ebsi q\u00eb nuk \u00ebsht\u00eb kritike. Sigurisht, do t\u00eb ket\u00eb ndonj\u00eb zhvillim t\u00eb performanc\u00ebs. \u00cbsht\u00eb shum\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr pun\u00eb, i besuesh\u00ebm, por ka disa rreziqe potenciale p\u00ebr performanc\u00ebn.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 se nxjerr maksimumin e mundsh\u00ebm, 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 klaster\u00ebve 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 arritur maksimumin, na nevojitet ruajtja lokale.<\/p>\n<p><\/p>\n<p>Kubernetes ofron tre abstraksione p\u00ebr t\u00eb p\u00ebrdorur ruajtjen lokale 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 shqyrtojm\u00eb se si ndryshojn\u00eb dhe si jan\u00eb t\u00eb ngjash\u00ebm. <\/p>\n<p><\/p>\n<p>S\u00eb pari, n\u00eb t\u00eb tre qasjet ruajtja p\u00ebrb\u00ebn disqet lokale q\u00eb ndodhen n\u00eb t\u00eb nj\u00ebjt\u00ebn nod\u00eb fizike k8s. Por ato kan\u00eb disa ndryshime.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>T\u00eb fillojm\u00eb me gj\u00ebn\u00eb m\u00eb t\u00eb thjesht\u00eb, pra me emptyDir. \u00c7far\u00eb \u00ebsht\u00eb kjo n\u00eb praktik\u00eb? Kjo \u00ebsht\u00eb kur ne i k\u00ebrkojm\u00eb sistemit t\u00eb kontenjer\u00ebve (m\u00eb shpesh \u00ebsht\u00eb docker) q\u00eb t\u00eb na jap\u00eb akses n\u00eb nj\u00eb dosje n\u00eb diskun lokal.<\/p>\n<p><\/p>\n<p>N\u00eb praktik\u00eb, docker krijon ndonj\u00ebher\u00eb nj\u00eb dosje t\u00eb p\u00ebrkohshme n\u00eb rrug\u00ebt e tij t\u00eb veta, e em\u00ebrton at\u00eb me nj\u00eb hash t\u00eb gjat\u00eb. Dhe ofron nj\u00eb nd\u00ebrfaqe p\u00ebr aksesin n\u00eb t\u00eb. <\/p>\n<p><\/p>\n<p>Si do t\u00eb funksionoj\u00eb kjo p\u00ebr sa i p\u00ebrket performanc\u00ebs? Kjo do t\u00eb funksionoj\u00eb me shpejt\u00ebsin\u00eb e diskut lokal, dmth. kjo \u00ebsht\u00eb plot\u00ebsisht e aksesueshme p\u00ebr diskun tuaj. <\/p>\n<p><\/p>\n<p>Por kjo ka nj\u00eb mang\u00ebsi t\u00eb vet. Persistente jan\u00eb mjaft t\u00eb dyshimta. Me l\u00ebvizjen e par\u00eb t\u00eb dockers me kontejner\u00ebt, Persistente humbin. N\u00ebse Kubernetes d\u00ebshiron, p\u00ebr ndonj\u00eb arsye, t\u00eb transferoj\u00eb k\u00ebt\u00eb Pod n\u00eb nj\u00eb disk tjet\u00ebr, at\u00ebher\u00eb t\u00eb dh\u00ebnat humbasin. <\/p>\n<p><\/p>\n<p>Ky qasje \u00ebsht\u00eb e mir\u00eb p\u00ebr teste, sepse shpejt\u00ebsia tregon tashm\u00eb normale, por p\u00ebr di\u00e7ka t\u00eb r\u00ebnd\u00ebsishme ky variant 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 klaster\u00ebve 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 kaluar dhe k\u00ebt\u00eb, mund t\u00eb shihni nj\u00eb vet\u00ebm dallim. Dosja \u00ebsht\u00eb shkuar nga docker drejtp\u00ebrdrejt n\u00eb nod\u00ebn Kubernetes. K\u00ebtu \u00ebsht\u00eb pak m\u00eb e thjesht\u00eb. Ne shkruajm\u00eb direkt rrug\u00ebn n\u00eb sistemin e skedar\u00ebve vendas, ku do t\u00eb doja t\u00eb ruaja t\u00eb dh\u00ebnat e mia. <\/p>\n<p><\/p>\n<p>Avantazhet e k\u00ebtij m\u00ebnyre jan\u00eb reale. Ky \u00ebsht\u00eb tashm\u00eb nj\u00eb Persistent i v\u00ebrtet\u00eb, madje klasik. T\u00eb dh\u00ebnat tona do t\u00eb shkruhen n\u00eb disk n\u00eb nj\u00eb adres\u00eb t\u00eb caktuar. <\/p>\n<p><\/p>\n<p>Ka there dhe disavantazhe. Kjo \u00ebsht\u00eb kompleksiteti i menaxhimit. Kubernetes-i yn\u00eb mund t\u00eb d\u00ebshiroj\u00eb t\u00eb l\u00ebviz\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\u00eb t\u00eb gjith\u00eb sistemit se l\u00ebvizja e k\u00ebtyre pod'\u00ebve mund t\u00eb b\u00ebhet vet\u00ebm n\u00eb ato n\u00f3d\u00eb ku keni di\u00e7ka t\u00eb montuar dhe jo m\u00eb shum\u00eb se nj\u00eb nod\u00eb n\u00eb nj\u00eb koh\u00eb. Kjo \u00ebsht\u00eb mjaft e komplikuar. <\/p>\n<p><\/p>\n<p>P\u00ebr k\u00ebto q\u00ebllime, ne si operator kemi krijuar shabllone p\u00ebr t\u00eb fshehur gjith\u00eb k\u00ebt\u00eb kompleksitet. Dhe do t\u00eb ishte e mjaftueshme t\u00eb thuash: 'Dua q\u00eb t\u00eb kem nj\u00eb instance ClickHouse p\u00ebr \u00e7do nod\u00eb fizike dhe n\u00eb k\u00ebt\u00eb rrug\u00eb'. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 gentleman\u00ebt nga Kubernetes-i vet\u00eb e kuptojn\u00eb se njer\u00ebzit duan t\u00eb ken\u00eb akses n\u00eb disqet fizike, prandaj ata ofrojn\u00eb nj\u00eb nivel t\u00eb tret\u00eb.<\/p>\n<p><\/p>\n<p>Ai quhet local. Diferenca me sliden e m\u00ebparshme praktikisht nuk ka. Vet\u00ebm se m\u00eb par\u00eb duhej t\u00eb b\u00ebnim me dor\u00eb q\u00eb k\u00ebto pod'\u00eb nuk mund t\u00eb l\u00ebvizeshin nga nj\u00eb nod\u00eb n\u00eb nj\u00eb tjet\u00ebr, sepse ata duhet t\u00eb ishin t\u00eb lidhur p\u00ebr nj\u00eb rrug\u00eb t\u00eb till\u00eb me disqin fizik lokal, dhe tani t\u00eb gjitha k\u00ebto njohuri inkapsulohen vet\u00eb n\u00eb Kubernetes. Dhe b\u00ebhet shum\u00eb m\u00eb e thjesht\u00eb p\u00ebr t'u konfiguruar.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>T\u00eb kthehemi n\u00eb detyr\u00ebn ton\u00eb praktike. T\u00eb kthehemi n\u00eb shabllonin YAML. K\u00ebtu kemi nj\u00eb storage t\u00eb v\u00ebrtet\u00eb. Jemi rikthyer n\u00eb k\u00ebt\u00eb. Ne p\u00ebrcaktojm\u00eb nj\u00eb shabllon klasike VolumeClaim si n\u00eb k8s. Dhe p\u00ebrshkruajm\u00eb se \u00e7far\u00eb storage-i duam.<\/p>\n<p><\/p>\n<p>Pas k\u00ebsaj, k8s do t\u00eb k\u00ebrkoj\u00eb storage. Do ta ndaj\u00eb at\u00eb n\u00eb StatefulSet. Dhe n\u00eb fund do ta kemi n\u00eb dispozicion ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Ishte nj\u00eb skem\u00eb e till\u00eb. Storage-i yn\u00eb i P\u00ebrhersh\u00ebm ishte e kuqe, q\u00eb si\u00e7 do t\u00eb na nxiste ta b\u00ebnim at\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 ajo b\u00ebhet e gjelb\u00ebr. Tani skema e klasterit ClickHouse mbi k8s \u00ebsht\u00eb plot\u00ebsisht finalizuar. Kemi sharde, replika, ZooKeeper, kemi nj\u00eb Persistent t\u00eb v\u00ebrtet\u00eb, i cili realizohet n\u00eb nj\u00eb m\u00ebnyr\u00eb ose nj\u00eb tjet\u00ebr. Skema tashm\u00eb \u00ebsht\u00eb plot\u00ebsisht funksionale. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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. Klasteri yn\u00eb po zhvillohet. Dhe \u0410\u043b\u0435\u043a\u0441\u0435\u0439 po p\u00ebrpiqet, duke l\u00ebshuar nj\u00eb version t\u00eb ri t\u00eb ClickHouse.<\/p>\n<p><\/p>\n<p>Shkaktohet nj\u00eb detyr\u00eb praktike \u2013 t\u00eb testojm\u00eb versionin e ri t\u00eb ClickHouse n\u00eb klasterin ton\u00eb. Dhe, natyrisht, nuk d\u00ebshirojm\u00eb ta p\u00ebrdit\u00ebsojm\u00eb krejt, d\u00ebshirojm\u00eb ta vendosim nj\u00eb version t\u00eb ri n\u00eb nj\u00eb replika ndoshta n\u00eb nj\u00eb qoshe t\u00eb larg\u00ebt, dhe ndoshta jo nj\u00eb version t\u00eb ri, por dy menj\u00ebher\u00eb, pasi ato 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 klaster\u00ebve 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 shabllon\u00eb pod\u2019ash. Mund t\u00eb detajojm\u00eb, operatori yn\u00eb lejon plot\u00ebsisht nd\u00ebrtimin e nj\u00eb klasteri heterogjen. Dometh\u00ebn\u00eb, konfigurojm\u00eb nga t\u00eb gjitha replikat n\u00eb grumbull, deri te \u00e7do replik\u00eb individuale me versionin q\u00eb duam p\u00ebr ClickHouse, cilin version duam p\u00ebr storage. Mund t\u00eb konfigurojm\u00eb plot\u00ebsisht nj\u00eb klaster me konfigurimin q\u00eb na nevojitet. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Tani do t\u00eb thellojm\u00eb pak m\u00eb shum\u00eb. Deri tani kemi folur se si funksionon ClickHouse-operatori n\u00eb lidhje me specifikat e ClickHouse.<\/p>\n<p><\/p>\n<p>Tani do doja t\u00eb thosha disa fjal\u00eb mbi m\u00ebnyr\u00ebn se si funksionon \u00e7do operator, si dhe si bashk\u00ebvepron me K8s.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 bashk\u00ebveprimin me K8s p\u00ebr fillim. \u00c7far\u00eb ndodh kur b\u00ebjm\u00eb kubectl apply? Objekte tona shfaqen p\u00ebrmes API n\u00eb etcd. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 t\u00eb Kubernetes: pod, StatefulSet, sh\u00ebrbim dhe k\u00ebshtu me radh\u00eb. <\/p>\n<p><\/p>\n<p>Megjithat\u00eb, asgj\u00eb fizike nuk ndodh ende. K\u00ebto objekte duhet t\u00eb materializohen n\u00eb klaster. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 kontrolluesi. Kontrolluesi \u00ebsht\u00eb nj\u00eb komponent i ve\u00e7ant\u00eb K8s q\u00eb di si t\u00eb materializoj\u00eb k\u00ebto p\u00ebrshkrime. Ai di se \u00e7far\u00eb dhe si duhet b\u00ebr\u00eb fizikisht. Ai di si t\u00eb aktivizoj\u00eb kontejner\u00ebt, \u00e7far\u00eb duhet t\u00eb konfigurohet n\u00eb m\u00ebnyr\u00eb 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 klaster\u00ebve 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 operojm\u00eb jo vet\u00ebm me pod-a, StatefulSet-a, por duam t\u00eb krijojm\u00eb ClickHouseInstallation, dometh\u00ebn\u00eb, nj\u00eb objekt t\u00eb tipit ClickHouse, p\u00ebr ta operuar si nj\u00eb nj\u00ebsi t\u00eb vetme. Aktualisht, kjo mund\u00ebsi nuk ekziston. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 di\u00e7ka tjet\u00ebr t\u00eb k\u00ebndshme. Ne duam q\u00eb t\u00eb kemi ndonj\u00ebher\u00eb nj\u00eb entitet t\u00eb till\u00eb t\u00eb komplikuar, n\u00eb t\u00eb cilin do t\u00eb ishte i grumbulluar klasteri yn\u00eb nga pod\u2019ash dhe StatefulSet. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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, dalin p\u00ebrpara Definimi i Burimeve t\u00eb Personalizuara. \u00c7far\u00eb \u00ebsht\u00eb kjo? Ky \u00ebsht\u00eb nj\u00eb p\u00ebrshkrim p\u00ebr K8s q\u00eb do t\u00eb kemi nj\u00eb lloj t\u00eb dh\u00ebnash t\u00eb tjera, q\u00eb d\u00ebshirojm\u00eb t\u00eb shtojm\u00eb nj\u00eb burim t\u00eb personalizuar n\u00eb pod, StatefulSet, i cili do t\u00eb jet\u00eb kompleks brenda. Ky \u00ebsht\u00eb nj\u00eb p\u00ebrshkrim 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 klaster\u00ebve 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 gjithashtu at\u00eb p\u00ebrmes kubectl apply. Kubernetes e pranoi me g\u00ebzim. <\/p>\n<p><\/p>\n<p>Dhe tani kemi n\u00eb ruajtje, te objekti n\u00eb etcd, mund\u00ebsin\u00eb p\u00ebr t\u00eb regjistruar nj\u00eb burim t\u00eb personalizuar me emrin ClickHouseInstallation.<\/p>\n<p><\/p>\n<p>Por tani, asgj\u00eb m\u00eb tej nuk do t\u00eb ndodh\u00eb. Q\u00eb do t\u00eb thot\u00eb, n\u00ebse tani krijojm\u00eb nj\u00eb skedar YAML, i cili e kemi shqyrtuar me p\u00ebrshkrimin e shardit, replika dhe themi \"kubectl apply\", Kubernetes do ta pranoj\u00eb, do ta vendos\u00eb n\u00eb etcd dhe do t\u00eb thot\u00eb: \"Mir\u00eb, por nuk di \u00e7far\u00eb t\u00eb b\u00ebj me t\u00eb. Si ta menaxhoj ClickHouseInstallation nuk e di.\" <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 do t\u00eb ndihmoj\u00eb Kubernetes t\u00eb menaxhoj\u00eb nj\u00eb lloj t\u00eb ri t\u00eb dh\u00ebnash. Nga ana e majt\u00eb kemi nj\u00eb kontrollues t\u00eb rregullt t\u00eb Kubernetes, i cili punon me llojet e zakonshme t\u00eb t\u00eb dh\u00ebnave. Nd\u00ebrsa nga ana e djatht\u00eb duhet t\u00eb shfaqet nj\u00eb kontrollues personalizuar, i cili 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 k\u00ebtu jasht\u00eb Kubernetes, sepse ai mund t\u00eb ekzekutohet edhe jasht\u00eb K8s. N\u00eb shumic\u00ebn e rasteve, sigurisht, t\u00eb gjith\u00eb operator\u00ebt ekzekutohen n\u00eb Kubernetes, por asgj\u00eb nuk e pengon at\u00eb t\u00eb q\u00ebndroj\u00eb jasht\u00eb, prandaj k\u00ebtu \u00ebsht\u00eb nxjerr\u00eb ve\u00e7mas. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 tashm\u00eb kontrolluesi personalizuar, i njohur si operator, bashk\u00ebvepron me Kubernetes p\u00ebrmes API-s\u00eb. Ai tashm\u00eb di t\u00eb bashk\u00ebveproj\u00eb me API-n\u00eb. Dhe ai tashm\u00eb di si t\u00eb materializoj\u00eb nj\u00eb skem\u00eb t\u00eb komplikuar nga burimi personalizuar, q\u00eb d\u00ebshirojm\u00eb t\u00eb krijojm\u00eb. K\u00ebt\u00eb sakt\u00ebsisht b\u00ebn operatori. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 hedhim nj\u00eb sy n\u00eb an\u00ebn e djatht\u00eb p\u00ebr t\u00eb zbuluar se si e b\u00ebn k\u00ebt\u00eb. Do t\u00eb kuptojm\u00eb se si operatori materializon gjith\u00e7ka dhe si vazhdon bashk\u00ebveprimi me K8s.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 \u00ebsht\u00eb nj\u00eb program. Ai \u00ebsht\u00eb i orientuar nga ngjarjet. Operatorin me an\u00eb t\u00eb API-s\u00eb s\u00eb Kubernetes n\u00ebnshkruan p\u00ebr ngjarje. N\u00eb API-n\u00eb e Kubernetes ka pika hyr\u00ebse ku mund t\u00eb n\u00ebnshkruhen ngjarje. Dhe n\u00ebse di\u00e7ka ndryshon n\u00eb K8s, at\u00ebher\u00eb Kubernetes d\u00ebrgon ngjarje te t\u00eb gjith\u00eb ata q\u00eb e duan, dmth. ai q\u00eb \u00ebsht\u00eb n\u00ebnshkruar n\u00eb k\u00ebt\u00eb pik\u00eb API do t\u00eb marr\u00eb njoftime.<\/p>\n<p><\/p>\n<p>Operatori n\u00ebnshkruhet p\u00ebr ngjarje dhe duhet t\u00eb b\u00ebj\u00eb ndonj\u00eb reagim. 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 klaster\u00ebve 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 azhurnime. Vjen skedari yn\u00eb YAML me p\u00ebrshkrimin e ClickHouseInstallation. Ai shkoi n\u00eb etcd p\u00ebrmes kubectl apply. Aty ndodhi nj\u00eb ngjarje, dhe n\u00eb p\u00ebrfundim, kjo ngjarje erdhi n\u00eb ClickHouse-operator. Operatori mori k\u00ebt\u00eb p\u00ebrshkrim. Dhe ai duhet t\u00eb b\u00ebj\u00eb di\u00e7ka. N\u00ebse ka ardhur nj\u00eb azhurnim n\u00eb objektin ClickHouseInstallation, at\u00ebher\u00eb duhet t\u00eb azhurnojm\u00eb klasterin. Dhe detyra e operatorit \u00ebsht\u00eb t\u00eb azhurnoj\u00eb klasterin. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 hartojm\u00eb nj\u00eb plan veprimi, se \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 aplikimin YAML, por mund t\u00eb sjellin ndryshime shum\u00eb t\u00eb m\u00ebdha n\u00eb klaster. Prandaj, operatori krijon nj\u00eb plan dhe m\u00eb pas e ndjek at\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 k\u00ebt\u00eb struktur\u00eb brenda, p\u00ebr t\u00eb materializuar pod\u2019\u00ebt, sh\u00ebrbimet, dmth, t\u00eb b\u00ebj\u00eb at\u00eb q\u00eb \u00ebsht\u00eb detyra e tij kryesore. \u00cbsht\u00eb si nd\u00ebrtimi i nj\u00eb klasteri ClickHouse n\u00eb Kubernetes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 ndarja e p\u00ebrgjegj\u00ebsis\u00eb midis Kubernetes dhe operatorit, dmth, \u00e7far\u00eb b\u00ebn Kubernetes, \u00e7far\u00eb b\u00ebn operatori dhe si interaktojn\u00eb ata me nj\u00ebri-tjetrin. <\/p>\n<p><\/p>\n<p>Kubernetes \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr gj\u00ebrat sistemore, dmth, p\u00ebr grupin baz\u00eb t\u00eb objekteve, q\u00eb mund t\u00eb interpretohen si sistem i gjer\u00eb. Kubernetes di si t\u00eb nis\u00eb pod\u2019\u00ebt, si t\u00eb rihap\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 fushat tematike. \u00c7do operator b\u00ebhet p\u00ebr fush\u00ebn e tij tematike. 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\u00e7 jan\u00eb shtimi i nj\u00eb kopjeje, krijimi i nj\u00eb skeme, konfigurimi i monitorimit. K\u00ebshtu krijohet nj\u00eb ndarje.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 shikojm\u00eb nj\u00eb shembull praktik, si ndodh kjo ndarje p\u00ebrgjegj\u00ebsish kur ne performojm\u00eb veprimin shto nj\u00eb kopje. <\/p>\n<p><\/p>\n<p>N\u00eb operator vjen detyra \u2013 shto nj\u00eb kopje. \u00c7far\u00eb b\u00ebn operatori? Operatorit do t\u00eb llogaris\u00eb se duhet t\u00eb krijoj\u00eb nj\u00eb StatefulSet t\u00eb ri, n\u00eb t\u00eb cilin duhet t\u00eb p\u00ebrshkruaj\u00eb disa shabllone, k\u00ebrkes\u00ebn p\u00ebr volume. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 gjith\u00e7ka dhe e kalon m\u00eb tej n\u00eb K8s. I thot\u00eb se i nevojitet ConfigMap, StatefulSet, Volume. Kubernetes punon. Ai materializon nj\u00ebsit\u00eb baz\u00eb me t\u00eb cilat operon. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 m\u00eb pas p\u00ebrs\u00ebri nd\u00ebrhyn ClickHouse-operatori. Ai tashm\u00eb ka nj\u00eb pod fizik, n\u00eb t\u00eb cilin mund t\u00eb b\u00ebj\u00eb di\u00e7ka. Dhe ClickHouse-operatori punon p\u00ebrs\u00ebri n\u00eb terma t\u00eb fush\u00ebs tematike. Pra, konkretisht p\u00ebr ClickHouse, p\u00ebr t\u00eb p\u00ebrfshir\u00eb nj\u00eb kopje n\u00eb klaster, duhet, s\u00eb pari, t\u00eb konfigurohet skema e t\u00eb dh\u00ebnave q\u00eb ka ky klaster. Dhe s\u00eb dyti, kjo kopje duhet t\u00eb p\u00ebrfshihet n\u00eb monitorim, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb jet\u00eb e leht\u00eb p\u00ebr t'u ndjekur. Kjo tashm\u00eb e konfigurimin nga operatori. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 merr pjes\u00eb vet\u00eb ClickHouse, pra nj\u00eb entitet tjet\u00ebr m\u00eb i lart\u00eb. Kjo \u00ebsht\u00eb tashm\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash. Ajo ka instanc\u00ebn e saj, nj\u00eb replik\u00eb t\u00eb re konfiguruar, e cila \u00ebsht\u00eb e gatshme t\u00eb bashkohet me klasterin.<\/p>\n<p><\/p>\n<p>Pra, krijohet nj\u00eb zinxhir p\u00ebr\u6267\u884c\u548c\u5206\u8d23\u4efb\u5728\u6dfb\u52a0\u590d\u5236\u54c1 \u00ebsht\u00eb mjaft i gjat\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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, mund t\u00eb kryhet migrimi i konfiguracionit. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Ne e b\u00ebm\u00eb q\u00eb n\u00eb xml ekzistues, i cili kuptohet nga ClickHouse, mund t\u00eb kalojn\u00eb p\u00ebrmes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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\u00ebhet nj\u00eb konfigurim i sakt\u00eb i ClickHouse. Pik\u00ebrisht implementimi me zona \u00ebsht\u00eb ajo p\u00ebr t\u00eb cil\u00ebn flasja gjat\u00eb shpjegimit t\u00eb hostPath, ruajtjes lokale. K\u00ebshtu \u00ebsht\u00eb si\u00e7 duhet t\u00eb b\u00ebhet implementimi me zona.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 e ardhshme praktike \u00ebsht\u00eb monitorimi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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, duhet t\u00eb p\u00ebrshtatni monitorimin periodikisht. <\/p>\n<p><\/p>\n<p>Le t\u00eb shqyrtojm\u00eb skem\u00ebn. Ne kemi shqyrtuar tashm\u00eb \u0441\u0442\u0440\u0435\u043b\u043a\u0438\u0442\u0435 \u0437\u0435\u043b\u0435\u043d\u0435. Tani le t\u00eb shqyrtojm\u00eb \u0441\u0442\u0440\u0435\u043b\u043a\u0438\u0442\u0435 e kuqe. Ky \u00ebsht\u00eb m\u00ebnyra si duam t\u00eb monitorojm\u00eb klasterin ton\u00eb. Si metrikat nga klasteri ClickHouse kalojn\u00eb n\u00eb Prometheus dhe m\u00eb pas n\u00eb Grafana.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Dhe cila \u00ebsht\u00eb v\u00ebshtir\u00ebsia me monitorimin? Pse ky proces nxirret si nj\u00eb arritje? V\u00ebshtir\u00ebsia \u00ebsht\u00eb pik\u00ebrisht n\u00eb dinamike. Kur kemi nj\u00eb klaster dhe ai \u00ebsht\u00eb static, mund t\u00eb konfigurojm\u00eb monitorimin nj\u00eb her\u00eb dhe m\u00eb pas t\u00eb mos shqet\u00ebsohemi m\u00eb.<\/p>\n<p><\/p>\n<p>Por n\u00ebse kemi shum\u00eb klastere, ose gjithmon\u00eb di\u00e7ka ndryshon, procesi \u00ebsht\u00eb dinamik. Dhe t\u00eb b\u00ebsh rregullime t\u00eb vazhdueshme n\u00eb monitorim \u00ebsht\u00eb nj\u00eb humbje burimesh dhe kohe, pra madje \u00ebsht\u00eb vet\u00ebm m\u00ebndje. 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 klaster\u00ebve 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 ai ishte k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 ai ishte k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 klaster\u00ebve 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 vet\u00ebm shikojm\u00eb t\u00eb dh\u00ebnat n\u00eb Grafana dashboard, si po jeton klasteri yn\u00eb brenda. <\/p>\n<p><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, Grafana dashboard shp\u00ebrndahet gjithashtu me operatorin ton\u00eb direkt n\u00eb burimin. Mund ta lidhni dhe ta p\u00ebrdorni. Ky \u00ebsht\u00eb screenshot-i q\u00eb na dha DevOps-i yn\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 d\u00ebshirojm\u00eb t\u00eb shkojm\u00eb 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 automatik i versioneve t\u00eb reja. <\/li>\n<li>Ne duam shum\u00eb t\u00eb automatizojm\u00eb integrimin me ZooKeeper. Gjithashtu, kemi n\u00eb plan t\u00eb integrohemi me ZooKeeper-operator. Dometh\u00ebn\u00eb, p\u00ebr ZooKeeper \u00ebsht\u00eb shkruar nj\u00eb operator dhe \u00ebsht\u00eb logjike q\u00eb dy operator\u00eb 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\u00ebgjat\u00ebsis\u00eb. <\/li>\n<li>E theksova me gjelb\u00ebr at\u00eb q\u00eb na pret trash\u00ebgimi e Templates \u2013 PUN\u00cb E PLOT\u00cb, dometh\u00ebn\u00eb me versionin e ardhsh\u00ebm t\u00eb operatorit do t\u00eb kemi tashm\u00eb trash\u00ebgimi t\u00eb shabllon\u00ebve. Ky \u00ebsht\u00eb nj\u00eb mjet i fuqish\u00ebm q\u00eb lejon nd\u00ebrtimin e konfigurimeve t\u00eb komplikuara nga pjes\u00ebt. <\/li>\n<li>Dhe ne duam automatizimin e detyrave komplekse. Kryesorja nga to \u00ebsht\u00eb Re-sharding. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 nd\u00ebrmjet\u00ebs. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 n\u00eb fund? Dhe a ja vlen t\u00eb merremi me k\u00ebt\u00eb apo jo? A duhet t\u00eb p\u00ebrpiqemi t\u00eb t\u00ebrheqim baz\u00ebn e t\u00eb dh\u00ebnave n\u00eb Kubernetes dhe t\u00eb p\u00ebrdorim operatorin n\u00eb p\u00ebrgjith\u00ebsi dhe Alitnity-operatorin n\u00eb ve\u00e7anti.<\/p>\n<p><\/p>\n<p>N\u00eb fund marrim:<\/p>\n<p><\/p>\n<ul>\n<li>Nj\u00eb thjeshtim dhe automatizim t\u00eb konsideruesh\u00ebm t\u00eb konfigurimit, zhvillimit, si dhe mb\u00ebshtetjes. <\/li>\n<li>Monitoring i integruar menj\u00ebher\u00eb. <\/li>\n<li>Dhe shabllone t\u00eb kodifikuara t\u00eb gatshme p\u00ebr situata komplekse. Veprime si t\u00eb shtosh nj\u00eb replik\u00eb nuk duhet t\u00eb b\u00ebhen me dor\u00eb. 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 klaster\u00ebve 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. Ne tashm\u00eb kemi baz\u00ebn e t\u00eb dh\u00ebnave n\u00eb Kubernetes, virtualizim. Si \u00ebsht\u00eb performanca e nj\u00eb zgjidhjeje t\u00eb till\u00eb, duke marr\u00eb parasysh se ClickHouse \u00ebsht\u00eb optimizuar p\u00ebr performanc\u00eb?<\/p>\n<p><\/p>\n<p>P\u00ebrgjigja \u00ebsht\u00eb \u2013 gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull! Nuk do e shpjegoj n\u00eb detaje, ky \u00ebsht\u00eb nj\u00eb tem\u00eb e nj\u00eb raporti tjet\u00ebr. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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 t\u00eb till\u00eb si TSBS. Cila \u00ebsht\u00eb q\u00ebllimi i tij kryesor? Ky \u00ebsht\u00eb nj\u00eb test p\u00ebr performanc\u00ebn e bazave t\u00eb t\u00eb dh\u00ebnave. Kjo \u00ebsht\u00eb nj\u00eb p\u00ebrpjekje p\u00ebr t\u00eb krahasuar t\u00eb ngrohtat me t\u00eb ngrohta, t\u00eb butat me t\u00eb buta. <\/p>\n<p><\/p>\n<p>Si funksionon ai? Gjenerohet nj\u00eb grup i dh\u00ebnash. Pastaj ky grup i dh\u00ebnash kalon n\u00eb teste t\u00eb nj\u00ebjta mbi baza t\u00eb ndryshme t\u00eb t\u00eb dh\u00ebnave. Dhe \u00e7do baz\u00eb t\u00eb dh\u00ebnash zgjidh nj\u00eb problem ashtu si\u00e7 di t\u00eb b\u00ebj\u00eb. M\u00eb pas mund t\u00eb krahasosh rezultatet. <\/p>\n<p><\/p>\n<p>Ai tashm\u00eb mb\u00ebshtet nj\u00eb mori t\u00eb madhe bazash t\u00eb t\u00eb dh\u00ebnave. Kam theksuar tre kryesoret. 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 klaster\u00ebve 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 gjitha n\u00eb k\u00ebt\u00eb aspekt. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Operatori n\u00eb Kubernetes p\u00ebr menaxhimin e klaster\u00ebve 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>Cilat p\u00ebrfundime mund t\u00eb nxirren nga ajo q\u00eb kam treguar?<\/p>\n<p><\/p>\n<ul>\n<li>DB n\u00eb Kubernetes \u00ebsht\u00eb i mundur. M\u00eb vjen keq, ndoshta mund t\u00eb jet\u00eb \u00e7do lloj, por n\u00eb p\u00ebrgjith\u00ebsi duket se \u00ebsht\u00eb e mundur. ClickHouse n\u00eb Kubernetes me siguri \u00ebsht\u00eb e mundur fal\u00eb operatorit ton\u00eb. <\/li>\n<li>Operatori ndihmon n\u00eb automatizimin e proceseve dhe v\u00ebrtet leht\u00ebson jet\u00ebn.<\/li>\n<li>Performanca \u00ebsht\u00eb normale.<\/li>\n<li>Dhe, na duket se kjo 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 kam th\u00ebn\u00eb m\u00eb par\u00eb, operatori \u00ebsht\u00eb nj\u00eb produkt plot\u00ebsisht open source, prandaj do t\u00eb ishte shum\u00eb e mir\u00eb n\u00ebse numri maksimal i njer\u00ebzve e p\u00ebrdor at\u00eb. Bashkohuni! Ne po ju presim ju t\u00eb gjith\u00eb!<\/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 klaster\u00ebve 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 raportin! Un\u00eb quhem Anton. Jam nga kompania SEMrush. M\u00eb intereson \u00e7\u00ebshtja e logimit. P\u00ebr monitorimin ka informacion, por p\u00ebr logimin asgj\u00eb, n\u00ebse flasim p\u00ebr klasterin n\u00eb t\u00ebr\u00ebsi. Ne, p\u00ebr shembull, kemi ngritur nj\u00eb klaster n\u00eb pajisje. Dhe ne p\u00ebrdorim logimin qendror, mbledhim me mjete standarde n\u00eb nj\u00eb grumbull t\u00eb p\u00ebrbashk\u00ebt. Dhe pastaj e nxjerrim informacionin q\u00eb na intereson nga atje.<\/em> <\/p>\n<p><\/p>\n<p>Nj\u00eb pyetje e mir\u00eb, pra, logimi \u00ebsht\u00eb n\u00eb list\u00ebn e pun\u00ebve. Operator nuk e automatizon ende k\u00ebt\u00eb. Ai ende po zhvillohet, projekti \u00ebsht\u00eb ende mjaft i ri. Ne e kuptojm\u00eb domosdoshm\u00ebrin\u00eb e logimit. Kjo gjithashtu \u00ebsht\u00eb nj\u00eb tem\u00eb shum\u00eb e r\u00ebnd\u00ebsishme. Dhe ndoshta nuk \u00ebsht\u00eb m\u00eb pak e r\u00ebnd\u00ebsishme se monitorimi. Por e para n\u00eb list\u00ebn p\u00ebr realizim ka qen\u00eb monitorimi. Logimi do t\u00eb vij\u00eb. Ne, natyrisht, p\u00ebrpiqemi t\u00eb automatizojm\u00eb t\u00eb gjitha aspektet e jet\u00ebs s\u00eb klasterit. Prandaj p\u00ebrgjigjja \u2013 p\u00ebr momentin operatori, fatkeq\u00ebsisht, nuk e di k\u00ebt\u00eb, por \u00ebsht\u00eb n\u00eb planet tona, do ta b\u00ebjm\u00eb. N\u00ebse keni d\u00ebshir\u00eb t\u00eb bashkoheni, at\u00ebher\u00eb b\u00ebni nj\u00eb pull request, ju lutem.<\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr raportin! Kam nj\u00eb pyetje standarde, t\u00eb lidhur me V\u00ebllimet e P\u00ebrhershme. Kur krijojm\u00eb nj\u00eb konfiguracion me k\u00ebt\u00eb operator, si e p\u00ebrcakton operatori se n\u00eb cilin nod\u00eb \u00ebsht\u00eb montuar ndonj\u00eb disk, ose dosje? A duhet ta sqarojm\u00eb paraprakisht se, ju lutem, vendosni ClickHouse ton\u00eb pik\u00ebrisht n\u00eb k\u00ebto nod\u00eb, n\u00eb t\u00eb cilat ka disk?<\/em><\/p>\n<p><\/p>\n<p>Sipas asaj q\u00eb kuptoj, kjo pyetje \u00ebsht\u00eb nj\u00eb vazhdim i ruajtjes lokale, ve\u00e7an\u00ebrisht pjes\u00ebs s\u00eb saj p\u00ebr hostPath. \u00cbsht\u00eb si t\u00eb shpjegosh gjith\u00eb sistemin se duhet q\u00eb pod-i t\u00eb jet\u00eb aktivizuar pik\u00ebrisht n\u00eb nj\u00eb nod\u00eb t\u00eb till\u00eb, n\u00eb t\u00eb cil\u00ebn kemi disk fizik t\u00eb lidhur, i cili \u00ebsht\u00eb montuar n\u00eb nj\u00eb rrug\u00eb t\u00eb till\u00eb. Kjo \u00ebsht\u00eb nj\u00eb seksion e t\u00ebr\u00eb, t\u00eb cilin e kam prekur shum\u00eb sip\u00ebrfaq\u00ebsisht, sepse p\u00ebrgjigjja \u00ebsht\u00eb mjaft e gjat\u00eb. <\/p>\n<p><\/p>\n<p>N\u00eb thelb, kjo duket k\u00ebshtu. Natyrisht, na nevojitet t\u00eb b\u00ebjm\u00eb provisioning t\u00eb k\u00ebtyre volumes. Aktualisht, n\u00eb storage lokal nuk ka provisioning dinamik, prandaj DevOps duhet t\u00eb krijojn\u00eb vet\u00eb disk\u00ebt, k\u00ebto volumes. Ata duhet t\u00eb shpjegojn\u00eb Kubernetes provisioning, se do t\u00eb keni Persistent volumes t\u00eb nj\u00eb klase t\u00eb caktuar, t\u00eb cilat ndodhen n\u00eb node t\u00eb caktuar. M\u00eb pas, duhet t\u00eb shpjegohet Kubernetes, se pod\u2019\u00ebt q\u00eb k\u00ebrkojn\u00eb nj\u00eb klas\u00eb t\u00eb till\u00eb storage lokal, duhet t\u00eb planifikohen vet\u00ebm n\u00eb ato node, p\u00ebrmes labels. P\u00ebr k\u00ebto q\u00ebllime, operatori ka mund\u00ebsin\u00eb t\u00eb caktoj\u00eb nj\u00eb label dhe one per host instance. Dhe do t\u00eb rezultoj\u00eb se pod\u2019\u00ebt do t\u00eb rregullohen nga Kubernetes p\u00ebr t'u nisur vet\u00ebm n\u00eb node q\u00eb p\u00ebrmbushin k\u00ebrkesat e labels, duke folur n\u00eb terma t\u00eb thjesht\u00eb. Administrator\u00ebt caktojn\u00eb labels, b\u00ebjn\u00eb provisioning t\u00eb disk\u00ebve manualisht. Dhe at\u00ebher\u00eb kjo do t\u00eb shkall\u00ebzohet.<\/p>\n<p><\/p>\n<p>Dhe pik\u00ebrisht opsioni i tret\u00eb lokal ndihmon ta leht\u00ebsoj\u00eb k\u00ebt\u00eb. Si\u00e7 e kam theksuar, \u00ebsht\u00eb nj\u00eb pun\u00eb e im\u00ebt e konfigurimit, q\u00eb n\u00eb fund ndihmon p\u00ebr t\u00eb arritur performanc\u00ebn maksimale.<\/p>\n<p><\/p>\n<p><em>Kam nj\u00eb pyetje tjet\u00ebr, e lidhur me k\u00ebt\u00eb. Kubernetes \u00ebsht\u00eb menduar k\u00ebshtu, q\u00eb nuk ka r\u00ebnd\u00ebsi n\u00ebse humbim apo jo nj\u00eb node. \u00c7far\u00eb duhet t\u00eb b\u00ebjm\u00eb n\u00eb k\u00ebt\u00eb rast, n\u00ebse e humb\u00ebm node\u2019in ku ndodhet nj\u00eb shard?<\/em><\/p>\n<p><\/p>\n<p>Po, Kubernetes origjinalisht \u00ebsht\u00eb pozicionuar q\u00eb marr\u00ebdh\u00ebnia jon\u00eb me pod\u2019\u00ebt tan\u00eb \u00ebsht\u00eb si me bag\u00ebtit\u00eb, por k\u00ebtu \u00e7do disk b\u00ebhet si nj\u00eb kafsh\u00eb e dashur. Ka nj\u00eb problem, q\u00eb nuk mund t'i hedhim ata thjesht k\u00ebshtu. Dhe zhvillimi i Kubernetes shkon n\u00eb drejtimin q\u00eb nuk \u00ebsht\u00eb e mundur t\u00eb shohim gjith\u00e7ka filozofikisht si burime q\u00eb mund t\u00eb hidhen plot\u00ebsisht.<\/p>\n<p><\/p>\n<p>Tani, nj\u00eb pyetje praktike. \u00c7far\u00eb t\u00eb b\u00ebni, n\u00ebse ju ka humbur nj\u00eb node, n\u00eb t\u00eb cilin ishte disk? K\u00ebtu, detyra zgjidhet n\u00eb nj\u00eb nivel m\u00eb t\u00eb lart\u00eb. N\u00eb rastin e ClickHouse, kemi replika q\u00eb punojn\u00eb n\u00eb nj\u00eb nivel m\u00eb t\u00eb lart\u00eb, pra n\u00eb nivelin e ClickHouse.<\/p>\n<p><\/p>\n<p>Cila \u00ebsht\u00eb dispozita rezultuese? P\u00ebr t\u00eb siguruar q\u00eb t\u00eb dh\u00ebnat t\u00eb mos humbin \u00ebsht\u00eb p\u00ebrgjegj\u00ebsi e DevOps. Ai duhet ta konfiguronte si\u00e7 duhet replikimin dhe duhet t\u00eb p\u00ebrpiqet q\u00eb replikimi t\u00eb ekzekutohet. N\u00eb replik\u00ebn n\u00eb nivelin e ClickHouse, t\u00eb dh\u00ebnat duhet t\u00eb jen\u00eb t\u00eb duplikatuara. Kjo nuk \u00ebsht\u00eb nj\u00eb detyr\u00eb q\u00eb e zgjidh operatori. Dhe nuk \u00ebsht\u00eb nj\u00eb detyr\u00eb q\u00eb e zgjidh vet\u00eb Kubernetes. Kjo \u00ebsht\u00eb n\u00eb nivelin e ClickHouse.<\/p>\n<p><\/p>\n<p>\u00c7far\u00eb duhet t\u00eb b\u00ebni n\u00ebse nj\u00eb nod\u00eb e fort\u00eb ka r\u00ebn\u00eb? Duket se do t\u00eb duhet t\u00eb vendosni nj\u00eb t\u00eb dyt\u00eb, ta konfiguroni si\u00e7 duhet diskun, dhe t\u00eb aplikoni etiketat. Pas k\u00ebsaj, ajo do t\u00eb p\u00ebrmbush\u00eb k\u00ebrkesat q\u00eb Kubernetes mund t\u00eb filloj\u00eb nj\u00eb instanc\u00eb pod-i mbi t\u00eb. Kubernetes do ta nis\u00eb at\u00eb. Numri juaj i pod-eve nuk \u00ebsht\u00eb i mjaftuesh\u00ebm sipas k\u00ebrkesave. Ajo do t\u00eb kaloj\u00eb n\u00ebp\u00ebr ciklin q\u00eb un\u00eb tregova. Dhe n\u00eb nivelin m\u00eb t\u00eb lart\u00eb, ClickHouse do t\u00eb kuptoj\u00eb q\u00eb kemi nj\u00eb replik\u00eb, ajo \u00ebsht\u00eb ende bosh dhe duhet t\u00eb fillojm\u00eb t\u00eb transferojm\u00eb t\u00eb dh\u00ebna mbi t\u00eb. Pra, ky proces \u00ebsht\u00eb ende pak i automatizuar. <\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr elaborimin! Kur ndodhin disa gj\u00ebra t\u00eb k\u00ebqija, operatori bie dhe rilansohet, dhe n\u00eb k\u00ebt\u00eb moment ndodhin ngjarje, a e p\u00ebrpunoni ndonj\u00ebher\u00eb at\u00eb?<\/em><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb do t\u00eb ndodh\u00eb n\u00ebse operatori ka r\u00ebn\u00eb dhe \u00ebsht\u00eb rilansuar, apo jo? <\/p>\n<p><\/p>\n<p><em>Po. Dhe n\u00eb k\u00ebt\u00eb moment kan\u00eb ndodhur ngjarje.<\/em> <\/p>\n<p><\/p>\n<p>Detyra, \u00e7far\u00eb t\u00eb b\u00ebjm\u00eb n\u00eb k\u00ebt\u00eb rast, ndahen pjes\u00ebrisht midis operatorit dhe Kubernetes. Kubernetes ka mund\u00ebsin\u00eb t\u00eb riprodhoj\u00eb ngjarjen q\u00eb ndodhi. Ai e riprodhon. Dhe detyra e operatorit \u00ebsht\u00eb t\u00eb siguroj\u00eb q\u00eb kur i b\u00ebhet riprodhimi i logjeve t\u00eb ngjarjeve, k\u00ebto ngjarje t\u00eb jen\u00eb idempotente. Dhe p\u00ebr t\u00eb siguruar q\u00eb p\u00ebrs\u00ebritja e t\u00eb nj\u00ebjt\u00ebs ngjarje nuk shkakton d\u00ebme n\u00eb sistemin ton\u00eb. Dhe operatori yn\u00eb e kryen k\u00ebt\u00eb detyr\u00eb. <\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr elaborimin! Dmitry Zavyalov, kompani<\/em> <em>Smedova. A \u00ebsht\u00eb planifikuar shtimi i mund\u00ebsis\u00eb s\u00eb konfigurimit me haproxy n\u00eb operator? M\u00eb intereson ndonj\u00eb balancues tjet\u00ebr p\u00ebrve\u00e7 standardit, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb jet\u00eb inteligjent dhe t\u00eb kuptoj\u00eb se \u00e7far\u00eb \u00ebsht\u00eb realisht ClickHouse.<\/em> <\/p>\n<p><\/p>\n<p>A po 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 ndodhen replikat.<\/em><\/p>\n<p><\/p>\n<p>Derisa ne nuk kemi menduar p\u00ebr k\u00ebt\u00eb. N\u00ebse ju nevojitet dhe mund t\u00eb shpjegoni pse \u00ebsht\u00eb e nevojshme, mund ta realizojm\u00eb, n\u00eb ve\u00e7anti n\u00ebse d\u00ebshironi t\u00eb merrni pjes\u00eb. Ne do ta shqyrtojm\u00eb me k\u00ebnaq\u00ebsi k\u00ebt\u00eb mund\u00ebsi. P\u00ebrgjigjja e shkurt\u00ebr \u2013 jo, p\u00ebr momentin nuk kemi nj\u00eb funksionalitet t\u00eb till\u00eb. Faleminderit p\u00ebr sugjerimin, ne do ta shqyrtojm\u00eb at\u00eb. N\u00ebse gjithashtu shpjegoni rastin e p\u00ebrdorimit dhe pse \u00ebsht\u00eb e nevojshme n\u00eb praktik\u00eb, p\u00ebr shembull, krijoni issues n\u00eb GitHub, do t\u00eb ishte mrekulli.<\/p>\n<p><\/p>\n<p><em>Ajo ekziston tashm\u00eb.<\/em><\/p>\n<p><\/p>\n<p>Mir\u00eb. Ne jemi t\u00eb hapur p\u00ebr \u00e7do propozim. Dhe haproxy po shtohet n\u00eb list\u00ebn e pun\u00ebve p\u00ebr t'u b\u00ebr\u00eb. Lista e pun\u00ebve p\u00ebr t'u b\u00ebr\u00eb po rritet, dhe jo pak\u00ebsohet p\u00ebr momentin. Por kjo \u00ebsht\u00eb e mir\u00eb, do t\u00eb thot\u00eb q\u00eb 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.2 - 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.2\" \/>\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 klaster\u00ebve 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}]}}