{"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\/sq\/blog\/administrirovanie\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada","title":{"rendered":"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>27 \u0430\u043f\u0440\u0435\u043b\u044f \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 <noindex><a rel=\"nofollow\" href=\"https:\/\/nastachku.ru\/archive\/2019\/index.php\">\u0421\u0442\u0430\u0447\u043a\u0430-2019<\/a><\/noindex>, \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.<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/1dbca93f66eb0822348163922a1cd6da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSipas tradit\u00ebs, jemi t\u00eb lumtur t\u00eb paraqesim <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=10ZR-fbyuSY&amp;list=PL1mJ-PkCYnmB9vljnjxCMP3dlxQY3Dfcq\"><b>video me referatin<\/b><\/a><\/noindex> (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!<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0442\u0435\u043c\u0443 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0438 \u043d\u0430\u0447\u043d\u0451\u043c \u0441 \u043a\u043e\u043d\u0446\u0430.<\/p>\n<h2>Kubernetes<\/h2>\n<p>\n\u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0435\u0441\u0442\u044c Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b. \u0417\u0430\u0447\u0435\u043c? \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u0438 \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u0435\u043f\u043b\u043e\u0439, CI\/CD. \u0422\u0430\u043a\u0438\u0445 \u043c\u0430\u0448\u0438\u043d \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0443 \u043d\u0430\u0441 \u043c\u043d\u043e\u0433\u043e.<\/p>\n<p>\u0427\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u0430\u0451\u0442 Kubernetes?<\/p>\n<ol>\n<li> \u041c\u044b \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u043c \u0434\u0443\u043c\u0430\u0442\u044c \u043f\u0440\u043e \u044d\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u044b \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u00ab\u043e\u0431\u043b\u0430\u043a\u043e\u043c\u00bb, <b>\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432<\/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>\u043b\u044c\u0448\u0438\u043c\u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438. \u0422\u0430\u043a\u0438\u0435 <b>\u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b<\/b> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0435\u043a\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0430 \u0432\u043e\u0442 \u043d\u0443\u0436\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0434\u043b\u044f \u0435\u0451 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u0415\u0441\u043b\u0438 \u043c\u044b \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u2014 \u043f\u043e\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0438 \u0432\u0441\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b.<\/li>\n<li> Me <b>\u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e 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>Menaxhimi i burimeve<\/h2>\n<p><\/p>\n<h3>CPU<\/h3>\n<p>\n\u041f\u0443\u0441\u0442\u044c \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 nginx, php-fpm \u0438 mysql. \u0423 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0436\u0431 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/3ec2ef12bb7666456dddfaf762925f4e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>(\u0447\u0438\u0441\u043b\u0430 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0435 \u2014 \u00ab\u043f\u043e\u043f\u0443\u0433\u0430\u0438\u00bb, \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u0430\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044f\u0445)<\/i><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441 \u044d\u0442\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b nginx \u0432 \u043e\u0434\u043d\u0443 \u0433\u0440\u0443\u043f\u043f\u0443 \u00abnginx\u00bb). \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u2014 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/36ac6b6899ebc3a1f33f2caa2bc2ccd2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 (\u0432 Linux). \u0418\u0445 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u0440\u0451\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u0432 \u044f\u0434\u0440\u0435, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u0432\u043d\u043e: <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/capabilities.7.html\">capabilities<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/namespaces.7.html\">namespaces<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/cgroups.7.html\">cgroups<\/a><\/noindex>. \u0410 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c\u0443 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u00ab\u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438\u00bb \u0442\u0438\u043f\u0430 Docker):<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/65369d8bdc23554b972f60a81446b385.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <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>\u0412\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c \u0432 CPU \u0443 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u2014 \u0443 \u0433\u0440\u0443\u043f\u043f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/a087c3239a63a703d308401ae0083e32.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>(\u043f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0447\u0438\u0441\u043b\u0430 \u2014 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445)<\/i><\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443 \u0441\u0430\u043c\u043e\u0433\u043e CPU \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 <i>(\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044d\u0442\u043e 1000)<\/i>, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0441\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044c (\u0441\u0443\u043c\u043c\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u0441\u0435\u0445 \u0433\u0440\u0443\u043f\u043f \u2014 150+850+460=1460). \u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435?<\/p>\n<p>\u042f\u0434\u0440\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u00ab\u0447\u0435\u0441\u0442\u043d\u043e\u00bb, \u0432\u044b\u0434\u0430\u0432\u0430\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435. \u041d\u043e \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e\u0433\u043e (333&gt;150), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0437\u043b\u0438\u0448\u0435\u043a (333-150=183) \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u0440\u0435\u0437\u0435\u0440\u0432\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u043e\u0436\u0435 \u0440\u0430\u0432\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/fa358b02ba232045e27fd8e2e6f45f08.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0412 \u0438\u0442\u043e\u0433\u0435: \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u2014 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e, \u0442\u0440\u0435\u0442\u044c\u0435\u043c\u0443 \u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e. \u0422\u0430\u043a\u043e\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 <b>\u00ab\u0447\u0435\u0441\u0442\u043d\u043e\u0433\u043e\u00bb \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0432 Linux<\/b> \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Completely_Fair_Scheduler\">CFS<\/a><\/noindex>. \u0415\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <b>\u0432\u0435\u0441\u0430<\/b> \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" 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=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/4f7c00fb16f33d4e57355bebb2270099.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0422\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a CFS. \u0412\u0435\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c, \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u0442\u044c <b>request&#8217;\u0430\u043c\u0438<\/b>. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u2014 \u0441\u043c. \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>\u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0432\u0441\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0432\u0441\u0435 \u0434\u043e\u0440\u043e\u0433\u0438 \u0432\u0435\u0434\u0443\u0442 \u0432 \u0420\u0438\u043c, \u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u2014 \u0432 CPU. CPU \u043e\u0434\u0438\u043d, \u0437\u0430\u0434\u0430\u0447 \u043c\u043d\u043e\u0433\u043e \u2014 \u043d\u0443\u0436\u0435\u043d \u0441\u0432\u0435\u0442\u043e\u0444\u043e\u0440. \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u2014 \u00ab\u0441\u0432\u0435\u0442\u043e\u0444\u043e\u0440\u043d\u044b\u0439\u00bb: \u0432\u044b\u0434\u0430\u043b\u0438 \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a CPU, \u0437\u0430\u0442\u0435\u043c \u2014 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0438 \u0442.\u043f.<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/e8abd2a719ad447755bdb114a2e72d46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0436\u0451\u0441\u0442\u043a\u0438\u043c \u043a\u0432\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c <i>(hard limiting)<\/i>. \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a <b>\u043b\u0438\u043c\u0438\u0442\u044b<\/b>. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0434\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u043b\u0438\u043c\u0438\u0442\u044b, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: mysql \u0435\u0445\u0430\u043b \u043f\u043e \u0434\u043e\u0440\u043e\u0433\u0435 \u0438 \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0435\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 CPU \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c, \u043d\u043e \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u044b \u0436\u0434\u0430\u0442\u044c, \u043f\u043e\u043a\u0430 CPU <b>\u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/f88e8732f0d8c72b040d0b47d2c0a4e6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0412\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043a \u044f\u0434\u0440\u0443 Linux \u0438 \u0435\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e \u0441 CPU \u2014 \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/25c9ba677db4c692251a17f46531a52e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0423 cgroup \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2014 \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u0434\u0432\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u00ab\u043a\u0440\u0443\u0442\u0438\u043b\u043a\u0438\u00bb, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c:<\/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> pjes\u00eb e p\u00ebrgjithshme e koh\u00ebs CPU p\u00ebr t\u00eb punuar mbi detyrat e kontejnerit (kufizimet) - \u00ebsht\u00eb <b>kuota<\/b>.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Si matet CPU?<\/h3>\n<p>\nKa m\u00ebnyra t\u00eb ndryshme:<\/p>\n<ol>\n<li> \u00c7far\u00eb \u00ebsht\u00eb <i>papagaj\u00eb<\/i>, askush nuk e di - duhet t\u00eb bien dakord \u00e7do her\u00eb.<\/li>\n<li> <i>Pjes\u00ebt<\/i> jan\u00eb m\u00eb t\u00eb qarta, por t\u00eb relativizueshme: 50% nga serveri me 4 b\u00ebrthama dhe me 20 b\u00ebrthama jan\u00eb gj\u00ebra krejt\u00ebsisht t\u00eb ndryshme.<\/li>\n<li> Mund t\u00eb p\u00ebrdoren ato q\u00eb jan\u00eb p\u00ebrmendur <i>\u0432\u0435\u0441\u0430<\/i>, t\u00eb cilat i njeh Linux, por ato gjithashtu jan\u00eb t\u00eb relativizuara.<\/li>\n<li> Zgjidhja m\u00eb e arsyeshme - matja e burimeve t\u00eb p\u00ebrpunimit n\u00eb <i>sekonda<\/i>. K\u00ebshtu, n\u00eb sekonda t\u00eb koh\u00ebs s\u00eb procesorit n\u00eb lidhje me sekondat e koh\u00ebs reale: u dhan\u00eb 1 sekond\u00eb t\u00eb koh\u00ebs s\u00eb procesorit n\u00eb 1 sekond\u00eb reale - kjo do t\u00eb thot\u00eb nj\u00eb b\u00ebrtham\u00eb CPU t\u00ebr\u00ebsisht.<\/li>\n<\/ol>\n<p>\nP\u00ebr ta b\u00ebr\u00eb m\u00eb t\u00eb thjesht\u00eb, matjet filluan t\u00eb b\u00ebhen direkt n\u00eb <i>b\u00ebrthama<\/i>, duke e kuptuar at\u00eb koh\u00eb CPU n\u00eb lidhje me realen. \u00c7far\u00ebdo q\u00eb t\u00eb kuptoj\u00eb Linux peshat, dhe jo nj\u00eb koh\u00eb t\u00eb till\u00eb procesori\/b\u00ebrthama, nevojitej nj\u00eb mekaniz\u00ebm p\u00ebr konvertimin nga nj\u00eb n\u00eb tjetr\u00ebn.<\/p>\n<p>Le t\u00eb shohim nj\u00eb shembull t\u00eb thjesht\u00eb me nj\u00eb server me 3 b\u00ebrthama CPU, ku tre pod\u00eb do t\u00eb ken\u00eb peshat e tilla (500, 1000 dhe 1500), t\u00eb cilat leht\u00eb konvertohen n\u00eb pjes\u00ebt p\u00ebrkat\u00ebse t\u00eb b\u00ebrthamave t\u00eb caktuara (0,5, 1 dhe 1,5).<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/6a173d56847569fd071d642dcce5c5ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00ebse marrim serverin e dyt\u00eb, ku b\u00ebrthamat jan\u00eb dyfish (6), dhe vendosim aty t\u00eb nj\u00ebjtat pod\u00eb, shp\u00ebrndarja e b\u00ebrthamave llogaritet leht\u00ebsisht me nj\u00eb shum\u00ebzim prej 2 (1, 2 dhe 3 p\u00ebrkat\u00ebsisht). Por nj\u00eb moment i r\u00ebnd\u00ebsish\u00ebm ndodh kur n\u00eb k\u00ebt\u00eb server shfaqet nj\u00eb pod i kat\u00ebrt, pesha e t\u00eb cilit p\u00ebr leht\u00ebsi le t\u00eb jet\u00eb 3000. Ai merr nj\u00eb pjes\u00eb t\u00eb burimeve CPU (gjysma e b\u00ebrthamave), dhe p\u00ebr pod\u00ebt e tjer\u00eb ato rishikohen (do t\u00eb zvog\u00eblohen n\u00eb gjysm\u00eb):<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/a74fa4b7964bfbfbce3568b1ce35c13a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Kubernetes dhe burimet CPU<\/h3>\n<p>\nN\u00eb Kubernetes, burimet CPU jan\u00eb t\u00eb zakonshme t\u00eb maten n\u00eb <b>milijard\u00eb<\/b>, dmth, si nj\u00eb pesh\u00eb baz\u00eb merret 0,001 b\u00ebrthama. <i>(E nj\u00ebjta gj\u00eb n\u00eb terminologjin\u00eb Linux\/cgroups quhet ndarje e CPU, edhe pse, n\u00ebse flasim me sakt\u00ebsi, 1000 miliard\u00eb = 1024 ndarje CPU.)<\/i> K8s kujdeset q\u00eb t\u00eb mos vendosen m\u00eb shum\u00eb pod\u00eb n\u00eb nj\u00eb server sesa burimet CPU q\u00eb ekzistojn\u00eb p\u00ebr som\u00ebn e peshave t\u00eb t\u00eb gjitha pod\u00ebve.<\/p>\n<p>Si ndodh kjo? Kur shtohet nj\u00eb server n\u00eb klas\u00ebn Kubernetes, njoftohet se sa b\u00ebrthama CPU ka n\u00eb dispozicion. Dhe kur krijohet nj\u00eb pod i ri, planifikuesi i Kubernetes e di se sa b\u00ebrthama k\u00ebrkohen p\u00ebr k\u00ebt\u00eb pod. Si rezultat, podi do t\u00eb p\u00ebrcaktohet n\u00eb nj\u00eb server, ku ka mjaft b\u00ebrthama.<\/p>\n<p>\u00c7far\u00eb do t\u00eb ndodh\u00eb n\u00ebse <b>nuk<\/b> \u00ebsht\u00eb e specifikuar k\u00ebrkesa (dmth. p\u00ebr podin nuk \u00ebsht\u00eb e p\u00ebrcaktuar sasia e b\u00ebrthamave q\u00eb i nevojitet)? Le t\u00eb shohim se si Kubernetes llogarit burimet n\u00eb p\u00ebrgjith\u00ebsi.<\/p>\n<p>P\u00ebr nj\u00eb pod mund t\u00eb specifikohen k\u00ebrkesa (planifikuesi CFS) dhe kufizime (mos harroni drit\u00ebn e semaforit?):<\/p>\n<ul>\n<li> N\u00ebse ato jan\u00eb t\u00eb nj\u00ebjta, at\u00ebher\u00eb podi i k\u00ebrkohet nj\u00eb klasi QoS. <b>garantuar<\/b>. Nj\u00eb num\u00ebr i till\u00eb gjithmon\u00eb i disponuesh\u00ebm p\u00ebr b\u00ebrthamat e tij garanti.<\/li>\n<li> N\u00ebse k\u00ebrkesa \u00ebsht\u00eb m\u00eb e vog\u00ebl se kufizimi - cil\u00ebsia QoS <b>burstable<\/b>. Dometh\u00ebn\u00eb, ne presim q\u00eb pod, p\u00ebr shembull, gjithmon\u00eb t\u00eb p\u00ebrdor\u00eb 1 b\u00ebrtham\u00eb, megjithat\u00eb ky vler\u00eb nuk \u00ebsht\u00eb nj\u00eb kufizim p\u00ebr t\u00eb: <i>ndonj\u00ebher\u00eb<\/i> pod'i mund t\u00eb p\u00ebrdor\u00eb edhe m\u00eb shum\u00eb (kur n\u00eb server ka burime t\u00eb lira p\u00ebr k\u00ebt\u00eb).<\/li>\n<li> Ka gjithashtu nj\u00eb cil\u00ebsi QoS <b>p\u00ebrpjekje m\u00eb t\u00eb mira<\/b> \u2014 p\u00ebrfshihen k\u00ebta pod\u00eb t\u00eb atyre p\u00ebr t\u00eb cil\u00ebt nuk \u00ebsht\u00eb specifikuar k\u00ebrkesa. Burimet u jepen atyre n\u00eb fund t\u00eb fundit.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Memoria<\/h3>\n<p>\nSituata me kujtes\u00ebn \u00ebsht\u00eb e ngjashme, por pak ndryshe - gjithsesi natyra e k\u00ebtyre burimeve \u00ebsht\u00eb ndryshe. N\u00eb p\u00ebrgjith\u00ebsi, krahasimi \u00ebsht\u00eb i till\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/d933fb1febdc30e256af158132b9dbb0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe t\u00eb shohim se si realizohen k\u00ebrkesat n\u00eb memorie. Le t\u00eb supozojm\u00eb se pod\u00ebt jetojn\u00eb n\u00eb server, duke ndryshuar konsumimin e memories, derisa nj\u00eb nga ta t\u00eb b\u00ebhet aq e madhe saq\u00eb memoria t\u00eb mbaroj\u00eb. N\u00eb k\u00ebt\u00eb rast shfaqet OOM killer dhe vret procesin m\u00eb t\u00eb madh:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/a3726c24937c64ae21c21df7642b98c8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKjo nuk na p\u00ebrshtatet gjithmon\u00eb, prandaj ekziston mund\u00ebsia p\u00ebr t\u00eb rregulluar se cil\u00ebt procese jan\u00eb t\u00eb r\u00ebnd\u00ebsishme p\u00ebr ne dhe nuk duhet t\u00eb vriten. P\u00ebr k\u00ebt\u00eb p\u00ebrdoret parametri <b>oom_score_adj<\/b>.<\/p>\n<p>T\u00eb kthehemi te klasat QoS t\u00eb CPU dhe t\u00eb b\u00ebjm\u00eb nj\u00eb analogji me vlerat oom_score_adj, t\u00eb cilat p\u00ebrcaktojn\u00eb prioritetet p\u00ebr pod\u00ebt n\u00eb konsumimin e memories:<\/p>\n<ul>\n<li> Vlera m\u00eb e ul\u00ebt oom_score_adj p\u00ebr nj\u00eb pod \u00ebsht\u00eb -998, q\u00eb do t\u00eb thot\u00eb se ky pod duhet t\u00eb vritet n\u00eb fund t\u00eb fundit, ky <b>garantuar<\/b>.<\/li>\n<li> Vlera m\u00eb e lart\u00eb - 1000 - \u00ebsht\u00eb <b>p\u00ebrpjekje m\u00eb t\u00eb mira<\/b>, k\u00ebta pod\u00eb vriten m\u00eb par\u00eb se t\u00eb gjith\u00eb.<\/li>\n<li> P\u00ebr llogaritjen e vlerave t\u00eb tjera (<b>burstable<\/b>) ekziston nj\u00eb formul\u00eb, e cila n\u00eb thelb i p\u00ebrmbledh se sa m\u00eb shum\u00eb burime k\u00ebrkon pod'i, aq m\u00eb pak \u00ebsht\u00eb mund\u00ebsia q\u00eb ta vrasin.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/27c95eb705d06dd90caff34afd14ef16.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRregulla e dyt\u00eb - <b>limit_in_bytes<\/b> - p\u00ebr kufizimet. Me t\u00eb \u00ebsht\u00eb m\u00eb e thjesht\u00eb: thjesht caktuam numrin maksimal t\u00eb memories q\u00eb do t'i jepet, dhe k\u00ebtu (n\u00eb dallim nga CPU) nuk ka pyetje n\u00eb \u00e7far\u00eb e matim (memorin\u00eb).<\/p>\n<h3>N\u00eb p\u00ebrfundim<\/h3>\n<p>\n\u00c7do pod n\u00eb Kubernetes i caktohet <code>requests<\/code> dhe <code>kufizimet<\/code> - t\u00eb dy parametrat p\u00ebr CPU dhe p\u00ebr memory:<\/p>\n<ol>\n<li> n\u00eb baz\u00eb t\u00eb k\u00ebrkesave, planifikuesi i Kubernetes e shp\u00ebrndan pod\u00ebt midis server\u00ebve;<\/li>\n<li> n\u00eb baz\u00eb t\u00eb t\u00eb gjitha parametrave p\u00ebrcaktohet klasa QoS e podit;<\/li>\n<li> n\u00eb baz\u00eb t\u00eb k\u00ebrkesave t\u00eb CPU llogariten peshat relative;<\/li>\n<li> n\u00eb baz\u00eb t\u00eb k\u00ebrkesave t\u00eb CPU konfigurimi i planifikuesit CFS;<\/li>\n<li> n\u00eb baz\u00eb t\u00eb k\u00ebrkesave t\u00eb memories konfigurimi i OOM killer;<\/li>\n<li> n\u00eb baz\u00eb t\u00eb kufizimeve t\u00eb CPU konfigurimi i \"semaforit\";<\/li>\n<li> n\u00eb baz\u00eb t\u00eb kufizimeve t\u00eb memories p\u00ebrcaktohet kufiri n\u00eb cgroup.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/201ac0bc7ad53c9c8a75cf9ff5f618b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb p\u00ebrgjith\u00ebsi, kjo imazh p\u00ebrgjigjet p\u00ebr t\u00eb gjitha pyetjet se si zhvillohet pjesa kryesore e menaxhimit t\u00eb burimeve n\u00eb Kubernetes.<\/p>\n<h2>Automatikisht shkall\u00ebzimi<\/h2>\n<p><\/p>\n<h3>K8s cluster-autoscaler<\/h3>\n<p>\nLe t\u00eb imagjinojm\u00eb se e gjith\u00eb klasteri \u00ebsht\u00eb i z\u00ebn\u00eb dhe duhet t\u00eb krijohet nj\u00eb pod i ri. Deri sa pod-i nuk mund t\u00eb shfaqet, ai ngelet n\u00eb statusin <i>Pending<\/i>. P\u00ebr ta b\u00ebr\u00eb at\u00eb t\u00eb shfaqet, mund t\u00eb lidhim nj\u00eb server t\u00eb ri me klasterin ose\u2026 t\u00eb vendosim cluster-autoscaler, i cili do ta b\u00ebj\u00eb k\u00ebt\u00eb p\u00ebr ne: do t\u00eb porosis\u00eb nj\u00eb makin\u00eb virtuale nga ofruesi i sh\u00ebrbimeve n\u00eb cloud (me nj\u00eb k\u00ebrkes\u00eb p\u00ebr API) dhe do ta lidh at\u00eb me klasterin, pas s\u00eb cil\u00ebs pod-i do t\u00eb shtohet.<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/89e771daa4d69b3b3c72ef8adba54a5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKjo \u00ebsht\u00eb automashtimi i klasterit Kubernetes, i cili punon mrekullisht (sipas p\u00ebrvoj\u00ebs son\u00eb). Megjithat\u00eb, si gjithmon\u00eb, ka nuanca...<\/p>\n<p>Nd\u00ebrsa ne rrit\u00ebm p\u00ebrmasat e klasterit, gjith\u00e7ka ishte mir\u00eb, por \u00e7far\u00eb ndodh kur klasteri <b>fillon t\u00eb lirohet<\/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>Le t\u00eb shqyrtojm\u00eb nj\u00eb klas\u00eb me 3 server\u00eb, n\u00eb t\u00eb cil\u00ebn ka nj\u00eb Deployment. Ai ka 6 pod\u00eb: tani jan\u00eb 2 n\u00eb \u00e7do server. Ne p\u00ebr ndonj\u00eb arsye d\u00ebshirojm\u00eb t\u00eb fikim nj\u00eb nga server\u00ebt. P\u00ebr k\u00ebt\u00eb do t\u00eb p\u00ebrdorim komand\u00ebn <code>kubectl drain<\/code>, e cila:<\/p>\n<ul>\n<li> ndalon d\u00ebrgimin e pod\u00ebve t\u00eb rinj n\u00eb k\u00ebt\u00eb server;<\/li>\n<li> fshin pod\u00ebt ekzistues n\u00eb server.<\/li>\n<\/ul>\n<p>\nDuke qen\u00eb se Kubernetes kujdeset p\u00ebr mbajtjen e numrit t\u00eb pod\u00ebve (6), thjesht <b>rikrijoj\u00eb<\/b> i zhvendos ato n\u00eb nyje t\u00eb tjera, por jo n\u00eb at\u00eb q\u00eb po fiket, pasi ai tashm\u00eb \u00ebsht\u00eb sh\u00ebnuar si i pap\u00ebrshtatsh\u00ebm p\u00ebr vendosjen e pod\u00ebve t\u00eb rinj. Kjo \u00ebsht\u00eb nj\u00eb mekanik\u00eb themelore p\u00ebr Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/cfebfa60b5a67ed1155789837c824a44.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMegjithat\u00eb, ka nj\u00eb nuanc\u00eb k\u00ebtu. N\u00eb nj\u00eb situat\u00eb t\u00eb ngjashme p\u00ebr StatefulSet (n\u00eb vend t\u00eb Deployment), veprimet do t\u00eb ishin t\u00eb ndryshme. Tani kemi nj\u00eb aplikacion stateful \u2014 p\u00ebr shembull, tre pod\u00eb me MongoDB, nj\u00eb nga t\u00eb cilat ka pasur ndonj\u00eb problem (t\u00eb dh\u00ebnat jan\u00eb prishur ose nj\u00eb gabim tjet\u00ebr, q\u00eb nuk lejon q\u00eb podi t\u00eb filloj\u00eb si\u00e7 duhet). Dhe ne s\u00ebrish vendosim t\u00eb \u00e7aktivizojm\u00eb nj\u00eb server. \u00c7far\u00eb do t\u00eb ndodh\u00eb?<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/9bfc0d2685e2aa7828a135be2590741b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMongoDB <i>mund t\u00eb<\/i> do t\u00eb vdes\u00eb, pasi i nevojitet nj\u00eb kuorum: p\u00ebr nj\u00eb klaster me tre instalime, t\u00eb pakt\u00ebn dy duhet t\u00eb funksionojn\u00eb. Sidoqoft\u00eb, kjo <i>nuk ndodh<\/i> \u2014 fal\u00eb <b>Buxheti i Shk\u00ebputjes s\u00eb Pod-\u00ebve<\/b>. Ky parametr p\u00ebrcakton numrin minimal t\u00eb nevojsh\u00ebm t\u00eb pod\u00ebve aktiv. Duke e ditur se nj\u00eb nga pod\u00ebt me MongoDB nuk po funksionon, dhe duke par\u00eb se p\u00ebr MongoDB \u00ebsht\u00eb caktuar PodDisruptionBudget <code>minAvailable: 2<\/code>, Kubernetes nuk do t\u00eb lejoj\u00eb heqjen e pod-it.<\/p>\n<p>P\u00ebrfundimi: q\u00eb t\u00eb funksionoj\u00eb sakt\u00eb zhvendosja (dhe p\u00ebr t\u00eb qen\u00eb t\u00eb v\u00ebrtet\u00eb \u2014 rikrijimi) i pod\u00ebve kur lirohet klastri, \u00ebsht\u00eb e nevojshme t\u00eb konfigurohet PodDisruptionBudget.<\/p>\n<h3>Zgjerimi horizontal<\/h3>\n<p>\nLe t\u00eb shqyrtojm\u00eb nj\u00eb situat\u00eb tjet\u00ebr. Ka nj\u00eb aplikacion, i cili \u00ebsht\u00eb aktiv si Deployment n\u00eb Kubernetes. Tek pod\u00ebt e tij (p\u00ebr shum\u00eb do t\u00eb thot\u00eb tre) vjen trafiku nga p\u00ebrdoruesit dhe ne matim nj\u00eb tregues t\u00eb caktuar (le t\u00eb thon\u00eb, ngarkes\u00ebn n\u00eb CPU). Kur ngarkesa rritet, ne e regjistrojm\u00eb k\u00ebt\u00eb n\u00eb grafik dhe rrisim numrin e pod\u00ebve p\u00ebr shp\u00ebrndarjen e k\u00ebrkesave.<\/p>\n<p>Sot n\u00eb Kubernetes kjo nuk \u00ebsht\u00eb e nevojshme t\u00eb b\u00ebhet manualisht: konfigurimi automatik i rritjes\/zvog\u00eblimi t\u00eb numrit t\u00eb pod\u00ebve n\u00eb var\u00ebsi t\u00eb vlerave t\u00eb matjeve t\u00eb ngarkes\u00ebs.<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/092fb2d523f1f53670b3850ed3c3fac7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPyetjet kryesore k\u00ebtu jan\u00eb <b>\u00e7far\u00eb sakt\u00ebsisht t\u00eb masim<\/b> dhe <b>si t\u00eb interpretojm\u00eb<\/b> vlerat e marra (p\u00ebr t\u00eb marr\u00eb nj\u00eb vendim mbi ndryshimin e numrit t\u00eb pod\u00ebve). Mund t\u00eb matet shum\u00eb\u00e7ka:<\/p>\n<p><img decoding=\"async\" alt=\"Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)\" src=\"\/wp-content\/uploads\/2019\/07\/1c7f6d35fc0cbae85b88f6a062797ed2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi t\u00eb b\u00ebjm\u00eb k\u00ebt\u00eb teknikisht \u2014 t\u00eb mbledhim metrika etj. \u2014 kam folur n\u00eb detaje n\u00eb prezantimin p\u00ebr <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/412901\/\">Monitorimi dhe Kubernetes<\/a><\/noindex>. Dhe k\u00ebshilla kryesore p\u00ebr t\u00eb zgjedhur parametrat optimal\u00eb \u00ebsht\u00eb <b>eksperimentoni<\/b>!<\/p>\n<p>Ka <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/usemethod.html\">metoda USE<\/a><\/noindex> <i>(Utilization Saturation and Errors<\/i>), ku kuptimi \u00ebsht\u00eb si m\u00eb posht\u00eb. N\u00eb baz\u00eb t\u00eb \u00e7far\u00eb ka kuptim t\u00eb shkall\u00ebzohet, p\u00ebr shembull, php-fpm? N\u00eb baz\u00eb t\u00eb faktit se pun\u00ebtor\u00ebt po mbarojn\u00eb, \u2014 kjo \u00ebsht\u00eb <i>shfryt\u00ebzim<\/i>. Dhe n\u00ebse pun\u00ebtor\u00ebt kan\u00eb mbaruar dhe nuk pranohen lidhje t\u00eb reja \u2014 kjo \u00ebsht\u00eb tashm\u00eb <i>saturim<\/i>. T\u00eb dy k\u00ebta parametra duhet t\u00eb maten, dhe n\u00eb var\u00ebsi t\u00eb vlerave t\u00eb kryhet zgjerimi.<\/p>\n<h2>N\u00eb vend t\u00eb p\u00ebrfundimit<\/h2>\n<p>\nPrezantimi ka nj\u00eb vazhdim: mbi zgjerimin vertikal dhe se si t\u00eb zgjidhni n\u00eb m\u00ebnyr\u00eb t\u00eb sakt\u00eb burimet. P\u00ebr k\u00ebt\u00eb do t\u00eb flas n\u00eb videot e ardhshme n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">kanalin ton\u00eb YouTube<\/a><\/noindex> \u2014 abonohuni q\u00eb t\u00eb mos e humbisni!<\/p>\n<h2>Video dhe prezentime<\/h2>\n<p>\nVideo nga prezantimi (44 minuta):<\/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=\"Luaj videon\" 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>Prezantimi i referatit:<\/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>\nPrezantime t\u00eb tjera mbi Kubernetes n\u00eb blogun ton\u00eb:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/449096\/\">Zgjerimi dhe plot\u00ebsimi i Kubernetes<\/a><\/noindex>\u00bb <i>(Andrey Polovov; 8 Prill 2019 n\u00eb Saint HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/431500\/\">Baza t\u00eb dh\u00ebnash dhe Kubernetes<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 8 N\u00ebntor 2018 n\u00eb HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">Monitorimi dhe Kubernetes<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 28 Maj 2018 n\u00eb RootConf)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/345116\/\">Praktikat m\u00eb t\u00eb mira CI\/CD me Kubernetes dhe GitLab<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 7 N\u00ebntor 2017 n\u00eb HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Eksperienca jon\u00eb me Kubernetes n\u00eb projekte t\u00eb vogla<\/a><\/noindex>\u00bb <i>(Dmitri Stolyarov; 6 qershor 2017 n\u00eb RootConf)<\/i>.<\/li>\n<\/ul>\n<p>Burimi: <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 5.0.0.1 - 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\/sq\/blog\/administrirovanie\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\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\/sq\/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\udd47Automatizimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video e prezantimit) | ProHoster","description":"M\u00eb 27 Prill n\u00eb konferenc\u00ebn Stachka-2019, n\u00eb kuad\u00ebr t\u00eb sesionit 'DevOps', u mbajt prezantimi 'Automatizimi dhe menaxhimi i burimeve n\u00eb Kubernetes'. N\u00eb t\u00eb flitet se si me ndihm\u00ebn e K8s t\u00eb sigurohet disponueshm\u00ebria e lart\u00eb e aplikacioneve dhe t\u00eb garantohen performanca maksimale. Si zakonisht, jemi t\u00eb lumtur t\u00eb paraqesim videon e prezantimit (44 minuta, shum\u00eb m\u00eb informuese sesa artikulli) dhe nj\u00eb p\u00ebrmbledhje t\u00eb p\u00ebrgjithshme n\u00eb tekst. Le t\u00eb fillojm\u00eb! T\u00eb shqyrtojm\u00eb","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/avtomasshtabirovanie-i-upravlenie-resursami-v-kubernetes-obzor-i-video-doklada","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\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\/sq\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/36246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=36246"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/36246\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/27113"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=36246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=36246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=36246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}