{"id":36246,"date":"2019-10-31T22:10:28","date_gmt":"2019-10-31T19:10:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada\/"},"modified":"2019-10-31T22:10:28","modified_gmt":"2019-10-31T19:10:28","slug":"avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada","title":{"rendered":"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>27. aprill konverentsil <noindex><a rel=\"nofollow\" href=\"https:\/\/nastachku.ru\/archive\/2019\/index.php\">Streik-2019<\/a><\/noindex>, DevOps sektsiooni raames, esitati ettekande \u201eKuberneteses automaatne skaleerimine ja ressursside haldamine\u201c. Ettekandes r\u00e4\u00e4gitakse, kuidas K8s saab tagada rakenduste k\u00f5rge k\u00e4ttesaadavuse ja maksimaalse j\u00f5udluse.<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/1dbca93f66eb0822348163922a1cd6da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTraditsiooniliselt oleme uhked esitama <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=10ZR-fbyuSY&amp;list=PL1mJ-PkCYnmB9vljnjxCMP3dlxQY3Dfcq\"><b>ettekande video vaatamiseks<\/b><\/a><\/noindex> (44 minutit, oluliselt informatiivsem kui artikkel) ja p\u00f5hijooned tekstivormis. Alustame!<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Arutame ettekande teemat s\u00f5na-s\u00f5nalt ja alustame l\u00f5pust.<\/p>\n<h2>Kubernetes<\/h2>\n<p>\nKujutage ette, et meil on serveris Docker-konteinerid. Miks? Et tagada korduvus ja isoleeritus, mis omakorda v\u00f5imaldab lihtsat ja kvaliteetset juurutamist, CI\/CD. Meil on palju selliseid konteineritega masinaid.<\/p>\n<p>Mida me sellisel juhul Kuberneteselt saame?<\/p>\n<ol>\n<li> Me l\u00f5petame nende masinate \u00fcle m\u00f5tlemise ja hakkame t\u00f6\u00f6tama \u201epilve\u201c <b>konteinerite klastriga<\/b> \u0438\u043b\u0438 pod&#8217;\u043e\u0432 (\u0433\u0440\u0443\u043f\u043f \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432).<\/li>\n<li> \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u043d\u0435 \u0434\u0443\u043c\u0430\u0435\u043c \u0434\u0430\u0436\u0435 \u043f\u0440\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 pod&#8217;\u044b, \u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0449\u0451 \u0431<i>o<\/i>suuremaid gruppe. Tooted <b>k\u00f5rgtaseme primitivid<\/b> annavad meile v\u00f5imaluse \u00f6elda, et on mall teatud t\u00f6\u00f6koormuse k\u00e4ivitamiseks, ja siin on vajalik nende instantside arv. Kui hiljem muudame malli \u2014 muudavad ka k\u00f5ik instantsid.<\/li>\n<li> K\u00e4esoleva abil <b>deklaratiivne API<\/b> \u043c\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u00ab\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u0438\u0440\u0430\u00bb (\u0432 YAML), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f Kubernetes&#8217;\u043e\u043c. \u0418 \u0441\u043d\u043e\u0432\u0430: \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0438 \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.<\/li>\n<\/ol>\n<p><\/p>\n<h2>Ressursside haldamine<\/h2>\n<p><\/p>\n<h3>CPU<\/h3>\n<p>\nKujutage ette, et serveris k\u00e4ivitame nginx, php-fpm ja mysql. Neil teenustel on tegelikult veel rohkem t\u00f6\u00f6tavaid protsesse, iga\u00fchel neist on vaja arvutusressursse:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/3ec2ef12bb7666456dddfaf762925f4e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>(slaidil olevad numbrid \u2014 \u201epapagoi\u201c, iga protsessi arvutusv\u00f5imsuse abstraktne vajadus)<\/i><\/p>\n<p>Selle mugavaks k\u00e4sitlemiseks on m\u00f5istlik r\u00fchmitada protsessid gruppidesse (n\u00e4iteks k\u00f5ik nginx protsessid \u00fchte gruppi \u201enginx\u201c). Lihtsaim ja ilmsem viis selleks on paigutada iga grupp konteinerisse:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/36ac6b6899ebc3a1f33f2caa2bc2ccd2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEnne j\u00e4tkamist tuleb meeles pidada, mis on konteiner (Linuxis). Nende teke sai v\u00f5imalikuks kolme peamise funktsiooni t\u00f5ttu tuumas, mis on juba ammu rakendatud: <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/capabilities.7.html\">v\u00f5imed<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/namespaces.7.html\">namespaces<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/cgroups.7.html\">cgroups<\/a><\/noindex>. Edasisele arengule aitasid kaasa ka teised tehnoloogiad (sealhulgas mugavad \u201eshellid\u201c nagu Docker):<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/65369d8bdc23554b972f60a81446b385.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00e4esolevas ettekandes huvitab meid ainult <b>cgroups<\/b>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u2014 \u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 (Docker&#8217;\u0430 \u0438 \u0442.\u043f.), \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u044b, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0435 \u0432 \u0433\u0440\u0443\u043f\u043f\u044b, \u043a\u0430\u043a \u043c\u044b \u0442\u043e\u0433\u043e \u0445\u043e\u0442\u0435\u043b\u0438, \u2014 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b.<\/p>\n<p>Naaseme nende protsesside CPU vajaduste juurde ning n\u00fc\u00fcd \u2014 protsessigruppide vajadustele:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/a087c3239a63a703d308401ae0083e32.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>(kordan, et k\u00f5ik numbrid on abstraktne ressursivajaduse v\u00e4ljendus)<\/i><\/p>\n<p>Samuti on CPU-l teatud l\u00f5plik ressurss <i>(n\u00e4ites on see 1000)<\/i>, mille k\u00f5igile ei pruugi piisata (k\u00f5igi gruppide vajaduste summa \u2014 150+850+460=1460). Mis sel juhul juhtub?<\/p>\n<p>Tuuma hakkab ressursse jaotama ja teeb seda \"ausalt\", jagades igale grupile sama hulga ressursse. Kuid esimeses olukorras on neid rohkem kui vajalik (333&gt;150), seega j\u00e4\u00e4b \u00fclej\u00e4\u00e4k (333-150=183) reservi, mis jagatakse samuti v\u00f5rdselt kahe teise konteineri vahel:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/fa358b02ba232045e27fd8e2e6f45f08.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL\u00f5puks: esimesel konteineril oli ressursse piisavalt, teisel \u2014 palju ei piisanud, kolmandal \u2014 veidi ei piisanud. Nii on tulemuseks <b>\"aus\" planeerija Linuxis<\/b> \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Completely_Fair_Scheduler\">CFS<\/a><\/noindex>. Tema t\u00f6\u00f6d saab reguleerida, m\u00e4\u00e4rates <b>kaalu<\/b> iga konteineri jaoks. N\u00e4iteks selliselt:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/ad100d55d2379d143f1ea8a257f8e494.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (php-fpm). \u0412\u0441\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438 \u043f\u043e\u0440\u043e\u0432\u043d\u0443. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, master-\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e, \u0430 \u0432\u0441\u0435 worker&#8217;\u044b \u0442\u043e\u0440\u043c\u043e\u0437\u044f\u0442, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u043e\u0442 \u043d\u0443\u0436\u043d\u043e\u0433\u043e:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/4f7c00fb16f33d4e57355bebb2270099.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNii t\u00f6\u00f6tab CFS planeerija. Kaalud, mille me konteineritele m\u00e4\u00e4rame, nimetame edaspidi <b>request&#8217;\u0430\u043c\u0438<\/b>. Miks just nii \u2014 vt l\u00e4hemalt.<\/p>\n<p>Vaata olukorda ka teiselt poolt. Nagu \u00f6eldakse, k\u00f5ik teed viivad Rooma, ja arvuti puhul \u2014 CPU juurde. CPU on \u00fcks, \u00fclesandeid palju \u2014 vajalik on reguleerimine. Lihtsaim viis ressursside juhtimiseks on 'reguleeringuline': anname \u00fchele protsessile fikseeritud aja CPU juurde p\u00e4\u00e4semiseks, siis j\u00e4rgmisele jne.<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/e8abd2a719ad447755bdb114a2e72d46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeda l\u00e4henemist nimetatakse rangeks kvoteerimiseks <i>(hard limiting)<\/i>. Salvestame selle lihtsalt kui <b>piirid<\/b>. Siiski, kui jagada k\u00f5igile konteineritele piirid, tekib probleem: mysql s\u00f5itis teel ja \u00fchel hetkel l\u00f5ppes selle vajadus CPU j\u00e4rele, kuid k\u00f5ik teised protsessid peavad ootama, kuni CPU <b>on vabastatud<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/f88e8732f0d8c72b040d0b47d2c0a4e6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNaaseme Linuxi tuuma juurde ja selle suhtlemisse CPU-ga \u2014 \u00fcldine pilt on j\u00e4rgmine:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/25c9ba677db4c692251a17f46531a52e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCgroup'il on kaks seadistust \u2014 p\u00f5him\u00f5tteliselt kaks lihtsat 'nuppu', mis m\u00e4\u00e4ravad:<\/p>\n<ol>\n<li> \u0432\u0435\u0441 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (request&#8217;\u044b) \u2014 \u044d\u0442\u043e <b>shares<\/b>;<\/li>\n<li> CPU \u00fcldise t\u00f6\u00f6tamise ajast konteineri \u00fclesannete t\u00e4itmiseks (limiidid) \u2014 see on <b>quota<\/b>.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Kuidas CPU-d m\u00f5\u00f5ta?<\/h3>\n<p>\nOn erinevaid viise:<\/p>\n<ol>\n<li> Mis see on <i>papagei<\/i>, keegi ei tea \u2014 peab iga kord kokku leppima.<\/li>\n<li> <i>Protsendid<\/i> on arusaadavamad, kuid suhtelised: 50% 4 tuumaga serverist ja 20 tuumaga serverist on t\u00e4iesti erinevad asjad.<\/li>\n<li> V\u00f5ib kasutada juba mainitud <i>kaalu<\/i>, mida Linux tunneb, kuid need on samuti suhtelised.<\/li>\n<li> K\u00f5ige adekvaatsem valik on m\u00f5\u00f5ta arvutusressursse <i>sekundites<\/i>. St. protsessorit\u00f6\u00f6aja sekundid v\u00f5rreldes tegeliku aja sekunditega: anti 1 sekund protsessorit\u00f6\u00f6d 1 tegelikus sekundis \u2014 see on t\u00e4ielik CPU tuum.<\/li>\n<\/ol>\n<p>\nEt asi veel lihtsamaks teha, hakati m\u00f5\u00f5tma otse <i>tuumade<\/i>, m\u00f5istes nende all CPU aega v\u00f5rreldes tegeliku ajaga. Kuna Linux m\u00f5istab kaalu, mitte protsessorit\u00f6\u00f6d\/tuumasid, oli vajalik mehanism \u00fche teisest teisendamiseks.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0441 3 \u044f\u0434\u0440\u0430\u043c\u0438 CPU, \u0433\u0434\u0435 \u0442\u0440\u0451\u043c pod&#8217;\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u0432\u0435\u0441\u0430 (500, 1000 \u0438 1500), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0433\u043a\u043e \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043c \u044f\u0434\u0435\u0440 (0,5, 1 \u0438 1,5).<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/6a173d56847569fd071d642dcce5c5ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0415\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0433\u0434\u0435 \u044f\u0434\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432\u0434\u0432\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 (6), \u0438 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u043c \u0442\u0435 \u0436\u0435 pod&#8217;\u044b, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0435\u0440 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043d\u0430 2 (1, 2 \u0438 3 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e). \u041d\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 pod, \u0432\u0435\u0441 \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0443\u0441\u0442\u044c \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 3000. \u041e\u043d \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0435\u0431\u0435 \u0447\u0430\u0441\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 CPU (\u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u044f\u0434\u0435\u0440), \u0430 \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 pod&#8217;\u043e\u0432 \u043e\u043d\u0438 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f (\u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u0441\u044f \u0432\u0434\u0432\u043e\u0435):<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/a74fa4b7964bfbfbce3568b1ce35c13a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Kubernetes ja CPU ressursid<\/h3>\n<p>\nKubernetes'is m\u00f5\u00f5detakse CPU ressursse <b>milliarhades<\/b>, st p\u00f5hikaaluks on 0,001 tuuma. <i>(Seda samme nimetatakse Linuxi\/cgroups terminoloogias CPU share, kuigi t\u00e4psemalt \u00f6eldes on 1000 milliarhad = 1024 CPU jagu.)<\/i> K8s \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 pod&#8217;\u043e\u0432, \u0447\u0435\u043c \u0435\u0441\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 CPU \u0434\u043b\u044f \u0441\u0443\u043c\u043c\u044b \u0432\u0435\u0441\u043e\u0432 \u0432\u0441\u0435\u0445 pod&#8217;\u043e\u0432.<\/p>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442? \u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u044f\u0434\u0435\u0440 CPU. \u0410 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e pod&#8217;\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a Kubernetes \u0437\u043d\u0430\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f\u0434\u0435\u0440 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u044d\u0442\u043e\u043c\u0443 pod&#8217;\u0443. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, pod \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440, \u0433\u0434\u0435 \u044f\u0434\u0435\u0440 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>Mis juhtub, kui <b>ei<\/b> \u0443\u043a\u0430\u0437\u0430\u043d request (\u0442.\u0435. \u0443 pod&#8217;\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0443\u0436\u043d\u044b\u0445 \u0435\u043c\u0443 \u044f\u0434\u0435\u0440)? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u043a\u0430\u043a Kubernetes \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b.<\/p>\n<p>\u0423 pod&#8217;\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438 request&#8217;\u044b (\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a CFS), \u0438 \u043b\u0438\u043c\u0438\u0442\u044b (\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u0441\u0432\u0435\u0442\u043e\u0444\u043e\u0440?):<\/p>\n<ul>\n<li> \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0440\u0430\u0432\u043d\u044b\u0435, \u0442\u043e pod&#8217;\u0443 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f QoS-\u043a\u043b\u0430\u0441\u0441 <b>garanteeritud<\/b>. See t\u00e4hendab, et antud hulga tuumade k\u00e4ttesaadavus on garanteeritud.<\/li>\n<li> Kui request on v\u00e4iksem, siis QoS-klass on <b>burstable<\/b>. See t\u00e4hendab, et me eeldame, et pod kasutab n\u00e4iteks alati 1 tuuma, kuid see v\u00e4\u00e4rtus ei ole tema jaoks piirang: <i>m\u00f5nikord<\/i> pod v\u00f5ib kasutada ka rohkem (kui serveris on sellele vabu ressursse).<\/li>\n<li> On veel QoS-klass <b>parim pingutus<\/b> \u2014 \u043a \u043d\u0435\u043c\u0443 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 pod&#8217;\u044b, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d request. \u0420\u0435\u0441\u0443\u0440\u0441\u044b \u0438\u043c \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c.<\/li>\n<\/ul>\n<p><\/p>\n<h3>M\u00e4lu<\/h3>\n<p>\nM\u00e4lu puhul on olukord sarnane, kuid natuke erinev \u2014 need ressursid on oma olemuselt erinevad. \u00dcldiselt on analoogia j\u00e4rgmine:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/d933fb1febdc30e256af158132b9dbb0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f request&#8217;\u044b. \u041f\u0443\u0441\u0442\u044c pod&#8217;\u044b \u0436\u0438\u0432\u0443\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0438\u0437\u043c\u0435\u043d\u044f\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u043f\u043e\u043a\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0442\u0430\u043a\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c, \u0447\u0442\u043e \u043f\u0430\u043c\u044f\u0442\u044c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f OOM killer \u0438 \u0443\u0431\u0438\u0432\u0430\u0435\u0442 \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/a3726c24937c64ae21c21df7642b98c8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuid see ei ole alati vastuv\u00f5etav, seet\u00f5ttu on v\u00f5imalus reguleerida, millised protsessid on meie jaoks olulised ja ei tohiks \u00e4ra m\u00f5\u00f5da. Selleks kasutatakse parameetrit <b>oom_score_adj<\/b>.<\/p>\n<p>\u0412\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043a QoS-\u043a\u043b\u0430\u0441\u0441\u0430\u043c CPU \u0438 \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044e \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 oom_score_adj, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u043c\u0438 \u0434\u043b\u044f pod&#8217;\u043e\u0432 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u043f\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438:<\/p>\n<ul>\n<li> \u0421\u0430\u043c\u043e\u0435 \u043d\u0438\u0437\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 oom_score_adj \u0443 pod&#8217;\u0430 \u2014 -998 \u2014 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 pod \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u0431\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0430\u043c\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u044d\u0442\u043e <b>garanteeritud<\/b>.<\/li>\n<li> K\u00f5rgeim v\u00e4\u00e4rtus on 1000, see <b>parim pingutus<\/b>, \u0442\u0430\u043a\u0438\u0435 pod&#8217;\u044b \u0443\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u0441\u0435\u0445.<\/li>\n<li> \u00dclej\u00e4\u00e4nud v\u00e4\u00e4rtuste arvutamiseks (<b>burstable<\/b>) on olemas valem, mille sisu seisneb selles, et mida rohkem pod on ressursse tellinud, seda v\u00e4iksem on t\u00f5en\u00e4osus, et teda tapetakse.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/27c95eb705d06dd90caff34afd14ef16.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeine \"nupp\" \u2014 <b>limit_in_bytes<\/b> \u2014 piiride jaoks. Siin on k\u00f5ik lihtsam: me m\u00e4\u00e4rame lihtsalt maksimaalse m\u00e4luhulga ja siin (erinevalt CPU-st) ei ole k\u00fcsimust, milles seda (m\u00e4lu) m\u00f5\u00f5ta.<\/p>\n<h3>Kokku<\/h3>\n<p>\n\u041a\u0430\u0436\u0434\u043e\u043c\u0443 pod&#8217;\u0443 \u0432 Kubernetes \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f <code>requests<\/code> ja <code>limits<\/code> \u2014 nii CPU kui ka m\u00e4lum\u00f5\u00f5turite parameetrid:<\/p>\n<ol>\n<li> \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 requests \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 pod&#8217;\u044b \u043f\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c;<\/li>\n<li> \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f QoS-\u043a\u043b\u0430\u0441\u0441 pod&#8217;\u0430;<\/li>\n<li> CPU requests'i alusel arvutatakse suhtelised kaalud;<\/li>\n<li> CPU requests'i alusel konfigureeritakse CFS-plaane;<\/li>\n<li> m\u00e4lurequestide p\u00f5hjal konfigureeritakse OOM tapja;<\/li>\n<li> CPU limitide alusel konfigureeritakse \"foor\";<\/li>\n<li> \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 memory limits \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u043c\u0438\u0442 \u043d\u0430 cgroup&#8217;\u0443.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/201ac0bc7ad53c9c8a75cf9ff5f618b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKokkuv\u00f5ttes vastab see pilt k\u00f5igile k\u00fcsimustele, kuidas toimub peamine ressursihaldus Kuberneteses.<\/p>\n<h2>Automaatne skaleerimine<\/h2>\n<p><\/p>\n<h3>K8s kluster-automaatskaalija<\/h3>\n<p>\nKujutame ette, et kogu kluster on juba h\u00f5ivatud ja peab olema loodud uus pod. Seni kuni pod ei saa ilmuda, on see staatuses <i>Ootel<\/i>. Et see ikkagi ilmuks, saame liita uue serveri klusteriga v\u00f5i\u2026 installida cluster-automaatskaalija, mis teeb selle meie eest: tellib virtuaalse masina pilveteenuse pakkujalt (API p\u00e4ringu kaudu) ja liidab selle klusteriga, p\u00e4rast mida pod lisatakse.<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/89e771daa4d69b3b3c72ef8adba54a5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee ongi Kubernetesi klustere automaatne skaleerimine, mis meie kogemuse kohaselt t\u00f6\u00f6tab suurep\u00e4raselt. Kuid nagu alati, on siin oma n\u00fcansid...<\/p>\n<p>Kuna me klastrit suurendasime, oli k\u00f5ik h\u00e4sti, aga mis juhtub, kui klaster <b>hakkab vabastama<\/b>? \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c pod&#8217;\u044b (\u0434\u043b\u044f \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0445\u043e\u0441\u0442\u043e\u0432) \u043e\u0447\u0435\u043d\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u043e \u0438 \u0434\u043e\u0440\u043e\u0433\u043e \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c. \u0412 Kubernetes \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u0437 3 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0435\u0441\u0442\u044c Deployment. \u0423 \u043d\u0435\u0433\u043e 6 pod&#8217;\u043e\u0432: \u0441\u0435\u0439\u0447\u0430\u0441 \u044d\u0442\u043e \u043f\u043e 2 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440. \u041c\u044b \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>kubectl drain<\/code>, mis:<\/p>\n<ul>\n<li> \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 pod&#8217;\u044b \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440;<\/li>\n<li> \u0443\u0434\u0430\u043b\u0438\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 pod&#8217;\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<\/li>\n<\/ul>\n<p>\n\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 Kubernetes \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u043b\u0430 pod&#8217;\u043e\u0432 (6), \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e <b>loob<\/b> \u0438\u0445 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0437\u043b\u0430\u0445, \u043d\u043e \u043d\u0435 \u043d\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u0443\u0436\u0435 \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 pod&#8217;\u043e\u0432. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0430\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0434\u043b\u044f Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/cfebfa60b5a67ed1155789837c824a44.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041e\u0434\u043d\u0430\u043a\u043e \u0438 \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441. \u0412 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0434\u043b\u044f StatefulSet (\u0432\u043c\u0435\u0441\u0442\u043e Deployment) \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u044b\u043c\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 stateful-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0440\u0438 pod&#8217;\u0430 \u0441 MongoDB, \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 (\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u043b\u0438\u0441\u044c \u0438\u043b\u0438 \u0438\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f pod&#8217;\u0443). \u0418 \u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u0440\u0435\u0448\u0430\u0435\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0435\u0440. \u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442?<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/9bfc0d2685e2aa7828a135be2590741b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMongoDB <i>v\u00f5iks<\/i> suretuks, kuna tal on vajalik kvorum: kolmest installeeritud klastrist peab v\u00e4hemalt kaks toimima. Kuid seda <i>ei juhtu<\/i> \u2014 t\u00e4nu <b>PodDisruptionBudget<\/b>. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 pod&#8217;\u043e\u0432. \u0417\u043d\u0430\u044f, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 pod&#8217;\u043e\u0432 \u0441 MongoDB \u0443\u0436\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0438 \u0443\u0432\u0438\u0434\u0435\u0432, \u0447\u0442\u043e \u0434\u043b\u044f MongoDB \u0432 PodDisruptionBudget \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <code>minAvailable: 2<\/code>, Kubernetes ei luba pod'i eemaldada.<\/p>\n<p>\u0418\u0442\u043e\u0433: \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 (\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u2014 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435) pod&#8217;\u043e\u0432 \u043f\u0440\u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c PodDisruptionBudget.<\/p>\n<h3>Horiontaalne skaleerimine<\/h3>\n<p>\n\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u0415\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0435 \u043a\u0430\u043a Deployment \u0432 Kubernetes. \u041d\u0430 \u0435\u0433\u043e pod&#8217;\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0445 \u0442\u0440\u0438) \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a, \u0430 \u043c\u044b \u0432 \u043d\u0438\u0445 \u0437\u0430\u043c\u0435\u0440\u044f\u0435\u043c \u043d\u0435\u043a\u0438\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c (\u0441\u043a\u0430\u0436\u0435\u043c, \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 CPU). \u041a\u043e\u0433\u0434\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442, \u043c\u044b \u044d\u0442\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e pod&#8217;\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0432 Kubernetes \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e: \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435\/\u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 pod&#8217;\u043e\u0432 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0437\u0430\u043c\u0435\u0440\u044f\u0435\u043c\u044b\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/092fb2d523f1f53670b3850ed3c3fac7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiin on peamised k\u00fcsimused, <b>mida t\u00e4pselt m\u00f5\u00f5ta<\/b> ja <b>kuidas t\u00f5lgendada<\/b> \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0447\u0438\u0441\u043b\u0430 pod&#8217;\u043e\u0432). \u0418\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e\u0435:<\/p>\n<p><img decoding=\"async\" alt=\"Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)\" src=\"\/wp-content\/uploads\/2019\/07\/1c7f6d35fc0cbae85b88f6a062797ed2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuidas seda tehniliselt teha \u2014 m\u00f5\u00f5tmete kogumine jne \u2014 olen ma detailselt kirjeldanud oma ettekandes <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/412901\/\">J\u00e4lgimine ja Kubernetes<\/a><\/noindex>. Peamine soovitus optimaalseid parameetreid valides on <b>katsetage<\/b>!<\/p>\n<p>On <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/usemethod.html\">metoodika USE<\/a><\/noindex> <i>(Kasutuse Saturatsioon ja Vead<\/i>), \u0441\u043c\u044b\u0441\u043b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c. \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0447\u0435\u0433\u043e \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, php-fpm? \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e worker&#8217;\u044b \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u2014 \u044d\u0442\u043e <i>kasutamine<\/i>. \u0410 \u0435\u0441\u043b\u0438 worker&#8217;\u044b \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438\u0441\u044c \u0438 \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u2014 \u044d\u0442\u043e \u0443\u0436\u0435 <i>saturatsioon<\/i>. M\u00f5lemat parameetrit tuleb m\u00f5\u00f5ta ning v\u00e4\u00e4rtuste p\u00f5hjal tuleks skaleerimisega edasi minna.<\/p>\n<h2>Kokkuv\u00f5tte asemel<\/h2>\n<p>\nEttekandel on j\u00e4tk: vertikaalsest skaleerimisest ja sellest, kuidas \u00f5igesti ressursse valida. R\u00e4\u00e4gin sellest tulevastes videotes <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">meie YouTube'is<\/a><\/noindex> \u2014 tellige, et mitte midagi maha magada!<\/p>\n<h2>Video ja slaidid<\/h2>\n<p>\nEsitluse video (44 minutit):<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"10ZR-fbyuSY\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/10ZR-fbyuSY\/hqdefault.jpg\" alt=\"Vaata videot\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Ettekande esitlus:<\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"\/\/speakerdeck.com\/player\/2b7f3521ca3b43dd9c711cb74ba58dfd\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><\/p>\n<h2>P.S.<\/h2>\n<p>\nTeised ettekanded Kubernetesest meie blogis:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/449096\/\">Laiendame ja t\u00e4iendame Kuberneteset<\/a><\/noindex>\u00bb <i>(Andrei Polovov; 8. aprill 2019 Saint HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/431500\/\">Andmebaasid ja Kubernetes<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 8. november 2018 HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">J\u00e4lgimine ja Kubernetes<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 28. mai 2018 RootConf'is)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/345116\/\">Parimad CI\/CD praktikud Kubernetesega ja GitLabiga<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 7. november 2017 HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Meie kogemus Kubernetesega v\u00e4ikestes projektides<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 6. juuni 2017 RootConf'il)<\/i>.<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/459326\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>27 \u0430\u043f\u0440\u0435\u043b\u044f \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0421\u0442\u0430\u0447\u043a\u0430-2019, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0435\u043a\u0446\u0438\u0438 \u00abDevOps\u00bb, \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u00ab\u0410\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432 Kubernetes\u00bb. \u0412 \u043d\u0451\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e K8s \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c (44 \u043c\u0438\u043d\u0443\u0442\u044b, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435 \u0441\u0442\u0430\u0442\u044c\u0438) \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0432\u044b\u0436\u0438\u043c\u043a\u0443 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435. \u041f\u043e\u0435\u0445\u0430\u043b\u0438! \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27113,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36246","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=\"27 \u0430\u043f\u0440\u0435\u043b\u044f \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0421\u0442\u0430\u0447\u043a\u0430-2019, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0435\u043a\u0446\u0438\u0438 \u00abDevOps\u00bb, \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u00ab\u0410\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432 Kubernetes\u00bb. \u0412 \u043d\u0451\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e K8s \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c (44 \u043c\u0438\u043d\u0443\u0442\u044b, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435 \u0441\u0442\u0430\u0442\u044c\u0438) \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0432\u044b\u0436\u0438\u043c\u043a\u0443 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435. \u041f\u043e\u0435\u0445\u0430\u043b\u0438! \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c\" \/>\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\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada\" \/>\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\u0410\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432 Kubernetes (\u043e\u0431\u0437\u043e\u0440 \u0438 \u0432\u0438\u0434\u0435\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"27 \u0430\u043f\u0440\u0435\u043b\u044f \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0421\u0442\u0430\u0447\u043a\u0430-2019, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0435\u043a\u0446\u0438\u0438 \u00abDevOps\u00bb, \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u00ab\u0410\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432 Kubernetes\u00bb. \u0412 \u043d\u0451\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e K8s \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c (44 \u043c\u0438\u043d\u0443\u0442\u044b, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435 \u0441\u0442\u0430\u0442\u044c\u0438) \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0432\u044b\u0436\u0438\u043c\u043a\u0443 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435. \u041f\u043e\u0435\u0445\u0430\u043b\u0438! \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada\" \/>\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=\"2019-10-31T19:10:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:10:28+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\udd47Automaatne skaleerimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video) | ProHoster","description":"27. aprillil toimunud Stakcha-2019 konferentsil, DevOps sektsioonis, k\u00f5las ettekande \"Automaatne skaleerimine ja ressursside haldamine Kuberneteses\". Selles k\u00e4sitletakse, kuidas K8s abil tagada rakenduste k\u00f5rge saadavus ja maksimaalne j\u00f5udlus. Traditsiooniliselt oleme heameel, et saame jagada ettekande videot (44 minutit, oluliselt informatiivsem kui artikkel) ja p\u00f5hisisu tekstivormis. Olgem valmis! Anal\u00fc\u00fcsime","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada","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\u0410\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432 Kubernetes (\u043e\u0431\u0437\u043e\u0440 \u0438 \u0432\u0438\u0434\u0435\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430) | ProHoster","og:description":"27 \u0430\u043f\u0440\u0435\u043b\u044f \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0421\u0442\u0430\u0447\u043a\u0430-2019, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0435\u043a\u0446\u0438\u0438 \u00abDevOps\u00bb, \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u00ab\u0410\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432 Kubernetes\u00bb. \u0412 \u043d\u0451\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e K8s \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c (44 \u043c\u0438\u043d\u0443\u0442\u044b, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435 \u0441\u0442\u0430\u0442\u044c\u0438) \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0432\u044b\u0436\u0438\u043c\u043a\u0443 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435. \u041f\u043e\u0435\u0445\u0430\u043b\u0438! \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada","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":"2019-10-31T19:10:28+00:00","article:modified_time":"2019-10-31T19:10:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36246","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":"2026-01-22 02:33:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:48:26","updated":"2026-01-22 02:33:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36246","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=36246"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36246\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27113"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=36246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=36246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=36246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}