{"id":70831,"date":"2020-02-21T14:42:15","date_gmt":"2020-02-21T11:42:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/obnovlenie-kubernetes-klastera-bez-prostoya"},"modified":"2020-03-03T16:14:45","modified_gmt":"2020-03-03T13:14:45","slug":"obnovlenie-kubernetes-klastera-bez-prostoya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya","title":{"rendered":"P\u00ebrdit\u00ebsimi i klasterit Kubernetes pa nd\u00ebrprerje","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"P\u00ebrdit\u00ebsimi i klasterit Kubernetes pa nd\u00ebrprerje\" src=\"\/wp-content\/uploads\/2020\/02\/53cdba726a58c16679c6443191f28321.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Procesi i p\u00ebrdit\u00ebsimit p\u00ebr klasterin tuaj Kubernetes<\/em><\/p>\n<p><\/p>\n<p>N\u00eb nj\u00eb moment gjat\u00eb p\u00ebrdorimit t\u00eb klasterit Kubernetes, lind nevoja p\u00ebr t\u00eb p\u00ebrdit\u00ebsuar nodet n\u00eb funksion. Kjo mund t\u00eb p\u00ebrfshij\u00eb p\u00ebrdit\u00ebsime paketash, p\u00ebrdit\u00ebsimin e b\u00ebrtham\u00ebs ose shp\u00ebrndarjen e imazheve t\u00eb reja t\u00eb makinerive virtuale. N\u00eb terminologjin\u00eb e Kubernetes, kjo quhet <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/disruptions\/#voluntary-and-involuntary-disruptions\">\"Nd\u00ebrprerje Vullnetar\"<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Ky post \u00ebsht\u00eb pjes\u00eb e nj\u00eb cikli prej 4 postimesh:<\/p>\n<p><\/p>\n<ol>\n<li>Ky post.<\/li>\n<li>P\u00ebrfundimi korrekt i pod\u2019ave n\u00eb klasterin Kubernetes<\/li>\n<li>P\u00ebrfundimi i shtyr\u00eb i pod\u2019it gjat\u00eb fshirjes s\u00eb tij<\/li>\n<li>Si t\u00eb shmangni nd\u00ebrprerjet n\u00eb funksionimin e klasterit Kubernetes me ndihm\u00ebn e PodDisruptionBudgets<\/li>\n<\/ol>\n<p><\/p>\n<p><em>(sh\u00ebn. p\u00ebrk. p\u00ebrkthimet e artikujve t\u00eb tjer\u00eb t\u00eb ciklit prisni s\u00eb shpejti)<\/em><\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull do t\u00eb p\u00ebrshkruajm\u00eb t\u00eb gjitha mjetet q\u00eb ofron Kubernetes p\u00ebr t\u00eb arritur zero koh\u00eb nd\u00ebrprerjeje p\u00ebr nodet q\u00eb punojn\u00eb n\u00eb klasterin tuaj.<\/p>\n<p><\/p>\n<h2 id=\"opredelenie-problemy\">P\u00ebdefinedimi i problemit<\/h2>\n<p><\/p>\n<p>N\u00eb fillim, do t\u00eb p\u00ebrdorim nj\u00eb qasje naive, duke identifikuar problemet dhe duke vler\u00ebsuar rreziqet e mundshme t\u00eb k\u00ebsaj qasjeje dhe duke mbledhur njohuri p\u00ebr t\u00eb zgjidhur \u00e7do problem q\u00eb do t\u00eb hasim gjat\u00eb gjith\u00eb ciklit. Si rezultat, do t\u00eb arrijm\u00eb nj\u00eb konfigurim q\u00eb p\u00ebrdor lifecycle hooks, readiness probes dhe Pod disruption budgets p\u00ebr t\u00eb arritur koh\u00ebn ton\u00eb zero t\u00eb pushimit. <\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb nisur udh\u00ebtimin ton\u00eb, le t\u00eb marrim nj\u00eb shembull konkret. Supozoni se kemi nj\u00eb klaster Kubernetes me dy node, n\u00eb t\u00eb cilin \u00ebsht\u00eb duke u ekzekutuar nj\u00eb aplikacion me dy pod\u2019\u00eb, q\u00eb ndodhen pas <code>Sh\u00ebrbimi<\/code>:<\/p>\n<p>\n<img decoding=\"async\" alt=\"P\u00ebrdit\u00ebsimi i klasterit Kubernetes pa nd\u00ebrprerje\" src=\"\/wp-content\/uploads\/2020\/02\/f1eb999a0a088d7ed5b54c71e9b9ed1e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Le t\u00eb fillojm\u00eb me dy pod\u00eb me Nginx dhe Service t\u00eb nisur n\u00eb dy node t\u00eb klasterit ton\u00eb Kubernetes.<\/em><\/p>\n<p><\/p>\n<p>Ne duam t\u00eb p\u00ebrdit\u00ebsojm\u00eb versionin e b\u00ebrtham\u00ebs s\u00eb dy nodeve punuese n\u00eb klasterin ton\u00eb. Si do ta b\u00ebjm\u00eb k\u00ebt\u00eb? Nj\u00eb zgjidhje e thjesht\u00eb do t\u00eb ishte t\u00eb ngarkonim node t\u00eb reja me konfigurim t\u00eb p\u00ebrdit\u00ebsuar dhe m\u00eb pas t\u00eb fiknim node t\u00eb vjetra, duke filluar nj\u00ebkoh\u00ebsisht t\u00eb rejat. Megjithat\u00eb, kjo do t\u00eb sjell\u00eb disa probleme me nj\u00eb qasje t\u00eb till\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>Kur t\u00eb \u00e7aktivizoni nodet e vjetra, pod'\u00ebt q\u00eb jan\u00eb t\u00eb ekzekutuar n\u00eb to gjithashtu do t\u00eb \u00e7aktivizohen. \u00c7far\u00eb ndodh n\u00ebse pod'\u00ebt duhet t\u00eb pastrohen p\u00ebr nj\u00eb \u00e7aktivizim t\u00eb sakt\u00eb? Sistemi i virtualizimit q\u00eb po p\u00ebrdorni mund t\u00eb mos pres\u00eb p\u00ebr t\u00eb p\u00ebrfunduar procesin e pastrimit.<\/li>\n<li>\u00c7far\u00eb ndodh n\u00ebse \u00e7aktivizoni t\u00eb gjitha nodet nj\u00ebkoh\u00ebsisht? Do t\u00eb keni nj\u00eb periudh\u00eb t\u00eb konsiderueshme prapa derisa pod'\u00ebt t\u00eb transferohen n\u00eb nodet e reja.<\/li>\n<\/ul>\n<p><\/p>\n<p>Na nevojitet nj\u00eb m\u00ebnyr\u00eb e sakt\u00eb p\u00ebr migrimin e pod'\u00ebve nga nodet e vjetra dhe nga ana tjet\u00ebr duhet t\u00eb jemi t\u00eb sigurt q\u00eb asnj\u00eb nga proceset tona t\u00eb pun\u00ebs nuk \u00ebsht\u00eb n\u00eb ekzekutim nd\u00ebrsa ne b\u00ebjm\u00eb ndryshime n\u00eb nod\u00eb. Ose kur ne b\u00ebjm\u00eb nj\u00eb z\u00ebvend\u00ebsim t\u00eb plot\u00eb t\u00eb klasterit, si n\u00eb shembull (dmth. z\u00ebvendosim imazhet e VM), ne duam t\u00eb transferojm\u00eb aplikacionet funksionuese nga nodet e vjetra n\u00eb ato t\u00eb reja. N\u00eb t\u00eb dyja rastet, ne duam t\u00eb parandalojm\u00eb planifikimin e pod'\u00ebve t\u00eb rinj n\u00eb nodet e vjetra dhe pastaj t\u00eb largohemi nga t\u00eb gjitha pod'\u00ebt e ekzekutuar. P\u00ebr t\u00eb arritur k\u00ebto q\u00ebllime mund t\u00eb p\u00ebrdorim komand\u00ebn <code>kubectl drain<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"pereraspredelenie-vseh-podov-s-nody\">Rredistribuimi i t\u00eb gjitha pod'\u00ebve nga nod\u00eb<\/h2>\n<p><\/p>\n<p>Operacioni drain lejon rredistribuimin e t\u00eb gjitha pod'\u00ebve nga nod\u00eb. Gjat\u00eb procesit t\u00eb ekzekutimit t\u00eb drain, nod\u00ebja sh\u00ebnohet si e pa-planifikueshme (flamuri <code>NoSchedule<\/code>). Kjo parandalon shfaqjen e pod\u00ebve t\u00eb rinj. Pastaj, procesi i shkarkimit fillon t\u00eb zhvendos\u00eb pod\u2019\u00ebt nga nodet, p\u00ebrfundon funksionimin e konteiner\u00ebve q\u00eb aktualisht jan\u00eb t\u00eb aktivizuar n\u00eb nod\u00ebn duke d\u00ebrguar sinjalin <code>TERM<\/code> konteiner\u00ebve n\u00eb pod.<\/p>\n<p><\/p>\n<p>Megjithat\u00eb <code>kubectl drain<\/code> ndon\u00ebse ai do t\u00eb p\u00ebrballet mir\u00eb me zhvendosjen e pod\u00ebve, ka edhe dy faktor\u00eb t\u00eb tjer\u00eb q\u00eb mund t\u00eb shkaktojn\u00eb d\u00ebshtim gjat\u00eb operacionit t\u00eb shkarkimit:<\/p>\n<p><\/p>\n<ul>\n<li>Aplikacioni juaj duhet t\u00eb jet\u00eb n\u00eb gjendje t\u00eb p\u00ebrfundoj\u00eb si\u00e7 duhet kur t\u00eb d\u00ebrgohet <code>TERM<\/code> sinjali. Kur pod\u2019\u00ebt zhvendosen, Kubernetes d\u00ebrgon sinjalin <code>TERM<\/code> konteiner\u00ebve dhe pret ndalimin e tyre p\u00ebr nj\u00eb periudh\u00eb t\u00eb caktuar kohore, pas s\u00eb cil\u00ebs, n\u00ebse ata nuk jan\u00eb ndaluar, i p\u00ebrfundon ato me forc\u00eb. N\u00eb \u00e7do rast, n\u00ebse konteineri juaj nuk e kupton sakt\u00ebsisht sinjalin, ju still mund t\u00eb fikni pod\u2019\u00ebt n\u00eb m\u00ebnyr\u00eb jo korrekte, n\u00ebse ata jan\u00eb aktiv\u00eb n\u00eb at\u00eb moment t\u00eb caktuar (p\u00ebr shembull, n\u00ebse nj\u00eb transaksion \u00ebsht\u00eb n\u00eb zhvillim n\u00eb DB).<\/li>\n<li>Ju humbni t\u00eb gjith\u00eb pod\u2019\u00ebt n\u00eb t\u00eb cil\u00ebt ndodhet aplikacioni juaj. Ai mund t\u00eb jet\u00eb i paqasjeur n\u00eb momentin e fillimit t\u00eb konteiner\u00ebve t\u00eb rinj n\u00eb nodat e reja ose, n\u00ebse pod\u2019\u00ebt tuaj jan\u00eb shp\u00ebrndar\u00eb pa kontrollet, ato mund t\u00eb mos rifillojn\u00eb n\u00eb parim. <\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"izbegaem-prostoya\">Shmangim ndalimin<\/h2>\n<p><\/p>\n<p>P\u00ebr t\u00eb minimizuar koh\u00ebn e ndaljes nga nd\u00ebrprerjet vullnetar\u00eb, si\u00e7 \u00ebsht\u00eb operacioni drain p\u00ebr node, Kubernetes ofron k\u00ebto mund\u00ebsi p\u00ebr trajtimin e d\u00ebshtimeve:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod\/#termination-of-pods\">Terminimi i sjellsh\u00ebm<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/container-lifecycle-hooks\/\">Haket e ciklit t\u00eb jet\u00ebs<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/disruptions\/#how-disruption-budgets-work\">PodDisruptionBudgets<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb pjes\u00ebt e tjera t\u00eb ciklit, ne do t\u00eb p\u00ebrdorim k\u00ebto funksione t\u00eb Kubernetes p\u00ebr t\u00eb zbutur pasojat e zhvendosjes s\u00eb pod\u2019ave. P\u00ebr ta b\u00ebr\u00eb m\u00eb t\u00eb leht\u00eb ndjekjen e ideve kryesore, ne do t\u00eb p\u00ebrdorim shembullin ton\u00eb m\u00eb lart me k\u00ebt\u00eb konfigurim t\u00eb burimeve:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">---\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n name: nginx-deployment\n labels:\n   app: nginx\nspec:\n replicas: 2\n selector:\n   matchLabels:\n     app: nginx\n template:\n   metadata:\n     labels:\n       app: nginx\n   spec:\n     containers:\n     - name: nginx\n       image: nginx:1.15\n       ports:\n       - containerPort: 80\n---\nkind: Service\napiVersion: v1\nmetadata:\n name: nginx-service\nspec:\n selector:\n   app: nginx\n ports:\n - protocol: TCP\n   targetPort: 80\n   port: 80<\/code><\/pre>\n<p><\/p>\n<p>Kjo konfigurim \u00ebsht\u00eb nj\u00eb shembull minimal <code>Deployment<\/code>, i cili menaxhon pod\u2019\u00ebt nginx n\u00eb klaster. P\u00ebr m\u00eb tep\u00ebr, konfigurimi p\u00ebrshkruan burimin <code>Sh\u00ebrbimi<\/code>, i cili mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb aksesuar pod\u2019\u00ebt nginx n\u00eb klaster.<\/p>\n<p><\/p>\n<p>Gjat\u00eb gjith\u00eb ciklit, ne do t\u00eb zgjerim iterativ k\u00ebt\u00eb konfigurim, n\u00eb m\u00ebnyr\u00eb q\u00eb n\u00eb fund t\u00eb p\u00ebrfshij\u00eb t\u00eb gjitha mund\u00ebsit\u00eb q\u00eb ofron Kubernetes p\u00ebr t\u00eb ulur koh\u00ebn e ndaljes.<\/p>\n<p><\/p>\n<p><em>P\u00ebr t\u00eb marr\u00eb nj\u00eb version t\u00eb plot\u00eb t\u00eb integruar dhe t\u00eb testuar t\u00eb p\u00ebrdit\u00ebsimeve t\u00eb klasterit Kubernetes me zero koh\u00eb pezullimi n\u00eb AWS dhe burime t\u00eb tjera, vizitoni <noindex><a rel=\"nofollow\" href=\"https:\/\/gruntwork.io\/\">Gruntwork.io<\/a><\/noindex>.<\/em><\/p>\n<p><\/p>\n<h2 id=\"takzhe-chitayte-drugie-stati-v-nashem-bloge\">Shihni gjithashtu artikuj t\u00eb tjer\u00eb n\u00eb blogun ton\u00eb:<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/481932\/\">Zero Downtime Deployment dhe databaza<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/480072\/\">Kubernetes: pse \u00ebsht\u00eb kaq e r\u00ebnd\u00ebsishme t\u00eb konfigurosh menaxhimin e burimeve t\u00eb sistemit?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/481992\/\">Tekton Pipeline \u2014 pipelines t\u00eb natyrshme p\u00ebr Kubernetes<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/473578\/\">Montimi i moduleve dinamik\u00eb p\u00ebr Nginx<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/473014\/\">Hyrje n\u00eb Autorizimin e Hashicorp Consul\u2019s Kubernetes<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/468779\/\">\u00c7far\u00eb rezultati kishte migrimi nga ClickHouse pa autorizim n\u00eb ClickHouse me autorizim?<\/a><\/noindex><\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/489164\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u043e\u0434. \u041e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 \u0438\u043b\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Kubernetes \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &quot;Voluntary Disruption&quot;. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0446\u0438\u043a\u043b\u0430 \u0438\u0437 4 \u043f\u043e\u0441\u0442\u043e\u0432: \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b pod\u2019\u043e\u0432 \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":70832,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-70831","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=\"\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u043e\u0434. \u041e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 \u0438\u043b\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Kubernetes \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &quot;Voluntary Disruption&quot;. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0446\u0438\u043a\u043b\u0430 \u0438\u0437 4 \u043f\u043e\u0441\u0442\u043e\u0432: \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b pod\u2019\u043e\u0432 \u0432\" \/>\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\/obnovlenie-kubernetes-klastera-bez-prostoya\" \/>\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\udd47\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u043e\u0434. \u041e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 \u0438\u043b\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Kubernetes \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &quot;Voluntary Disruption&quot;. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0446\u0438\u043a\u043b\u0430 \u0438\u0437 4 \u043f\u043e\u0441\u0442\u043e\u0432: \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b pod\u2019\u043e\u0432 \u0432\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya\" \/>\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-02-21T11:42:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:45+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\udd47P\u00ebrdit\u00ebsimi i klasterit Kubernetes pa asnj\u00eb koh\u00eb pezullimi | ProHoster","description":"Procesi i p\u00ebrdit\u00ebsimit p\u00ebr klasterin tuaj Kubernetes N\u00eb nj\u00eb moment, kur p\u00ebrdorni klasterin Kubernetes, lind nevoja p\u00ebr t\u00eb p\u00ebrdit\u00ebsuar nodet q\u00eb funksionojn\u00eb. Kjo mund t\u00eb p\u00ebrfshij\u00eb p\u00ebrdit\u00ebsime t\u00eb paketave, p\u00ebrdit\u00ebsimin e kernels ose nd\u00ebrrimin e imazheve t\u00eb reja t\u00eb makinave virtuale. N\u00eb terminologjin\u00eb e Kubernetes kjo quhet \"Shk\u00ebputje Vullnetar\u00eb\". Ky post \u00ebsht\u00eb pjes\u00eb e nj\u00eb cikli prej 4 postesh: Ky post. P\u00ebrfundimi i duhur i pod'ave n\u00eb","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya","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\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u044f | ProHoster","og:description":"\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u043e\u0434. \u041e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 \u0438\u043b\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Kubernetes \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &quot;Voluntary Disruption&quot;. \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0446\u0438\u043a\u043b\u0430 \u0438\u0437 4 \u043f\u043e\u0441\u0442\u043e\u0432: \u042d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b pod\u2019\u043e\u0432 \u0432","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya","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-02-21T11:42:15+00:00","article:modified_time":"2020-03-03T13:14:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"70831","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 19:13:22","updated":"2022-09-29 13:06:50"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/70831","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=70831"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/70831\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/70832"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=70831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=70831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=70831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}