{"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\/lv\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya","title":{"rendered":"Kubernetes klastera atjaunin\u0101\u0161ana bez d\u012bkst\u0101ves","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes klastera atjaunin\u0101\u0161ana bez d\u012bkst\u0101ves\" src=\"\/wp-content\/uploads\/2020\/02\/53cdba726a58c16679c6443191f28321.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Kubernetes klastera atjauno\u0161anas process<\/em><\/p>\n<p><\/p>\n<p>K\u0101d\u0101 br\u012bd\u012b, izmantojot Kubernetes klasteri, rodas nepiecie\u0161am\u012bba atjaunot akt\u012bv\u0101s noder. Tas var ietvert pakot\u0146u atjaunin\u0101jumus, kodola atjaunin\u0101jumus vai jaunu virtu\u0101lo ma\u0161\u012bnu att\u0113lu izplat\u012b\u0161anu. Kubernetes terminolo\u0123ij\u0101 tas tiek saukts par <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/disruptions\/#voluntary-and-involuntary-disruptions\">\"Br\u012bvpr\u0101t\u012bga trauc\u0113\u0161ana\"<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u0160is ieraksts ir da\u013ca no 4 ierakstu cikla:<\/p>\n<p><\/p>\n<ol>\n<li>\u0160is ieraksts.<\/li>\n<li>Pareiza pod\u2019iem darb\u012bbas p\u0101rtrauk\u0161ana Kubernetes klaster\u012b<\/li>\n<li>Atlikta pod\u2019a izn\u012bcin\u0101\u0161ana t\u0101 dz\u0113\u0161anas laik\u0101<\/li>\n<li>K\u0101 izvair\u012bties no d\u012bkst\u0101ves Kubernetes klaster\u012b, izmantojot PodDisruptionBudgets<\/li>\n<\/ol>\n<p><\/p>\n<p><em>(piez. tul. citu cikla rakstu tulkojumi gaid\u0101mi dr\u012bzum\u0101)<\/em><\/p>\n<p><\/p>\n<p>\u0160aj\u0101 rakst\u0101 m\u0113s aprakst\u012bsim visus r\u012bkus, ko Kubernetes nodro\u0161ina, lai sasniegtu nulles d\u012bkst\u0101vi j\u016bsu klastera akt\u012bvaj\u0101m noder.<\/p>\n<p><\/p>\n<h2 id=\"opredelenie-problemy\">Probl\u0113mas defin\u0113\u0161ana<\/h2>\n<p><\/p>\n<p>S\u0101kum\u0101 m\u0113s izmantosim naivo pieeju, defin\u0113jot probl\u0113mas un v\u0113rt\u0113jot potenci\u0101los \u0161\u012b pieejas riskus, k\u0101 ar\u012b uzkr\u0101jot zin\u0101\u0161anas, lai risin\u0101tu katru no probl\u0113m\u0101m, ar kur\u0101m sastapsimies vis\u0101 cikl\u0101. Rezult\u0101t\u0101 m\u0113s ieg\u016bsim konfigur\u0101ciju, kur\u0101 tiek izmantoti lifecycle hooks, readiness probes un Pod disruption budgets, lai sasniegtu m\u016bsu nulles d\u012bkst\u0101vi. <\/p>\n<p><\/p>\n<p>Lai uzs\u0101ktu m\u016bsu ce\u013cu, \u0146emsim konkr\u0113tu piem\u0113ru. Pie\u0146emsim, ka mums ir Kubernetes klasteris ar div\u0101m mezgl\u0101m, kur\u0101 darbojas lietojumprogramma ar diviem pod\u2019a, kas atrodas aiz <code>Serviss<\/code>:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Kubernetes klastera atjaunin\u0101\u0161ana bez d\u012bkst\u0101ves\" src=\"\/wp-content\/uploads\/2020\/02\/f1eb999a0a088d7ed5b54c71e9b9ed1e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>S\u0101ksim ar diviem pod\u2019iem ar Nginx un Servisu, kas darbojas m\u016bsu divos Kubernetes klastera noder.<\/em><\/p>\n<p><\/p>\n<p>M\u0113s v\u0113lamies atjaunot divu darboto noder kodola versiju m\u016bsu klaster\u012b. K\u0101 m\u0113s to izdar\u012bsim? Vienk\u0101r\u0161a risin\u0101juma b\u016btu jauni noder ar atjaunoto konfigur\u0101ciju, p\u0113c tam izsl\u0113dzot vecos noder, vienlaikus palai\u017eot jaunus. Lai gan tas darbosies, \u0161\u0101dam pieejai b\u016bs vair\u0101kas probl\u0113mas:<\/p>\n<p><\/p>\n<ul>\n<li>Kad j\u016bs izsl\u0113gsiet vecos noder, uz tiem uzst\u0101d\u012btie pod\u2019i tiks izsl\u0113gti ar\u012b. Ko dar\u012bt, ja pod\u2019i ir j\u0101not\u012bra, lai tos pareizi atsl\u0113gtu? J\u016bsu izmantot\u0101 virtualiz\u0101cijas sist\u0113ma var negaid\u012bt t\u012br\u012b\u0161anas procesa pabeig\u0161anu.<\/li>\n<li>Ko dar\u012bt, ja j\u016bs izsl\u0113gsiet visus noder vienlaikus? J\u016bs ieg\u016bsiet iev\u0113rojamu d\u012bkst\u0101vi, kam\u0113r pod\u2019i p\u0101riet uz jaunajiem noder.<\/li>\n<\/ul>\n<p><\/p>\n<p>Mums nepiecie\u0161ams pareizs veids, k\u0101 migr\u0113t podus no vecaj\u0101m mezgliem, un taj\u0101 pa\u0161\u0101 laik\u0101 j\u0101b\u016bt dro\u0161iem, ka neviens no m\u016bsu darba procesiem netiek palaists, kam\u0113r m\u0113s veicam izmai\u0146as mezgl\u0101. Vai, kad m\u0113s veicam piln\u012bgu klastera nomai\u0146u, k\u0101 iepriek\u0161min\u0113taj\u0101 piem\u0113r\u0101 (tas ir, nomain\u0101m VM att\u0113lus), m\u0113s v\u0113lamies p\u0101rvietot str\u0101d\u0101jo\u0161\u0101s lietojumprogrammas no vecajiem mezgliem uz jauniem. Abos gad\u012bjumos m\u0113s v\u0113lamies nov\u0113rst jaunu podu pl\u0101no\u0161anu vecajos mezglos, un p\u0113c tam izraid\u012bt no tiem visus palaistos podus. Lai sasniegtu \u0161os m\u0113r\u0137us, m\u0113s varam izmantot komandu <code>kubectl drain<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"pereraspredelenie-vseh-podov-s-nody\">Vizu podu p\u0101rdale no mezgla<\/h2>\n<p><\/p>\n<p>Dren\u0101\u017eas oper\u0101cija \u013cauj p\u0101rdal\u012bt visus podus no mezgla. Izpildes proces\u0101 mezgls tiek mar\u0137\u0113ts k\u0101 nesekm\u012bgs (flags <code>NoSchedule<\/code>). Tas nov\u0113r\u0161 jaunu podu par\u0101d\u012b\u0161anos uz t\u0101. P\u0113c tam dren\u0101\u017ea s\u0101k izraid\u012bt podus no mezgla, apturot konteinerus, kas \u0161obr\u012bd tiek palaisti mezgl\u0101, nos\u016btot sign\u0101lu <code>TERM<\/code> konteineriem pod\u0101.<\/p>\n<p><\/p>\n<p>Lai gan <code>kubectl drain<\/code> dren\u0101\u017ea veiksm\u012bgi izturas pret podu izraid\u012b\u0161anu, ir v\u0113l divi faktori, kas var izrais\u012bt darb\u012bbas dren\u0101\u017eas neizdo\u0161anos:<\/p>\n<p><\/p>\n<ul>\n<li>J\u016bsu lietojumprogrammai j\u0101sp\u0113j pareizi iziet, sa\u0146emot <code>TERM<\/code> sign\u0101lu. Kad podi tiek izraid\u012bti, Kubernetes nos\u016bta sign\u0101lu <code>TERM<\/code> konteineriem un gaida, kam\u0113r tie apst\u0101jas noteiktu laiku, p\u0113c kura, ja tie nav apst\u0101ju\u0161ies, tos aptur ar sp\u0113ku. Jebkur\u0101 gad\u012bjum\u0101, ja j\u016bsu konteiners nesaprat\u012bs sign\u0101lu pareizi, j\u016bs joproj\u0101m varat nepareizi izsl\u0113gt podus, ja tie \u0161obr\u012bd darbojas (piem\u0113ram, tiek izpild\u012bta datu b\u0101zes transakcija).<\/li>\n<li>J\u016bs zaud\u0113jat visus podus, kuros ir j\u016bsu lietojumprogramma. T\u0101 var b\u016bt nepieejama, kad jaunie konteineri tiek palaisti jaunajos mezglos, vai, ja j\u016bsu podi ir izvietoti bez kontrolieriem, tie var neats\u0101kties visp\u0101r. <\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"izbegaem-prostoya\">Izvair\u012b\u0161an\u0101s no d\u012bkst\u0101ves<\/h2>\n<p><\/p>\n<p>Lai minimiz\u0113tu d\u012bkst\u0101ves laiku no br\u012bvpr\u0101t\u012bgas trauc\u0113jumiem, piem\u0113ram, no dren\u0101\u017eas oper\u0101cijas mezgl\u0101, Kubernetes sniedz \u0161\u0101das k\u013c\u016bdu apstr\u0101des iesp\u0113jas:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod\/#termination-of-pods\">Gra\u017e\u012bga p\u0101rtrauk\u0161ana<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/container-lifecycle-hooks\/\">Dz\u012bves cikla \u0101\u0137i<\/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>P\u0101r\u0113j\u0101s cikla da\u013c\u0101s m\u0113s izmantosim \u0161\u012bs Kubernetes funkcijas, lai mazin\u0101tu podu p\u0101rvieto\u0161anas sekas. Lai b\u016btu viegl\u0101k sekot pamatidejai, m\u0113s izmantosim savu iepriek\u0161min\u0113to piem\u0113ru ar \u0161\u0101du resursa konfigur\u0101ciju:<\/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>\u0160\u012b konfigur\u0101cija ir minim\u0101lais piem\u0113rs <code>Deployment<\/code>, kas p\u0101rvalda nginx podus kopien\u0101. Turkl\u0101t konfigur\u0101cija apraksta resursu <code>Serviss<\/code>, kuru var izmantot, lai piek\u013c\u016btu nginx podiem kopien\u0101.<\/p>\n<p><\/p>\n<p>Vis\u0101 cikla laik\u0101 m\u0113s pak\u0101peniski papla\u0161in\u0101sim \u0161o konfigur\u0101ciju, lai beig\u0101s taj\u0101 iek\u013cautos visas Kubernetes sniegt\u0101s iesp\u0113jas, samazinot d\u012bkst\u0101ves laiku.<\/p>\n<p><\/p>\n<p><em>Lai ieg\u016btu piln\u012bb\u0101 ieviestu un p\u0101rbaud\u012btu Kubernetes klastera atjaunin\u0101jumu versiju bez d\u012bkst\u0101ves AWS un citos resursos, apmekl\u0113jiet <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\">Izlasiet ar\u012b citus rakstus m\u016bsu emu\u0101r\u0101:<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/481932\/\">Nulles d\u012bkst\u0101ves izvietojums un datu b\u0101zes<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/480072\/\">Kubernetes: k\u0101p\u0113c ir svar\u012bgi iestat\u012bt resursu p\u0101rvald\u012bbu sist\u0113m\u0101?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/481992\/\">Tekton Pipeline \u2014 Kubernetes-native pipelines<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/473578\/\">Dinamisko modu\u013cu veido\u0161ana Nginx<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/473014\/\">Ievads Hashicorp Consul Kubernetes autoriz\u0101cij\u0101<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nixys\/blog\/468779\/\">K\u0101 notika migr\u0101cija no ClickHouse bez autoriz\u0101cijas uz ClickHouse ar autoriz\u0101ciju<\/a><\/noindex><\/li>\n<\/ul>\n<p>Avots: <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 5.0.5 - 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.\" \/>\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\/lv\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/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 klastera atjaunin\u0101\u0161ana bez d\u012bkst\u0101ves | ProHoster","description":"Atjaunin\u0101\u0161anas process j\u016bsu.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/obnovlenie-kubernetes-klastera-bez-prostoya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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.","og:url":"https:\/\/prohoster.info\/lv\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/70831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=70831"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/70831\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/70832"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=70831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=70831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=70831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}