{"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\/et\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya","title":{"rendered":"Kubernetes klastrite uuendamine ilma seisakuta","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes klastrite uuendamine ilma seisakuta\" src=\"\/wp-content\/uploads\/2020\/02\/53cdba726a58c16679c6443191f28321.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Teie Kubernetes-klastri v\u00e4rskendamise protsess<\/em><\/p>\n<p><\/p>\n<p>Kubernetes-klastri kasutamise k\u00e4igus tekib vajadus v\u00e4rskendada t\u00f6\u00f6tavaid s\u00f5lmi. See v\u00f5ib h\u00f5lmata paketihalduse v\u00e4rskendusi, tuuma uuendamist v\u00f5i uute virtuaalmasinate piltide juurutamist. Kubernetes'e terminoloogias nimetatakse seda <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/disruptions\/#voluntary-and-involuntary-disruptions\">\"Voluntary Disruption\"<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>See postitus on osa neljast postitusest:<\/p>\n<p><\/p>\n<ol>\n<li>See postitus.<\/li>\n<li>Kubernetes-klastri pod'ide \u00f5igete l\u00f5petamisprotseduuride j\u00e4rgimine<\/li>\n<li>Pod'i eemaldamisel programm l\u00f5petatakse.<\/li>\n<li>Kuidas v\u00e4ltida Kubernetes-klastri t\u00f6\u00f6katkestusi PodDisruptionBudgets'i abil<\/li>\n<\/ol>\n<p><\/p>\n<p><em>(n\u00e4it. t\u00f5lke \u00fclej\u00e4\u00e4nud artiklite kohta oodake varsti)<\/em><\/p>\n<p><\/p>\n<p>Selles artiklis k\u00e4sitleme k\u00f5iki t\u00f6\u00f6riistu, mida Kubernetes pakub, et saavutada nullaegse t\u00f6\u00f6katkestus teie klastri t\u00f6\u00f6tavatele s\u00f5lmedele.<\/p>\n<p><\/p>\n<h2 id=\"opredelenie-problemy\">Probleemi m\u00e4\u00e4ratlemine<\/h2>\n<p><\/p>\n<p>Alguses kasutame me lihtsat l\u00e4henemist, et tuvastada probleeme ja hinnata selle l\u00e4henemise v\u00f5imalikke riske, samas kogume teadmisi iga probleemi lahendamiseks, millega seni silmitsi seisame. Tulemuseks on konfiguratsioon, kus on kasutusel lifecycle hooks, readiness probes ja Pod disruption budgets, et saavutada null seisakuaega. <\/p>\n<p><\/p>\n<p>Algusena v\u00f5ime tuua konkreetsed n\u00e4ited. Oletame, et meil on kaks node'iga Kubernetes'i klaster, kus t\u00f6\u00f6tab rakendus kahel pod'il, mis on taga <code>Teenused<\/code>:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes klastrite uuendamine ilma seisakuta\" src=\"\/wp-content\/uploads\/2020\/02\/f1eb999a0a088d7ed5b54c71e9b9ed1e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Alustame kahe pod\u2019iga, kus t\u00f6\u00f6tab Nginx ja Service meie kahe Kubernetes klastris oleva s\u00f5lme peal.<\/em><\/p>\n<p><\/p>\n<p>Soovime uuendada kahe t\u00f6\u00f6 s\u00f5lme tuumaversiooni meie klastris. Kuidas seda teha? Lihtsaim lahendus oleks k\u00e4ivitada uued s\u00f5lmed uuendatud konfiguratsiooniga ja seej\u00e4rel v\u00e4lja l\u00fclitada vanad s\u00f5lmed, samal ajal kui uusi k\u00e4ivitame. Kuigi see toimib, on sellise l\u00e4henemisega mitmeid probleeme:<\/p>\n<p><\/p>\n<ul>\n<li>Kui te v\u00e4ljal\u00fclitate vanad s\u00f5lmed, siis v\u00e4ljal\u00fclitatakse ka nendel t\u00f6\u00f6tavad pod\u2019id. Mis juhtub, kui pod\u2019id tuleb \u00f5igeks v\u00e4ljal\u00fclitamiseks puhastada? Teie kasutatav virtualiseerimiss\u00fcsteem ei pruugi oodata puhastusprotsessi l\u00f5puni.<\/li>\n<li>Mis juhtub, kui te v\u00e4lja l\u00fclitate k\u00f5ik s\u00f5lmed korraga? Saate korraliku seisaku, kuni pod\u2019id liiguvad uutele s\u00f5lmedele.<\/li>\n<\/ul>\n<p><\/p>\n<p>Meile on vajalik viis pod\u2019ide \u00f5igeks migreerimiseks vanadelt s\u00f5lmedelt, olles samal ajal kindlad, et \u00fckski meie t\u00f6\u00f6protsess ei t\u00f6\u00f6ta, kui me teeme muudatusi s\u00f5lmele. V\u00f5i kui me teeme klusteri t\u00e4ieliku asendamise, nagu n\u00e4ites (st asendame virtuaalmasinate kujundid), tahame viia t\u00f6\u00f6tavad rakendused vanadelt s\u00f5lmedelt uutele. M\u00f5lemal juhul soovime takistada uute pod\u2019ide planeerimist vanadele s\u00f5lmedele ning seej\u00e4rel evakueerida k\u00f5ik t\u00f6\u00f6tavad pod\u2019id nendelt. Nende eesm\u00e4rkide saavutamiseks saame kasutada k\u00e4sku <code>kubectl drain<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"pereraspredelenie-vseh-podov-s-nody\">K\u00f5ikide pod\u2019ide \u00fcmberjaotamine s\u00f5lmest<\/h2>\n<p><\/p>\n<p>K\u00e4sk drain v\u00f5imaldab k\u00f5ik pod\u2019id s\u00f5lmest \u00fcmber jaotada. Drain'i t\u00e4itmise protsessis m\u00e4rgitakse s\u00f5lm kui unschedulable (lipp <code>NoSchedule<\/code>). See on takistab uute pod'ide tekkimist. Seej\u00e4rel drain hakkab pod'e nodest v\u00e4lja viima, l\u00f5petades konteinerite t\u00f6\u00f6, mis on hetkel nodis k\u00e4imas, saates signaali <code>TERM<\/code> konteineritele pod\u2019is.<\/p>\n<p><\/p>\n<p>Kuigi <code>kubectl drain<\/code> drainimisega saadakse h\u00e4sti hakkama, kuid on veel kaks tegurit, mis v\u00f5ivad p\u00f5hjustada operatsiooni drain eba\u00f5nnestumise:<\/p>\n<p><\/p>\n<ul>\n<li>Teie rakendus peab oskama korrektselt l\u00f5petada signaali saamisel. <code>TERM<\/code> Kui pod'id viiakse v\u00e4lja, saadab Kubernetes signaali <code>TERM<\/code> konteineritele ja ootab nende \u00e4ralangemist m\u00e4\u00e4ratud aja jooksul, p\u00e4rast mida, kui nad ei ole l\u00f5petanud, l\u00f5petab nad j\u00f5hkralt. Igatahes, kui teie konteiner ei reageeri signaalile \u00f5igesti, v\u00f5ite ikkagi pod'ed l\u00f5petada vale viisiga, kui nad on konkreetsel hetkel t\u00f6\u00f6s (n\u00e4iteks, kui andmebaasis toimub tehing).<\/li>\n<li>Te kaotate k\u00f5ik pod'id, kus teie rakendus asub. See v\u00f5ib olla hetkeks k\u00e4ttesaamatu, kui uued konteinerid k\u00e4ivitatakse uutest nodidest, v\u00f5i kui teie pod'id on juurutatud ilma kontrolleriteta, v\u00f5ivad nad \u00fcldse mitte uuesti k\u00e4ivituda. <\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"izbegaem-prostoya\">V\u00e4ltige seisakuid<\/h2>\n<p><\/p>\n<p>Kubernetes pakub j\u00e4rgmisi v\u00f5imalusi t\u00f5rgete t\u00f6\u00f6tlemiseks, et minimeerida seisaku aega, mis on p\u00f5hjustatud n\u00e4iteks node'i drain operatsioonist, nagu n\u00e4iteks vabatahtlik katkestus.<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod\/#termination-of-pods\">S\u00f5bralik katkestamine<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/container-lifecycle-hooks\/\">Eluts\u00fckli haakimise v\u00f5imalused<\/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>\u00dclej\u00e4\u00e4nud eluts\u00fckli jooksul kasutame neid Kubernetes'e funktsioone, et leevendada pod'ide \u00fcleviimise tagaj\u00e4rgi. Et peamist m\u00f5tet lihtsam j\u00e4lgida, kasutame \u00fclaltoodud n\u00e4idet j\u00e4rgmise ressursikonfiguratsiooniga:<\/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>See konfiguratsioon on minimaalne n\u00e4ide <code>Deployment<\/code>, mis haldab nginx pod'e klastris. Lisaks kirjeldab konfiguratsioon ressursi <code>Teenused<\/code>, mida saab kasutada nginx pod'idele klastris juurdep\u00e4\u00e4su saamiseks.<\/p>\n<p><\/p>\n<p>Kogu eluts\u00fckli jooksul laiendame iteratiivselt seda konfiguratsiooni, et l\u00f5pus sisaldaks see k\u00f5iki v\u00f5imalusi, mida Kubernetes pakub seisaku aja v\u00e4hendamiseks.<\/p>\n<p><\/p>\n<p><em>Ette n\u00e4ha t\u00e4ielikult rakendatud ja testitud versioon Kubernetes klastri uuendustest nullaja katkestustega AWS ja muudes ressurssides, k\u00fclastage <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\">Vaata ka teisi artikleid meie blogis:<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/481932\/\">Nulla aega jaandmine ning andmebaasid<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/480072\/\">Kubernetes: miks on s\u00fcsteemi ressursihalduse seadistamine nii oluline?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/481992\/\">Tektoni Pipeline \u2014 Kubernetesi natiivsed pipeline'id<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/473578\/\">D\u00fcnaamiliste moodulite koostamine Nginxile<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/473014\/\">Sissejuhatus Hashicorp Consul's Kubernetes volitusele<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/468779\/\">Milleks viis ClickHouse'i migreerimine ilma autentsioonita ClickHouse'iga autentsiooniga<\/a><\/noindex><\/li>\n<\/ul>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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\udd47Kubernetes klastri uuendamine katkestusteta | ProHoster","description":"Kubernetes klastri v\u00e4rskendamise protsess. Kubernetes klastri kasutamise k\u00e4igus tekib varem v\u00f5i hiljem vajadus t\u00f6\u00f6tavate s\u00f5lmide uuendamiseks. See v\u00f5ib h\u00f5lmata paketihalduri uuendusi, tuuma uuendamist v\u00f5i uute virtuaalmasinapiltide juurutamist. Kubernetes'i terminoloogias nimetatakse seda \"Voluntary Disruption\". See postitus on osa neljast postitusest: see postitus. Pod'ide korrektne l\u00f5petamine","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/70831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=70831"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/70831\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/70832"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=70831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=70831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=70831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}