{"id":91199,"date":"2020-08-10T01:42:03","date_gmt":"2020-08-09T23:42:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov"},"modified":"2020-08-10T01:42:03","modified_gmt":"2020-08-09T23:42:03","slug":"kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","title":{"rendered":"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>M\u00eb quajti Viktor Yagofarov, dhe un\u00eb merrem me zhvillimin e platform\u00ebs Kubernetes n\u00eb kompanin\u00eb DomKlik si udh\u00ebheq\u00ebs teknik i zhvillimit n\u00eb ekipin Ops (eksplorim). D\u00ebshiroj t\u00eb flas p\u00ebr organizimin e proceseve tona Dev  Ops, p\u00ebr karakteristikat e funksionimit t\u00eb nj\u00eb nga klasave m\u00eb t\u00eb m\u00ebdha k8s n\u00eb Rusi, si dhe p\u00ebr praktikat DevOps\/SRE q\u00eb ekipi yn\u00eb p\u00ebrdor.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/6c908104c734b36cc7a960fbe4d65e3f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Ekipi Ops<\/h4>\n<p>\nN\u00eb ekipin Ops aktualisht punojn\u00eb 15 persona. Tre prej tyre p\u00ebrgjigjen p\u00ebr zyr\u00ebn, dy punojn\u00eb n\u00eb nj\u00eb zon\u00eb tjet\u00ebr kohore dhe jan\u00eb t\u00eb disponuesh\u00ebm, p\u00ebrfshir\u00eb dhe nat\u00ebn. K\u00ebshtu, gjithmon\u00eb dikush nga Ops \u00ebsht\u00eb pran\u00eb monitorit dhe gati p\u00ebr t'u reaguar ndaj \u00e7do incidenti t\u00eb ndonj\u00eb v\u00ebshtir\u00ebsie. Ne nuk kemi turne nate, \u00e7ka ruan psikologjin\u00eb ton\u00eb dhe na jep mund\u00ebsin\u00eb t\u00eb gjith\u00ebve t\u00eb flejn\u00eb mjaftuesh\u00ebm dhe t\u00eb kalojn\u00eb koh\u00eb t\u00eb lir\u00eb jasht\u00eb kompjuterit.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/47051db273f116df376e64bad67c6f37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKompetencat jan\u00eb t\u00eb ndryshme p\u00ebr t\u00eb gjith\u00eb: specialist\u00ebt e rrjeteve, DBA, ekspert\u00ebt n\u00eb teknologjin\u00eb ELK, administrator\u00ebt\/zhvilluesit e Kubernetes, specialist\u00ebt p\u00ebr monitorim, virtualizim, hardware, etj. E p\u00ebrbashk\u00ebta midis t\u00eb gjith\u00ebve \u00ebsht\u00eb se secili mund t\u00eb z\u00ebvend\u00ebsoj\u00eb n\u00eb nj\u00eb far\u00eb forme \u00e7do nj\u00eb nga ne: p\u00ebr shembull, t\u00eb shtoj\u00eb node t\u00eb reja n\u00eb klasterin k8s, t\u00eb p\u00ebrdit\u00ebsoj\u00eb PostgreSQL, t\u00eb shkruaj\u00eb pipeline CI\/CD + Ansible, t\u00eb automatizoj\u00eb di\u00e7ka n\u00eb Python\/Bash\/Go, t\u00eb lidh\u00eb pajisje n\u00eb Qendr\u00ebn e t\u00eb Dh\u00ebnave. Kompetencat e forta n\u00eb nj\u00eb fush\u00eb nuk e pengojn\u00eb ndryshimin t\u00eb drejtimit t\u00eb aktivitetit dhe t\u00eb fillosh t\u00eb p\u00ebrmir\u00ebsosh veten n\u00eb nj\u00eb fush\u00eb tjet\u00ebr. P\u00ebr shembull, un\u00eb u pun\u00ebsova n\u00eb nj\u00eb kompani si specialist p\u00ebr PostgreSQL, dhe tani zona ime kryesore e p\u00ebrgjegj\u00ebsis\u00eb \u00ebsht\u00eb klasteret Kubernetes. N\u00eb ekip, \u00e7do rritje mir\u00ebpritet dhe \u00ebsht\u00eb zhvilluar nj\u00eb ndjenj\u00eb e fort\u00eb e mb\u00ebshtetjes.<\/p>\n<p>Sido, ne jemi n\u00eb k\u00ebrkim t\u00eb punonj\u00ebsve. K\u00ebrkesat p\u00ebr kandidat\u00ebt jan\u00eb mjaft standarde. Personalish p\u00ebr mua, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme q\u00eb personi t\u00eb integrohet n\u00eb ekip, t\u00eb jet\u00eb pa konflikte, por gjithashtu t\u00eb dij\u00eb t\u00eb mbroj\u00eb pik\u00ebpamjen e tij, t\u00eb d\u00ebshiroj\u00eb t\u00eb zhvillohet dhe t\u00eb mos ket\u00eb frik\u00eb t\u00eb b\u00ebj\u00eb gj\u00ebra t\u00eb reja duke ofruar idet\u00eb e tij. Gjithashtu, jan\u00eb t\u00eb nevojshme aft\u00ebsi programimi n\u00eb gjuh\u00eb skritpor, njohuri t\u00eb bazave t\u00eb Linux-it dhe t\u00eb gjuh\u00ebs angleze. Anglishtja \u00ebsht\u00eb e nevojshme thjesht p\u00ebr t\u00eb mund\u00ebsuar q\u00eb personi, n\u00eb rast t\u00eb nj\u00eb situate kritike, t\u00eb gjej\u00eb zgjidhjen p\u00ebr problemin n\u00eb 10 sekonda, e jo n\u00eb 10 minuta. Me specialist\u00ebt q\u00eb kan\u00eb njohuri t\u00eb thella t\u00eb Linux-it tani \u00ebsht\u00eb v\u00ebshtir\u00eb: \u00ebsht\u00eb qesharake, por dy nga tre kandidat\u00eb nuk mund t\u00eb p\u00ebrgjigjen p\u00ebr pyetjen \"\u00c7far\u00eb \u00ebsht\u00eb Load Average? Nga \u00e7far\u00eb p\u00ebrb\u00ebhet?\", ndersa pyetjen \"Si t\u00eb krijoni core dump nga nj\u00eb program n\u00eb C\" e konsiderojn\u00eb si di\u00e7ka nga bota e supernjer\u00ebzve... apo dinosaur\u00ebve. Kjo \u00ebsht\u00eb di\u00e7ka q\u00eb duhet pranuar, pasi zakonisht njer\u00ebzit kan\u00eb kompetenca t\u00eb tjera t\u00eb zhvilluara shum\u00eb mir\u00eb, nd\u00ebrsa \"linux-in\" ne do ta m\u00ebsojm\u00eb. P\u00ebrgjigjen p\u00ebr pyetjen \"pse \u00ebsht\u00eb e nevojshme t\u00eb dihet t\u00eb gjith\u00eb kjo p\u00ebr nj\u00eb inxhinier DevOps n\u00eb bot\u00ebn moderne t\u00eb reve\" do ta l\u00ebm\u00eb jasht\u00eb k\u00ebtij artikulli, por n\u00ebse do ta shprehim me tri fjal\u00eb: e gjith\u00eb kjo \u00ebsht\u00eb e nevojshme.<\/p>\n<h4>Ekipi Tools<\/h4>\n<p>\nNj\u00eb rol t\u00eb madh n\u00eb automatizim luan ekipi i Tools. Detyra e tyre kryesore \u00ebsht\u00eb krijimi i mjeteve t\u00eb p\u00ebrshtatshme grafike dhe CLI p\u00ebr zhvilluesit. P\u00ebr shembull, zhvillimi yn\u00eb i brendsh\u00ebm Confer lejon q\u00eb me disa klikime miu t\u00eb nxitet nj\u00eb aplikacion n\u00eb Kubernetes, t\u00eb konfigurohen burimet, \u00e7el\u00ebsat nga vault etj. M\u00eb par\u00eb kishim Jenkins + Helm 2, por ishte e nevojshme t\u00eb zhvillohej nj\u00eb mjet i ri p\u00ebr t\u00eb eliminuar kopjimin dhe ngjitjen dhe p\u00ebr t\u00eb sjell\u00eb nj\u00eblloj n\u00eb ciklin e jet\u00ebs s\u00eb softuerit.<\/p>\n<p>Ekipi i Ops nuk shkruan pipeline p\u00ebr zhvilluesit, por mund t\u00eb jap\u00eb k\u00ebshilla p\u00ebr \u00e7do pyetje n\u00eb lidhje me shkrimin e tyre (disa njer\u00ebz ende p\u00ebrdorin Helm 3).<\/p>\n<h4>DevOps<\/h4>\n<p>\nSa i p\u00ebrket DevOps, ne e shohim at\u00eb k\u00ebshtu:<\/p>\n<p>Ekipet e zhvillimit shkruajn\u00eb kodin, e publikojn\u00eb at\u00eb p\u00ebrmes Confer n\u00eb dev -&gt; qa\/stage -&gt; prod. Pesha p\u00ebr t\u00eb siguruar q\u00eb kodi t\u00eb mos humb\u00eb performanc\u00ebn dhe t\u00eb mos krijoj\u00eb gabime i takon ekipeve t\u00eb Zhvillimit dhe Operacioneve. Gjat\u00eb or\u00ebve t\u00eb dit\u00ebs, p\u00ebrgjigjja ndaj nj\u00eb incidenti me aplikacionin e tij duhet t\u00eb jet\u00eb, para s\u00eb gjithash, nga mbik\u00ebqyr\u00ebsi i ekipit t\u00eb Operacioneve, nd\u00ebrsa gjat\u00eb or\u00ebve t\u00eb mbr\u00ebmjes dhe nat\u00ebs, administratori i turnit (Ops) duhet t\u00eb zgjoj\u00eb zhvilluesin n\u00eb turn, n\u00ebse \u00ebsht\u00eb i sigurt se problemi nuk \u00ebsht\u00eb n\u00eb infrastruktur\u00eb. T\u00eb gjitha metrikat dhe alarmin n\u00eb monitorim dalin automatikisht ose gjysm\u00ebautomatikisht.<\/p>\n<p>Zona e p\u00ebrgjegj\u00ebsis\u00eb s\u00eb Operacioneve fillon n\u00eb momentin e publikimit t\u00eb aplikacionit n\u00eb prodhim, por p\u00ebrgjegj\u00ebsia e Zhvillimit nuk mbyllet k\u00ebtu \u2014 ne po b\u00ebjm\u00eb nj\u00eb gj\u00eb dhe jemi n\u00eb t\u00eb nj\u00ebjt\u00ebn anije.<\/p>\n<p>Zhvilluesit konsultojn\u00eb administratoret n\u00ebse nevojitet ndihm\u00eb n\u00eb shkrimin e nj\u00eb mikrosh\u00ebrbimi p\u00ebr administratoret (p\u00ebr shembull, Go backend + HTML5), nd\u00ebrsa administratoret konsultojn\u00eb zhvilluesit p\u00ebr \u00e7do \u00e7\u00ebshtje infrastrukturore, ose p\u00ebr pyetje n\u00eb lidhje me k8s.<\/p>\n<p>Me th\u00ebn\u00eb t\u00ebr\u00eb t\u00eb v\u00ebrtet\u00ebn, ne nuk kemi asnj\u00eb monolit, vet\u00ebm mikrosh\u00ebrbime. Numri i tyre aktualisht luhatet mes 900 dhe 1000 n\u00eb prodhimin e klas\u00ebs k8s, n\u00ebse e matim sipas numrit. <i>dispozita<\/i>. Numri i pod-\u00ebve luhatet midis 1700 dhe 2000. Aktualisht ka rreth 2000 pod-e n\u00eb prodhimin e klas\u00ebs.<\/p>\n<p>Nuk mund t\u00eb jap numra t\u00eb sakt\u00eb, pasi ne monitorojm\u00eb mikrosh\u00ebrbimet e panevojshme dhe i eliminojm\u00eb ato n\u00eb nj\u00eb mod\u00eb gjysm\u00ebautomatik. Monitoring p\u00ebr entitetet e panevojshme n\u00eb k8s na ndihmon <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Nastradamus\/useless-operator\">useless-operator<\/a><\/noindex>, q\u00eb ndihmon t\u00eb kursejm\u00eb burime dhe para.<\/p>\n<h2> Menaxhimi i burimeve <\/h2>\n<p><\/p>\n<h4> Monitorimi <\/h4>\n<p>\nK\u00ebndi i r\u00ebnd\u00ebsish\u00ebm n\u00eb funksionimin e nj\u00eb klasteri t\u00eb madh b\u00ebhet monitorimi i nd\u00ebrtuar mir\u00eb dhe informativ. P\u00ebr momentin, nuk kemi gjetur nj\u00eb zgjidhje universale q\u00eb t\u00eb mbuloj\u00eb 100% t\u00eb t\u00eb gjitha k\u00ebrkesave p\u00ebr monitorim, prandaj her\u00eb pas here krijojm\u00eb zgjidhje t\u00eb ndryshme t\u00eb personalizuara n\u00eb k\u00ebt\u00eb ambient.<\/p>\n<ul>\n<li><b>Zabbix<\/b>. Monitorimi tradicional, i cili \u00ebsht\u00eb krijuar kryesisht p\u00ebr t\u00eb ndjekur gjendjen e p\u00ebrgjithshme t\u00eb infrastruktur\u00ebs. Ai na tregon kur nj\u00eb nod\u00eb d\u00ebshton p\u00ebr shkak t\u00eb procesorit, memories, disqeve, rrjetit dhe k\u00ebshtu me radh\u00eb. Asgj\u00eb misterioze, por gjithashtu kemi nj\u00eb DaemonSet t\u00eb ve\u00e7ant\u00eb nga agjent\u00ebt, me an\u00eb t\u00eb t\u00eb cil\u00ebve, p\u00ebr shembull, monitorojm\u00eb gjendjen e DNS-it n\u00eb klaster: k\u00ebrkojm\u00eb pod-at e coredns q\u00eb kan\u00eb ngecur, kontrollojm\u00eb disponueshm\u00ebrin\u00eb e hosteve t\u00eb jasht\u00ebm. Duke par\u00eb, \u00e7far\u00eb ka nevoj\u00eb p\u00ebr aq p\u00ebrpjekje, por me volume t\u00eb m\u00ebdha trafiku, ky komponent \u00ebsht\u00eb nj\u00eb pik\u00eb serioze d\u00ebshtimi. M\u00eb par\u00eb, kam <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/domclick\/blog\/495450\/\">p\u00ebrshkruar<\/a><\/noindex>, si kam luftuar me performanc\u00ebn e DNS-it n\u00eb klaster.<\/li>\n<li><b>Prometheus Operator<\/b>. Nj\u00eb grup ekspozerash ofron nj\u00eb pamje t\u00eb gjer\u00eb t\u00eb t\u00eb gjitha komponenteve t\u00eb klasterit. Pastaj vizualizojm\u00eb gjith\u00e7ka n\u00eb tabela t\u00eb m\u00ebdha n\u00eb Grafana, dhe p\u00ebr njoftimet p\u00ebrdorim alertmanager.\n<\/li>\n<\/ul>\n<p>\nNj\u00eb tjet\u00ebr mjet i dobish\u00ebm p\u00ebr ne ishte <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Nastradamus\/list-ingress\">list-ingress<\/a><\/noindex>. \u041c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438 Ingress \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 50x. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0435\u0440\u0435\u0434 \u0434\u0435\u043f\u043b\u043e\u0435\u043c \u043d\u0430 \u043f\u0440\u043e\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442, \u0447\u0442\u043e \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u0434\u0435\u043d\u0443\u0442, \u0430 \u0434\u043b\u044f \u043c\u043e\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Ingress&#8217;\u0430\u043c\u0438. \u0417\u0430\u0431\u0430\u0432\u043d\u043e, \u0447\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u043e\u0432 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043e\u043d \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u00ab\u0442\u043e\u043f\u043e\u0440\u043d\u043e\u00bb, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u044e\u0431\u0438\u043b\u0441\u044f dev-\u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c, \u043e\u043d \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0441\u044f \u0438 \u0441\u0442\u0430\u043b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0435 \u043a\u0430\u043a \u00ab\u0430\u0434\u043c\u0438\u043d \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u0435\u0431-\u043c\u043e\u0440\u0434\u0443 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u043e\u0432\u00bb. \u0421\u043a\u043e\u0440\u043e \u043c\u044b \u043e\u0442\u043a\u0430\u0436\u0435\u043c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0434\u043e \u0432\u044b\u043a\u0430\u0442\u043a\u0438 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430.<\/p>\n<h4>Burimet e ekipeve n\u00eb 'Kube'<\/h4>\n<p>\nPara se t\u00eb fillojm\u00eb me shembujt, \u00ebsht\u00eb e nevojshme t\u00eb shpjegohet se si punon ndarja e burimeve p\u00ebr <i>mikrosherbimesh<\/i>.<\/p>\n<p>P\u00ebr t\u00eb kuptuar se cilat ekipe dhe n\u00eb \u00e7far\u00eb sasi p\u00ebrdorin burimet e tyre <i>burimet<\/i> (procesori, memoria, SSD lokal), ne i rezervojm\u00eb \u00e7do ekipi burime t\u00eb veta <i>namespace<\/i> \u0432 \u00ab\u041a\u0443\u0431\u0435\u00bb \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0434\u0438\u0441\u043a\u0443, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0433\u043e\u0432\u043e\u0440\u0438\u0432 \u043d\u0443\u0436\u0434\u044b \u043a\u043e\u043c\u0430\u043d\u0434. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u0432\u0435\u0441\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u0432\u044b\u0434\u0435\u043b\u0438\u0432 \u0441\u0435\u0431\u0435 \u0442\u044b\u0441\u044f\u0447\u0438 \u044f\u0434\u0435\u0440 \u0438 \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u043e\u0441\u0442\u0443\u043f\u044b \u0432 namespace \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 AD (\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c RBAC). Namespace&#8217;\u044b \u0438 \u0438\u0445 \u043b\u0438\u043c\u0438\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442 \u0432 GIT-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u0430 \u0434\u0430\u043b\u0435\u0435 \u0447\u0435\u0440\u0435\u0437 Ansible-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0432\u0441\u0451 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>Shembuj t\u00eb ndarjes s\u00eb burimeve p\u00ebr nj\u00eb ekip:<\/p>\n<pre><code class=\"go\">namespaces:\n\n  chat-team:\n    pods: 23\n    limits:\n      cpu: 11\n      memory: 20Gi\n    requests:\n      cpu: 11\n      memory: 20Gi\n<\/code><\/pre>\n<p><\/p>\n<h4>K\u00ebrkesat dhe limitet<\/h4>\n<p>\nN\u00eb \"Kube\" <i>K\u00ebrkesa<\/i> \u2014 kjo \u00ebsht\u00eb sasia e burimeve t\u00eb rezervuara garantuar p\u00ebr <i>pod<\/i> (\u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0434\u043e\u043a\u0435\u0440-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432) \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. Limit \u2014 \u044d\u0442\u043e \u043d\u0435\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c. \u0427\u0430\u0441\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445, \u043a\u0430\u043a \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0441\u0435\u0431\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u00ab\u041a\u0443\u0431\u00bb, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0434 \u0438\u0445 namespace \u0432\u0441\u0435 request&#8217;\u044b \u0443\u0436\u0435 \u00ab\u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u044b\u00bb.<\/p>\n<p>Zgjidhja e duhur nga nj\u00eb situat\u00eb e till\u00eb: t\u00eb shikoni konsumimin e v\u00ebrtet\u00eb t\u00eb burimeve dhe ta krahasoni me sasin\u00eb e k\u00ebrkuar (Request).<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/417373d4421064f28d57a03b6bb5bf94.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/3168ad6dc8b159059b21e1177e145376.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb screenshotet e m\u00ebsip\u00ebrme, duket se CPU-t\u00eb \"t\u00eb k\u00ebrkuara\" (Requested) p\u00ebrshtaten me numrin real t\u00eb fijeve, nd\u00ebrsa Limits mund t\u00eb tejkalojn\u00eb numrin real t\u00eb fijeve t\u00eb procesor\u00ebve central\u00eb =)<\/p>\n<p>Tani do t\u00eb shqyrtojm\u00eb nj\u00eb namespace (kam zgjedhur namespace kube-system \u2014 namespace sistemor p\u00ebr komponent\u00ebt e \"Kubes\") dhe do t\u00eb shikojm\u00eb raportin nd\u00ebrmjet koh\u00ebs s\u00eb v\u00ebrtet\u00eb t\u00eb p\u00ebrdorur t\u00eb procesorit dhe memories me at\u00eb q\u00eb \u00ebsht\u00eb e k\u00ebrkuar:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/ed6160de5397b8cd39cbae172d4bb872.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cbsht\u00eb e qart\u00eb se memorja dhe CPU jan\u00eb rezervuar p\u00ebr sh\u00ebrbimet sistemore shum\u00eb m\u00eb tep\u00ebr se sa p\u00ebrdoren n\u00eb t\u00eb v\u00ebrtet\u00eb. N\u00eb rastin e kube-system, kjo \u00ebsht\u00eb e arsyeshme: ndodhi q\u00eb nginx ingress controller ose nodelocaldns n\u00eb kulm t\u00eb ngarkohej n\u00eb CPU dhe t\u00eb digjte shum\u00eb RAM, prandaj k\u00ebtu nj\u00eb rezerv\u00eb e till\u00eb \u00ebsht\u00eb e arsyeshme. M\u00eb tej, nuk mund t\u00eb mb\u00ebshtetemi n\u00eb grafikat p\u00ebr tri or\u00ebt e fundit: \u00ebsht\u00eb e d\u00ebshirueshme t\u00eb shohim metrikat historike p\u00ebr nj\u00eb periudh\u00eb t\u00eb gjat\u00eb kohore.<\/p>\n<p>U zhvillua nj\u00eb sistem \"rekomandimesh\". P\u00ebr shembull, k\u00ebtu mund t\u00eb shihni cilave resurse do t\u00eb ishte m\u00eb mir\u00eb t\u00eb rriteshin \"limitet\" (kuota maksimale e lejuar), n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mos ndodhte \"trotllimi\" (throttling): momenti kur CPU ose memoria e p\u00ebrdorur kalon kufirin e caktuar p\u00ebr nj\u00eb periudh\u00eb t\u00eb caktuar dhe pritet derisa t\u00eb \"zhbllokohet\".<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/f23aece10a585e6847bcacfe947031d1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00ebtu jan\u00eb pods q\u00eb duhet t\u00eb frenojn\u00eb apetitet:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/1ec9996ce6355aeba603008d51aac209.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr <i>trotlling<\/i> + monitorimi i burimeve mund t\u00eb shkruaj\u00eb shum\u00eb artikuj, prandaj b\u00ebni pyetje n\u00eb komentet. N\u00eb disa fjali mund t\u00eb them se automatizimi i metricave t\u00eb tilla \u00ebsht\u00eb nj\u00eb detyr\u00eb mjaft e v\u00ebshtir\u00eb dhe k\u00ebrkon shum\u00eb koh\u00eb dhe ekvilibriz\u00ebm me funksionet \"window\" dhe \"CTE\" n\u00eb Prometheus \/ VictoriaMetrics (k\u00ebto terma jan\u00eb n\u00eb thonj\u00ebza, pasi n\u00eb PromQL gati nuk ka asgj\u00eb t\u00eb till\u00eb dhe duhet t\u00eb krijohen k\u00ebrkesa t\u00eb tmerrshme q\u00eb z\u00ebn\u00eb disa ekrane teksti dhe t\u00eb merremi me optimizimin e tyre).<\/p>\n<p>Si rezultat, zhvilluesit kan\u00eb mjete p\u00ebr t\u00eb monitoruar namespaces e tyre n\u00eb \"Kube\", dhe ata mund t\u00eb zgjedhin vet\u00eb se ku dhe n\u00eb \u00e7far\u00eb kohe mund t\u00eb \"presin\" burimet p\u00ebr aplikacione t\u00eb caktuara, nd\u00ebrsa cilave pods mund t'u japin t\u00eb gjith\u00eb CPU-n\u00eb p\u00ebr nj\u00eb nat\u00eb.<\/p>\n<h4>Metodologjit\u00eb<\/h4>\n<p>\nN\u00eb kompanin\u00eb ton\u00eb, si\u00e7 \u00ebsht\u00eb tani <i>moderne<\/i>, ne ndjekim praktikat DevOps dhe <i>SRE.<\/i>Kur n\u00eb kompani ka 1000 mikrosherbime, rreth 350 zhvillues dhe 15 admin\u00eb p\u00ebr t\u00eb gjith\u00eb infrastruktur\u00ebn, duhet t\u00eb \"jepesh modern\": pas k\u00ebtyre \"buzzwords\" fshihet nj\u00eb nevoj\u00eb urgjente p\u00ebr automatizimin e gjith\u00e7kaje, dhe admin\u00ebt nuk duhet t\u00eb jen\u00eb pika kritike n\u00eb procese.<\/p>\n<p>Si Ops, ne ofrojm\u00eb metrika dhe panele t\u00eb ndryshme p\u00ebr zhvilluesit q\u00eb lidhen me shpejt\u00ebsin\u00eb e p\u00ebrgjigjes s\u00eb sh\u00ebrbimeve dhe gabimet e tyre.<\/p>\n<p>Ne p\u00ebrdorim metodologji si: <noindex><a rel=\"nofollow\" href=\"https:\/\/thenewstack.io\/monitoring-microservices-red-method\/\">RED<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/usemethod.html\">USE<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/forepaas\/distributed-monitoring-101-the-four-golden-signals-305bbbc33d35\">Sinjalet e Arta<\/a><\/noindex>, duke i kombinuar ato s\u00eb bashku. Ne p\u00ebrpiqemi t\u00eb minimizojm\u00eb numrin e paneleve n\u00eb m\u00ebnyr\u00eb q\u00eb nga nj\u00eb shikim t\u00eb jet\u00eb e qart\u00eb se cili sh\u00ebrbim po degradohet (p\u00ebr shembull, kodet e p\u00ebrgjigjes p\u00ebr sekond\u00eb, koha e p\u00ebrgjigjes n\u00eb percentilin 99), e k\u00ebshtu me radh\u00eb. Sa her\u00eb q\u00eb nevojiten ndonj\u00eb metrik\u00eb e re p\u00ebr panelet e p\u00ebrbashk\u00ebta, ne menj\u00ebher\u00eb i vizatojm\u00eb dhe i shtojm\u00eb.<\/p>\n<p><i>Nuk kam vizatuar grafika tashm\u00eb nj\u00eb muaj. Sigurisht, kjo \u00ebsht\u00eb nj\u00eb shenj\u00eb e mir\u00eb: do t\u00eb thot\u00eb q\u00eb shumica e \"deshirave\" jan\u00eb realizuar. Ka ndodhur q\u00eb gjat\u00eb nj\u00eb jave p\u00ebr t\u00eb pakt\u00ebn nj\u00eb her\u00eb n\u00eb dit\u00eb kam vizatuar ndonj\u00eb grafik t\u00eb ri.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/574f1b4d2be78fb779f1771bffac51dd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/6ab2aa05f912839b14bdbcf84faaeb3a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRezultati q\u00eb kemi arritur \u00ebsht\u00eb i vlefsh\u00ebm sepse tani zhvilluesit rrall\u00eb shkojn\u00eb te administrator\u00ebt me pyetje \"ku mund ta shoh ndonj\u00eb metrik\u00eb\".<\/p>\n<p>Implementimi <i>Service Mesh<\/i> nuk ka ardhur dhe do t\u00eb leht\u00ebsoj\u00eb shum\u00eb jet\u00ebn e t\u00eb gjith\u00ebve, koleg\u00ebt nga Tools jan\u00eb af\u00ebr zbatimit t\u00eb abstraktit \"Istio i njeriut t\u00eb sh\u00ebndetsh\u00ebm\": cikli i jet\u00ebs s\u00eb \u00e7do k\u00ebrkese HTTP(s) do t\u00eb jet\u00eb i duksh\u00ebm n\u00eb monitorim, dhe gjithmon\u00eb do t\u00eb jet\u00eb e mundur t\u00eb kuptohet \"n\u00eb cilin hap u prish gjith\u00e7ka\" gjat\u00eb nd\u00ebrveprimit nd\u00ebr-sh\u00ebrbim (dhe jo vet\u00ebm) . Abonohuni n\u00eb lajmet e qendr\u00ebs s\u00eb kompanis\u00eb DomKlik. =)<\/p>\n<h2>Mb\u00ebshtetje p\u00ebr infrastruktur\u00ebn Kubernetes<\/h2>\n<p>\nHistorikisht ka ndodhur q\u00eb ne p\u00ebrdorim versionin e patchuar <i>Kubespray<\/i> \u2014 Rol Ansible p\u00ebr shp\u00ebrndarjen, zgjerimin dhe p\u00ebrdit\u00ebsimin e Kubernetes. N\u00eb nj\u00eb moment, mb\u00ebshtetja p\u00ebr instalimet non-kubeadm u hoq nga dega kryesore, dhe procesi i kalimit n\u00eb kubeadm nuk u propozua. Si rezultat, kompania Southbridge b\u00ebri forkun e saj (me mb\u00ebshtetje p\u00ebr kubeadm dhe nj\u00eb rregullim t\u00eb shpejt\u00eb p\u00ebr problemet kritike). <\/p>\n<p>Procesi i p\u00ebrdit\u00ebsimit t\u00eb t\u00eb gjitha klastereve k8s duket k\u00ebshtu:<\/p>\n<ul>\n<li>Merr <i>Kubespray<\/i> nga Southbridge, krahasojm\u00eb me deg\u00ebn ton\u00eb, bashkojm\u00eb.<\/li>\n<li>Kryejm\u00eb p\u00ebrdit\u00ebsimin n\u00eb <i>Stress<\/i>-\"Kub\".<\/li>\n<li>Kryejm\u00eb p\u00ebrdit\u00ebsimin nj\u00eb nga nj\u00eb nod\u00eb (n\u00eb Ansible kjo \u00ebsht\u00eb \"serial: 1\") n\u00eb <i>Dev<\/i>-\"Kub\".<\/li>\n<li>P\u00ebrdit\u00ebsojm\u00eb <i>Prod<\/i> t\u00eb shtun\u00ebn n\u00eb mbr\u00ebmje nj\u00eb nga nj\u00eb nod\u00eb.<\/li>\n<\/ul>\n<p>\nN\u00eb t\u00eb ardhmen ka plane p\u00ebr t\u00eb z\u00ebvend\u00ebsuar <i>Kubespray<\/i> me ndonj\u00eb gj\u00eb m\u00eb t\u00eb shpejt\u00eb dhe p\u00ebr t\u00eb kaluar n\u00eb <i>kubeadm<\/i>.<\/p>\n<p>Kemi gjithsej tre \u00abKuba\u00bb: Stress, Dev dhe Prod. P\u00ebrshtasim p\u00ebr t\u00eb lan\u00e7uar nj\u00eb tjet\u00ebr (<i>standby t\u00eb nxeht\u00eb<\/i>) Prod-\u00abKub\u00bb n\u00eb qendr\u00ebn e dyt\u00eb t\u00eb t\u00eb dh\u00ebnave. <i>Stress<\/i> dhe <i>Dev<\/i> ata jetojn\u00eb n\u00eb \u00abvirtualka\u00bb (oVirt p\u00ebr Stress dhe VMWare cloud p\u00ebr Dev). <i>Prod<\/i>-\u00abKubi\u00bb jeton n\u00eb \u00abmetal t\u00eb zbraz\u00ebt\u00bb: k\u00ebto jan\u00eb node t\u00eb nj\u00ebjta me 32 CPU threads, 64-128 GB memorie dhe 300 GB SSD RAID 10 \u2014 gjithsej jan\u00eb 50 cop\u00eb. Tri node \u00abt\u00eb holla\u00bb jan\u00eb t\u00eb dedikuara p\u00ebr \u00abmastera\u00bb <i>Prod<\/i>-\u00abKuba\u00bb: 16 GB memorie, 12 CPU threads.<\/p>\n<p>P\u00ebr prodhim preferojm\u00eb t\u00eb p\u00ebrdorim \u00abmetal t\u00eb zbraz\u00ebt\u00bb dhe shmangim shtresa t\u00eb tep\u00ebrta si <i>OpenStack<\/i>: nuk na duhen \u00abfqinjt\u00eb e zhurmsh\u00ebm\u00bb dhe CPU <i>vjedhja e koh\u00ebs<\/i>. Po ashtu, kompleksiteti i administrat\u00ebs rritet rreth dy her\u00eb n\u00eb rastin e OpenStack in-house.<\/p>\n<p>P\u00ebr CI\/CD t\u00eb \u00abKuba\u00bb dhe komponenteve t\u00eb tjera infrastrukturore p\u00ebrdorim nj\u00eb server t\u00eb ve\u00e7ant\u00eb GIT, Helm 3 (kalimi ishte mjaft i dhimbsh\u00ebm nga Helm 2, por jemi shum\u00eb t\u00eb k\u00ebnaqur me opsionin <i>atomic<\/i>), Jenkins, Ansible dhe Docker. Na p\u00eblqejn\u00eb feature-branch-\u00ebt dhe deploy n\u00eb ambiente t\u00eb ndryshme nga nj\u00eb depo.<\/p>\n<h3>P\u00ebrfundimi<\/h3>\n<p><img decoding=\"async\" alt=\"Kubernetes n\u00eb DomKlik: si t\u00eb flini qet\u00eb duke menaxhuar nj\u00eb klas\u00eb me 1000 mikrosh\u00ebrbime\" src=\"\/wp-content\/uploads\/2020\/08\/34ddcd1f275c63c1ad821218d16b5abb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nK\u00ebshtu, n\u00eb p\u00ebrgjith\u00ebsi, n\u00eb kompanin\u00eb DomKlik duket procesi i DevOps nga perspektiva e inxhinierit t\u00eb operacioneve. Artikulli doli m\u00eb pak teknik se sa prisja: k\u00ebshtu, ndjekni lajmet e DomKlik n\u00eb Habra: do t\u00eb ket\u00eb artikuj m\u00eb \u00abhardcore\u00bb p\u00ebr Kubernetes dhe jo vet\u00ebm.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/domclick\/blog\/501122\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev &lt;-&gt; Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91200,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91199","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops\" \/>\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\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\udd47Kubernetes \u0432 \u0414\u043e\u043c\u041a\u043b\u0438\u043a: \u043a\u0430\u043a \u0441\u043f\u0430\u0442\u044c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u043d\u0430 1000 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov\" \/>\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-08-09T23:42:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-09T23:42:03+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\udd47Kubernetes n\u00eb DomKlik: si t\u00eb flesh rehat, duke menaxhuar nj\u00eb klaster me 1000 mikrosherbime | ProHoster","description":"Un\u00eb quhem Viktor Yagofarov, dhe po merrem me zhvillimin e platform\u00ebs Kubernetes n\u00eb kompanin\u00eb DomKlik si drejtues teknik i zhvillimit n\u00eb ekipin Ops (ekspluatim). D\u00ebshiroj t\u00eb flas p\u00ebr struktur\u00ebn e proceseve tona Dev Ops, karakteristikat e ekspluatimit t\u00eb nj\u00eb nga klaster\u00ebt m\u00eb t\u00eb m\u00ebdhenj k8s n\u00eb Rusi, si dhe p\u00ebr praktikat DevOps\/SRE q\u00eb aplikon ekipi yn\u00eb. Ekipi Ops N\u00eb ekipin Ops","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","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\udd47Kubernetes \u0432 \u0414\u043e\u043c\u041a\u043b\u0438\u043a: \u043a\u0430\u043a \u0441\u043f\u0430\u0442\u044c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u043d\u0430 1000 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster","og:description":"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","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-08-09T23:42:03+00:00","article:modified_time":"2020-08-09T23:42:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91199","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 12:32:23","updated":"2022-09-28 06:43:59"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91199","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=91199"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91199\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/91200"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=91199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=91199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=91199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}