{"id":457398,"date":"2025-04-25T15:04:32","date_gmt":"2025-04-25T15:04:32","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=457398"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=457398","title":{"rendered":"<span>Kubernetes 1.33: \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 CrashLoopBackOff \u0438 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Kubernetes \u2014 1.33. \u0421\u0440\u0435\u0434\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439\u00a0\u2014 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 API-\u0442\u0438\u043f\u043e\u0432, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 CredentialProvider, \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e\u0434\u043e\u0432 \u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0438 CrashLoopBackOff, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 private-\u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0438 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>.kuberc<\/code>.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dd7\/08b\/e0f\/dd708be0f41a1041f7ab23d183b29d15.png\" width=\"1878\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/dd7\/08b\/e0f\/dd708be0f41a1041f7ab23d183b29d15.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dd7\/08b\/e0f\/dd708be0f41a1041f7ab23d183b29d15.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 <a href=\"https:\/\/kubernetes.io\/blog\/\"><u>\u0431\u043b\u043e\u0433\u0430<\/u><\/a> Kubernetes, \u0442\u0430\u0431\u043b\u0438\u0446\u044b <a href=\"https:\/\/github.com\/orgs\/kubernetes\/projects\/200\/views\/1\"><u>Kubernetes enhancements tracking<\/u><\/a>, <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG\/CHANGELOG-1.33.md\"><u>CHANGELOG-1.33<\/u><\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 issues, pull requests \u0438 Kubernetes Enhancement Proposals (KEPs).<\/p>\n<p>\u041c\u044b \u0440\u0430\u0437\u0431\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b:<\/p>\n<ul>\n<li>\n<p><a href=\"#nodes\">\u0443\u0437\u043b\u044b<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#application\">\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#storage\">\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#network\">\u0441\u0435\u0442\u044c<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#API\">API<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#authentification\">\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#CLI\">CLI<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#scheduler\">\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#autoscaling\">\u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#windows\">Windows<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#deleted\">\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0435 \u0444\u0438\u0447\u0438<\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u0438\u0445 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e. \u0412\u0441\u0435\u0433\u043e \u0432 \u043d\u043e\u0432\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 64\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0418\u0437 \u043d\u0438\u0445:<\/p>\n<ul>\n<li>\n<p>Alpha \u2014 26 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439;\u00a0<\/p>\n<\/li>\n<li>\n<p>Beta \u2014 20 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>Stable \u2014 18 \u043f\u0440\u0438\u0437\u043d\u0430\u043d\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><br \/><em>\u041c\u044b \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0447 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439. \u041e\u043d\u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0447\u0430\u0449\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0435.<\/em><\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"nodes\" id=\"nodes\"><\/a><\/p>\n<h2>\u0423\u0437\u043b\u044b<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>DRA: Prioritized Alternatives in Device Requests<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4816\"><u>#4816<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-scheduling\/4816-dra-prioritized-list\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/4381-dra-structured-parameters\"><u>4831<\/u><\/a> \u00ab\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u00bb (\u0441\u043c. <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\"><u>\u041e\u0431\u0437\u043e\u0440 Kubernetes 1.30<\/u><\/a>) \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>ResourceClaim<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f API \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b, \u0435\u0441\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u043e\u0432 \u0438\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. KEP \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443: \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b GPU) \u0432 \u0432\u0438\u0434\u0435 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e.  <\/p>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u041e\u0431\u044a\u0435\u043a\u0442 <code>ResourceClaim<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043b\u0435 <code>DeviceClaim<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <code>DeviceRequest<\/code>. \u0422\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0443\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0431\u0449\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u044f\u0442 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 GPU, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0451\u043d \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0432\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e: \u0432\u0435\u0440\u0441\u0438\u044f v1beta1 API \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0430 \u0447\u0438\u0441\u0442\u0430\u044f, \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 v1beta2.<\/p>\n<p>\u0412 v1beta1 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>FirstAvailable<\/code>. \u041e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <code>DeviceSubRequest<\/code> (\u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430). \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 (\u0442\u043e\u0442, \u0447\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <code>FirstAvailable<\/code>), K8s \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0437\u0430\u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442: \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u2014 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0435 \u043b\u043e\u043c\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044f\u043c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 API: \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>FirstAvailable<\/code> \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e <code>DeviceRequest<\/code> (\u043a\u0440\u043e\u043c\u0435 <code>Name<\/code>) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<p>\u041e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 v1beta2. \u0412 \u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code>DeviceRequest<\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430. \u041f\u043e\u043b\u0435 <code>Name<\/code> \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u043e \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u0431\u043e \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043b\u0438\u0431\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0435 <code>Exactly<\/code> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u0435\u043d \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0435\u0437 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432. \u0415\u0433\u043e \u0442\u0438\u043f \u2014 <code>SpecificDeviceRequest<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f \u0438\u0437 <code>v1beta1.DeviceRequest<\/code>, \u043a\u0440\u043e\u043c\u0435 <code>Name<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435 <code>FirstAvailable<\/code> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f <code>DeviceSubRequest<\/code>. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a <code>FirstAvailable<\/code> \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438 \u0432\u044b\u0431\u0435\u0440\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (DRA) \u043f\u043e\u043a\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0446\u0435\u043d\u043a\u0443 (\u0441\u043a\u043e\u0440\u0438\u043d\u0433) \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c\u044b\u043c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445. \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 DRA \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043a\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c (\u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u0432 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4970\"><u>#4970<\/u><\/a>).<\/p>\n<h4>Ensure secret pulled images<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2535\"><u>#2535<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/2535-ensure-secret-pulled-images\"><u>KEP<\/u><\/a><\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 <code>IfNotPresent<\/code> \u0438 <code>Never<\/code> kubelet \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0442\u043e\u0433\u043e, \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 \u0443\u0437\u043b\u0435. \u0415\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u0431\u044b\u043b \u0441\u043a\u0430\u0447\u0430\u043d \u0440\u0430\u043d\u0435\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u0434\u043e\u043c), \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434 \u043c\u043e\u0433 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c kubelet \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442, \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 (<code>ImagePullSecrets<\/code>) \u0431\u044b\u043b \u0441\u043a\u0430\u0447\u0430\u043d \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u0440\u0430\u0437. \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 kubelet&#8217;\u0430. \u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434 \u0441 <code>IfNotPresent<\/code> \u0438\u043b\u0438 <code>Never<\/code> \u0438 <code>ImagePullSecrets<\/code> \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0437, kubelet \u0441\u043c\u043e\u0442\u0440\u0438\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u043e\u043d \u043d\u0430 \u0443\u0437\u043b\u0435. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u043b\u0438 \u044d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0437 \u0440\u0430\u043d\u0435\u0435 \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 <code>ImagePullSecrets<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u043e\u0434\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u0435\u0441\u0442\u044c \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u043c\u0438, kubelet \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u043e\u0434 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u043b\u044f <code>IfNotPresent<\/code>. \u0415\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u0435\u0441\u0442\u044c, \u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u044d\u0442\u0438\u043c\u0438 \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u043c\u0438 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0430, kubelet \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u044b. \u0412 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 <code>Never<\/code>, kubelet \u043e\u0442\u043a\u0430\u0436\u0435\u0442 \u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c\/\u0441\u043a\u0430\u0447\u0430\u0442\u044c, \u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u044d\u0442\u043e \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f <code>imagePullPolicy: Always<\/code> \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u2014 \u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0441\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043b\u044e\u0431\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u0430\u043c \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u0430\u043c \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u0430\u043c \u0431\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435).<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>KubeletEnsureSecretPulledImages<\/code> (\u0432 alpha-\u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d).<\/p>\n<h4>DRA: AdminAccess for ResourceClaims and ResourceClaimTemplates<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5018\"><u>#5018<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-auth\/5018-dra-adminaccess\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u043e\u0434\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0438\u043b\u0438 \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a. \u0423 \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 DRA \u043d\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u043d\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443.<\/p>\n<p>KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u043c\u0435\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 <code>ResourceClaim<\/code> \u0438\u043b\u0438 <code>ResourceClaimTemplate<\/code> \u0444\u043b\u0430\u0433\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u042d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0437 \u0443\u0449\u0435\u0440\u0431\u0430 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u0414\u043e\u0441\u0442\u0443\u043f \u0438\u043c\u0435\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0435\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b <code>ResourceClaim<\/code> \u0438\u043b\u0438 <code>ResourceClaimTemplate<\/code> \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0438\u043c\u0451\u043d, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u043b\u0430\u0433\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u044c \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439.<\/p>\n<h4>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0431\u043e\u0442\u044b<\/h4>\n<p>\u0412 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e <code>(spec.devices.requests[])<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 <code>ResourceClaim<\/code> \u0438 <code>ResourceClaimTemplate<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u043b\u0435\u0432\u043e \u043f\u043e\u043b\u0435 <code>adminAccess<\/code>. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 <code>true<\/code>, \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439. \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c <code>ResourceClaim<\/code>\/<code>ResourceClaimTemplate<\/code> \u0441 <code>adminAccess: true<\/code> \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0438\u043c\u0451\u043d \u0441\u043e \u0441\u043f\u0435\u0446\u043b\u0435\u0439\u0431\u043b\u043e\u043c <code>kubernetes.io\/dra-admin-access: \"true\"<\/code>. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0447\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438.<\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 <code>ResourceClaim<\/code>\/<code>ResourceClaimTemplate<\/code> \u0441 <code>adminAccess: true<\/code> API-\u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043c\u0435\u0442\u043a\u0430. \u0415\u0441\u043b\u0438 \u0435\u0451 \u043d\u0435\u0442, \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0441\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a Kubernetes \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 <code>ResourceClaim<\/code> \u0441 <code>adminAccess: true<\/code> \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u0442\u043e\u0433\u043e \u0436\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u043f\u043e\u0434\u0443 \u00ab\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f\u00bb \u043a \u0443\u0436\u0435 \u0437\u0430\u043d\u044f\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443.<\/p>\n<p>\u0412\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u044b\u0442\u0430 \u0437\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (feature gate) <code>DRAAdminAccess<\/code>.<\/p>\n<h4>Support PSI based on cgroupv2<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4205\"><u>#4205<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4205-psi-metric\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c <a href=\"https:\/\/docs.kernel.org\/accounting\/psi.html\"><u>PSI<\/u><\/a> (Pressure Stall Information) \u0432 \u044f\u0434\u0440\u0435 Linux \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0436\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c (CPU, \u043f\u0430\u043c\u044f\u0442\u044c, \u0432\u0432\u043e\u0434\/\u0432\u044b\u0432\u043e\u0434), \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u0431\u0449\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0435 100\u00a0%. \u0412\u044b\u0441\u043e\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f PSI \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442, \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u043e\u0440\u043c\u043e\u0437\u044f\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0447\u0442\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. PSI \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (usage %).<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0443\u0437\u0435\u043b Kubernetes \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442\u044c \u0438\u0437-\u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 CPU, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u0434\u0438\u0441\u043a\u0430, \u043d\u043e \u0441\u0430\u043c Kubernetes \u0443\u0437\u043d\u0430\u0451\u0442 \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430 \u0443\u0437\u043b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, OOM Killer \u0443\u0431\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b). \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.\u00a0<\/p>\n<p>KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 PSI (\u00ab\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00bb), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0434\u043e\u043b\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u0436\u0434\u0443\u0442 \u0441\u0432\u043e\u0435\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c. \u0415\u0441\u043b\u0438 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0435, kubelet \u043f\u043e\u043c\u0435\u0442\u0438\u0442 \u0443\u0437\u0435\u043b \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0443\u0432\u0438\u0434\u0438\u0442 \u044d\u0442\u043e \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0434\u044b \u043d\u0430 \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b, \u043f\u043e\u043a\u0430 \u0442\u043e\u0442 \u043d\u0435 \u00ab\u043f\u0440\u0438\u0434\u0451\u0442 \u0432 \u0441\u0435\u0431\u044f\u00bb.<\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c (alpha-1) kubelet \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 PSI \u0438 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043e \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0443\u0437\u043b\u0435. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u0432 Summary API (<code>\/stats\/summary<\/code>), \u0438 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u043b\u0438 <code>kubectl top node<\/code> (\u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f).<\/p>\n<p>\u041d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u044d\u0442\u0430\u043f\u0435 (alpha-2) \u0431\u0443\u0434\u0443\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 NodeCondition (\u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0443\u0437\u043b\u0430) \u2014 <code>NodeSystemCPUContentionPressure<\/code>, <code>NodeSystemMemoryContentionPressure<\/code> \u0438 <code>NodeSystemDiskContentionPressure<\/code>, \u0430 kubelet \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 <em>avg60<\/em> (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u00ab\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u00bb \u0437\u0430 60 \u0441\u0435\u043a\u0443\u043d\u0434) \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 (threshold) <em>(\u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043a\u0430\u043a \u043f\u0435\u0440\u0438\u043e\u0434\u044b, \u0442\u0430\u043a \u0438 \u043f\u043e\u0440\u043e\u0433 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b. \u2014 \u041f\u0440\u0438\u043c. \u0430\u0432\u0442.)<\/em> \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c <em>avg10<\/em> (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434) \u0442\u043e\u0436\u0435 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432\u044b\u0448\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0442\u0451\u0442 \u0438\u043b\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0435), \u0442\u043e kubelet \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 NodeCondition \u0432 True. \u0415\u0441\u043b\u0438 <em>avg60<\/em> \u0443\u043f\u0430\u0434\u0451\u0442 \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u0430, NodeCondition \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 False.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, kubelet \u0441\u043c\u043e\u0436\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 (taint) <code>NoSchedule<\/code> \u043d\u0430 \u0443\u0437\u0435\u043b, \u043a\u043e\u0433\u0434\u0430 \u0442\u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u043e\u0432\u044b\u0445 NodeCondition (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>node.kubernetes.io\/cpu-contention-pressure=:NoSchedule<\/code>). \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430 \u0443\u0437\u0435\u043b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0434\u044b.<\/p>\n<p>\u0424\u0438\u0447\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>PSINodeCondition<\/code>.<\/p>\n<h4>Pod Generation\u00a0<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5067\"><u>#5067<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/5067-pod-generation\"><u>KEP<\/u><\/a>  <\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u043e\u043b\u0435 <code>status.resize<\/code> \u0432 PodStatus \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (CPU\/\u043f\u0430\u043c\u044f\u0442\u0438) \u0434\u043b\u044f \u043f\u043e\u0434\u0430 \u0431\u0435\u0437 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 (in-place resize). \u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/resize-container-resources\/\"><u>Proposed<\/u><\/a> \u0431\u044b\u043b\u043e \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0433 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c ResizeStatus \u0432 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0438\u0447\u0438.<\/p>\n<p>\u0412\u043e\u0442 \u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441:\u00a0<\/p>\n<ol>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u0435\u043d\u044f\u0435\u0442 <code>spec.containers[].resources<\/code> \u043f\u043e\u0434\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 CPU\/\u043f\u0430\u043c\u044f\u0442\u0438.\u00a0<\/p>\n<\/li>\n<li>\n<p>API-\u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 <code>pod.status.resize = \"Proposed\"<\/code>, \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p>Kubelet \u0432\u0438\u0434\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 spec, \u0441\u0442\u0430\u0442\u0443\u0441 &#171;Proposed&#187; \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0437\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 kubelet \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 <code>pod.status.resize<\/code> \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 &#171;InProgress&#187; (\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f).<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043c\u043e\u0433 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u043c, \u043a\u043e\u0433\u0434\u0430 kubelet \u043c\u0435\u043d\u044f\u043b \u0441\u0442\u0430\u0442\u0443\u0441, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 Feasible, \u0430 API-\u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 Proposed \u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 &#171;Proposed&#187; \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 ResizeStatus (<a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/130574\"><u>PR 130574<\/u><\/a>). \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e kubelet \u043e\u0442\u0432\u0435\u0447\u0430\u043b \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<p>\u0423\u0432\u044b, \u043a\u043e\u0433\u0434\u0430 \u0443\u0431\u0440\u0430\u043b\u0438 &#171;Proposed&#187;, \u0438\u0441\u0447\u0435\u0437 \u0438 \u044f\u0432\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043e\u0442 API-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043b. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0432\u0438\u0434\u0435\u043b \u043b\u0438 kubelet \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 spec \u0438\u043b\u0438 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c <code>status.resize<\/code>.<\/p>\n<\/div>\n<\/details>\n<p>KEP-5067 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 <em>[\u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u2014 \u0441\u043c. \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044e]<\/em> \u043f\u0440\u043e\u0431\u0435\u043b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438, \u0432\u0438\u0434\u0435\u043b \u043b\u0438 kubelet \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 PodSpec. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043f\u043e\u043b\u0435\u043c <code>metadata.generation<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c API-\u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 1 (\u0435\u0434\u0438\u043d\u0438\u0446\u0443) \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043e\u0434\u0430 \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043d\u0430 1 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0432 PodSpec. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 PodStatus \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0435 \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/5067-pod-generation#observedgeneration\"><code><u>status.observedGeneration<\/u><\/code><\/a>.<\/p>\n<p>\u041f\u0440\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u043e\u0434\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0446\u0438\u043a\u043b\u0430 syncLoop kubelet \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 <code>status.observedGeneration<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>metadata.generation<\/code> \u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 <code>observedGeneration<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438 \u0432 \u043a\u0430\u0436\u0434\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c <code>status.conditions<\/code>, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u044f\u0441\u043d\u043e, \u043a \u043a\u0430\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u0434\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435.<\/p>\n<h4>Tune CrashLoopBackOff<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4603\"><u>#4603<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4603-tune-crashloopbackoff\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c CrashLoopBackOff (\u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0438) \u0432 Kubernetes \u0441\u043c\u044f\u0433\u0447\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f: \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u043c\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u043c\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0442 (10\u00a0\u0441.\u00a0\u2192 20\u00a0\u0441.\u00a0\u2192 40\u00a0\u0441.\u00a0\u2192 80\u00a0\u0441.\u00a0\u2192 160\u00a0\u0441.\u00a0\u2192 300\u00a0\u0441. (5\u00a0\u043c\u0438\u043d\u0443\u0442)\u00a0\u2192 300\u00a0\u0441.\u00a0\u2192 300\u00a0\u0441.\u00a0\u2192 300\u00a0\u0441.\u2026). \u0421\u0431\u0440\u043e\u0441 \u0434\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0431\u0435\u0437 \u0441\u0431\u043e\u0435\u0432 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b 10 \u043c\u0438\u043d\u0443\u0442.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e 5 \u043c\u0438\u043d\u0443\u0442 \u2014 \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f AI\/ML \u0438\u043b\u0438 \u0438\u0433\u0440) \u0438\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 (\u0441\u0430\u0439\u0434\u043a\u0430\u0440\u043e\u0432), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430.\u00a0<\/p>\n<p>KEP \u043c\u0435\u043d\u044f\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0438. \u041f\u0430\u0443\u0437\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 1 \u0441\u0435\u043a\u0443\u043d\u0434\u044b (\u0432\u043c\u0435\u0441\u0442\u043e 10) \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0434\u043e 1 \u043c\u0438\u043d\u0443\u0442\u044b (\u0432\u043c\u0435\u0441\u0442\u043e 5). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441\u043c\u043e\u0433\u0443\u0442 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0443\u0437\u043b\u0430\u0445 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0430\u0443\u0437\u0443 \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e (\u0434\u043e 1 \u0441\u0435\u043a\u0443\u043d\u0434\u044b).\u00a0<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u0434\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0412\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b Kubernetes \u00ab\u0437\u0430\u0431\u044b\u043b\u00bb \u043f\u0440\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u043b \u043e\u0442\u0441\u0447\u0451\u0442 \u043f\u0430\u0443\u0437 \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430, \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0438\u043c \u2014 10 \u043c\u0438\u043d\u0443\u0442. \u0420\u0430\u043d\u044c\u0448\u0435 \u043e\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0435\u043b\u043e \u043e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u0443\u0437\u044b (2\u0445), \u0442\u0435\u043f\u0435\u0440\u044c \u2014 \u043d\u0435\u0442.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cd6\/9ef\/686\/cd69ef686fe57264e6b88d33a3b0aac0.png\" width=\"1600\" height=\"989\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/cd6\/9ef\/686\/cd69ef686fe57264e6b88d33a3b0aac0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cd6\/9ef\/686\/cd69ef686fe57264e6b88d33a3b0aac0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u043b\u044f CrashLoopBackOff (\u0438 <strong>\u0442\u043e\u043b\u044c\u043a\u043e<\/strong> \u0434\u043b\u044f CrashLoopBackOff) \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>ReduceDefaultCrashLoopBackOffDecay<\/code>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0441 <code>restartPolicy: Always<\/code> \u0438\u043b\u0438 <code>restartPolicy: OnFailure<\/code> \u043a\u0440\u0438\u0432\u0430\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043e\u0434\u043d\u0443 \u043c\u0438\u043d\u0443\u0442\u0443.<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><br \/><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4603-tune-crashloopbackoff\/README.md#design-details\"><em><u>KEP<\/u><\/em><\/a><em> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043c\u0430\u0441\u0441\u0443 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0442\u0430\u043a\u043e\u0439 \u043a\u0430\u043a \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0438 (\u0447\u0438\u0441\u043b\u043e \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u043e\u0432 \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438), \u0430\u043d\u0430\u043b\u0438\u0437 \u043e\u0432\u0435\u0440\u0445\u0435\u0434\u0430 kubelet\u2019\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0440\u0430\u0441\u0442\u0438 \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u043e\u0432, \u0438 \u0434\u0440.<\/em><\/p>\n<\/blockquote>\n<h4>Container Stop Signals<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4960\"><u>#4960<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4960-container-stop-signals\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0421\u0440\u0435\u0434\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (runtime) \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c <a href=\"https:\/\/docs.docker.com\/reference\/dockerfile\/#stopsignal\"><u>STOPSIGNAL<\/u><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u044b. \u0420\u0430\u043d\u044c\u0448\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b SIGTERM, \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0432 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u0440\u044f\u043c\u043e \u0432 Dockerfile. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0433\u043e\u0442\u043e\u0432\u044b\u0435 (pre-built) \u043e\u0431\u0440\u0430\u0437\u044b.<\/p>\n<p>KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c STOPSIGNAL \u043f\u0440\u044f\u043c\u043e \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u043e\u0434\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 lifecycle \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>stopSignal<\/code>:<\/p>\n<pre><code class=\"yaml\">apiVersion: v1 kind: Pod metadata:   name: nginx spec:   containers:   - name: nginx     image: nginx:1.14.2     lifecycle:       stopSignal: SIGUSR1<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 kubelet \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u044d\u0442\u043e \u043f\u043e\u043b\u0435. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u043e, kubelet \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b (SIGUSR1 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435) \u0447\u0435\u0440\u0435\u0437 CRI (Container Runtime Interface) \u0432 \u0441\u0440\u0435\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0430 \u0442\u0430 \u2014 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435.<\/p>\n<p>\u041d\u043e\u0432\u044b\u0439 <code>stopSignal<\/code> \u0432 PodSpec \u0438\u043c\u0435\u0435\u0442 \u043d\u0430\u0438\u0432\u044b\u0441\u0448\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 STOPSIGNAL, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u043e\u0431\u0440\u0430\u0437\u0435. STOPSIGNAL, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d, \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n<h4>Split L3 Cache Topology Awareness in CPU Manager<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5109\"><u>#5109<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4800-cpumanager-split-uncorecache\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u043c KEP 4800 (\u0441\u043c. <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/864988\/\"><u>\u043e\u0431\u0437\u043e\u0440 Kubernetes 1.32<\/u><\/a>). \u0412 \u0435\u0433\u043e \u0440\u0430\u043c\u043a\u0430\u0445 \u0431\u044b\u043b\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0430 <a href=\"https:\/\/docs.google.com\/document\/d\/1LpnMjGNsQyHOuVHMktIrjZsdRw9aKZ8djt354nAno6M\/edit?tab=t.0\"><u>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/u><\/a>, <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/130133\"><u>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b<\/u><\/a> \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u044d\u0448\u0430 Uncore (\u043e\u043d \u0436\u0435 L3), <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/130153\"><u>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b<\/u><\/a> \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u044c\u043d\u044b\u043c Uncore-\u043a\u044d\u0448\u0435\u043c \u0438 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u044b\u043c Uncore-\u043a\u044d\u0448\u0435\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u043d\u0430 \u0431\u0430\u0437\u0435 x86 \u0438 ARM \u0438 \u0434\u0440.<\/p>\n<h4>Expose Node labels via downward API<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4742\"><u>#4742<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4742-node-topology-downward-api\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e AI\/ML, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c stateful-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c, \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c CNI) \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b GPU \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u0441 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 GPU) \u0438\u043b\u0438 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 (\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u043e\u043d\u0430\u0445). \u0421\u0435\u0439\u0447\u0430\u0441, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043f\u043e\u0434\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c initContainer, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0443 API Kubernetes \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0437\u043b\u0435, \u0433\u0434\u0435 \u043f\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u042d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u0432 \u0434\u043b\u044f initContainer \u0438 \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u00ab\u043a\u043e\u0441\u0442\u044b\u043b\u0451\u043c\u00bb.<\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043b\u0435\u0439\u0431\u043b\u044b \u0441 \u0443\u0437\u043b\u0430 \u043d\u0430 \u043f\u043e\u0434, \u043a\u043e\u0433\u0434\u0430 \u0442\u043e\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0437\u0435\u043b. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a \u043d\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Downward API \u0442\u0430\u043a \u0436\u0435 \u043b\u0435\u0433\u043a\u043e, \u043a\u0430\u043a \u0438 \u043a \u043b\u044e\u0431\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043b\u0435\u0439\u0431\u043b\u0430\u043c \u043f\u043e\u0434\u0430.<\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0443\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 \u0443\u0437\u043b\u0430 <code>topology.kubernetes.io\/zone<\/code>, <code>topology.kubernetes.io\/region<\/code> \u0438 <code>kubernetes.io\/hostname<\/code>. \u0412 kube-apiserver \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 admission-\u043f\u043b\u0430\u0433\u0438\u043d <code>PodTopologyLabels<\/code>. \u042d\u0442\u043e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043b\u0435\u0439\u0431\u043b\u044b \u0443\u0437\u043b\u0430 \u0432 \u0441\u0443\u0431\u0440\u0435\u0441\u0443\u0440\u0441 <code>pods\/binding<\/code>. \u0415\u0441\u043b\u0438 \u0443 \u043f\u043e\u0434\u0430 \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u043b\u0435\u0439\u0431\u043b\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0436\u0435 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>topology.kubernetes.io\/zone<\/code>), \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u0443\u0437\u043b\u0430.<\/p>\n<p>\u0424\u0438\u0447\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e; \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>PodTopologyLabelsAdmission<\/code>.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Fine grained Kubelet API authorization\u00a0<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2862\"><u>#2862<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/2862-fine-grained-kubelet-authz\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP-2862 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0433\u0440\u0430\u043d\u0443\u043b\u044f\u0440\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f API kubelet. \u0412\u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f nodes\/proxy \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043d\u0434\u043f\u043e\u0439\u043d\u0442\u044b:<\/p>\n<ul>\n<li>\n<p><code>nodes\/healthz<\/code> \u2014 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u044f;<\/p>\n<\/li>\n<li>\n<p><code>nodes\/pods<\/code> \u2014 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u043e\u0434\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><code>nodes\/configz<\/code> \u2014 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>KubeletFineGrainedAuthz<\/code> (\u0432 \u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 False). \u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435 kubelet \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0447\u0435\u0440\u0435\u0437 \u043d\u043e\u0432\u044b\u0435 \u044d\u043d\u0434\u043f\u043e\u0439\u043d\u0442\u044b. \u0415\u0441\u043b\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u0430, \u043e\u043d \u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f \u043a \u0441\u0442\u0430\u0440\u043e\u043c\u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u0443 \u0447\u0435\u0440\u0435\u0437 \u0441\u0443\u0431\u0440\u0435\u0441\u0443\u0440\u0441 <code>proxy<\/code>.<\/p>\n<h4>Add CPUManager policy option to restrict reservedSystemCPUs to system daemons and interrupt processing\u00a0<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4540\"><u>#4540<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4540-strict-cpu-reservation\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u0443\u044e \u043e\u043f\u0446\u0438\u044e <code>strict-cpu-reservation<\/code> \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 CPU Manager. \u041e\u043d\u0430 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u043e\u0440\u044b, \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b (reservedSystemCPUs), \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u044e (\u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u044b burstable \u0438 best-effort \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a \u043d\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u0435\u0435). \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043c. <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/864988\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.32<\/u><\/a>.<\/p>\n<h4>DRA: structured parameters<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4381\"><u>#4381<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/4381-dra-structured-parameters\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432 DRA \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b \u0434\u043b\u044f Kubernetes. \u041e\u043d\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 DRA (\u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f claim\u2019\u043e\u0432) \u0438 kubelet-\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 DRA (\u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u0443\u0437\u043b\u0435). \u041f\u0440\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0434\u0430 kube-scheduler \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440(\u044b) \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 DRA, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439(\u0438\u0435) claim\u2019\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u0430, \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 apiserver, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044f \u043e\u0431\u044a\u0435\u043a\u0442 <code>PodSchedulingContext<\/code>. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 claim\u2019\u044b \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043f\u043e\u0434 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0437\u0435\u043b.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0434\u043b\u044f Cluster Autoscaler (CA) \u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u0434\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439. \u041e\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442 \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0440\u0435\u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438 claim\u2019\u043e\u0432 \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0422\u043e\u043b\u044c\u043a\u043e \u0443 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 DRA \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f.<\/p>\n<p>KEP \u00ab\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u00bb (<a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4381-dra-structured-parameters\/README.md\"><u>4381<\/u><\/a>) \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes 1.30<\/u><\/a>.<\/p>\n<h4>VolumeSource: OCI Artifact and\/or Image<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4639\"><u>#4639<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/4639-oci-volume-source\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 Kubernetes \u043d\u043e\u0432\u044b\u0439 VolumeSource, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 OCI-\u043e\u0431\u0440\u0430\u0437\u044b \u0438\/\u0438\u043b\u0438 OCI-\u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u0443\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438 \u0448\u0430\u0440\u0438\u0442\u044c \u0438\u0445 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445 \u043f\u043e\u0434\u0430, \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0437. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/835626\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes 1.31<\/u><\/a>.<\/p>\n<h4>In-Place Update of Pod Resources<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1287\"><u>#1287<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/1287-in-place-update-pod-resources\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u043b\u0438\u043c\u0438\u0442\u044b \u043f\u043e\u0434\u0430 \u00ab\u043d\u0430 \u043c\u0435\u0441\u0442\u0435\u00bb \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0434 \u0438\u043b\u0438 \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b. PodSpec \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (\u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043d\u0430 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e mutable). PodStatus \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u2014 \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u0434\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u044b\u0445 \u043f\u043e\u0434\u043e\u043c \u0438 \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 (<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/728040\/\"><u>\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/u><\/a>).\u00a0<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 Resize \u0437\u0430\u043c\u0435\u043d\u0451\u043d \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u043f\u043e\u0434\u0430 (<code>PodResizePending<\/code> \u0438 <code>PodResizing<\/code>), \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 ResizeRestartPolicy <code>NotRequired<\/code> \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0430 \u0432 <code>PreferNoRestart<\/code>, \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 CRI UpdateContainerResources \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d, \u0443\u0431\u0440\u0430\u043d \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>InPlacePodVerticalScalingAllocatedStatus<\/code>, \u0430 AllocatedResources \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u0434\u043b\u044f \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e\u0434\u043e\u0432 \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c <code>InPlacePodVerticalScaling<\/code>.<\/p>\n<h4>Add CPUManager policy option to distribute CPUs across NUMA nodes instead of packing them  <\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2902\"><u>#2902<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/2902-cpumanager-distribute-cpus-policy-option\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u043f\u0446\u0438\u044e <code>distribute-cpus-across-numa<\/code> \u0434\u043b\u044f static-\u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 CPUManager, \u0447\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0435 CPU \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c NUMA-\u0443\u0437\u043b\u0430\u043c. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0437\u0430 \u0441\u0447\u0451\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 NUMA-\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0447\u0430\u0441\u0442\u043e \u043b\u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0442\u043e\u043a\u043e\u043c\/\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c.<\/p>\n<h4>add ProcMount option<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4265\"><u>#4265<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/4265-proc-mount\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0435 <code>procMount<\/code> \u0432 \u0441\u0435\u043a\u0446\u0438\u044e <code>securityContext<\/code>. \u041e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e<code> \/proc<\/code> \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 <code>Unmasked<\/code> \u0438\u043b\u0438 \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.30<\/u><\/a>.<\/p>\n<h4>Support User Namespaces in pods<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/127\"><u>#127<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/127-user-namespaces\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d \u0432 stateless-\u043f\u043e\u0434\u0430\u0445. \u0418\u0434\u0435\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432 \u043f\u043e\u0434\u0430\u0445 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 ID \u0433\u0440\u0443\u043f\u043f\u044b, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0445\u043e\u0441\u0442\u0430. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432 \u043f\u043e\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u0445\u043e\u0441\u0442\u0435. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u00ab\u0432\u044b\u0440\u0432\u0435\u0442\u0441\u044f\u00bb \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0440\u0435\u0434 \u0431\u0443\u0434\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0435\u0433\u043e \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/728040\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.27<\/u><\/a>.<\/p>\n<h4>DRA: Resource Claim Status with possible standardized network interface data<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4817\"><u>#4817<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4817-resource-claim-device-status\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>Devices<\/code> \u0432 <code>ResourceClaim.Status<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0437\u0430\u044f\u0432\u043a\u0435 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441 (resource claim). \u042d\u0442\u043e \u043f\u043e\u0432\u044b\u0441\u0438\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0438 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442 \u043f\u043e\u0438\u0441\u043a \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/864988\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.32<\/u><\/a>.<\/p>\n<h4>Allow zero value for Sleep Action of PreStop Hook<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4818\"><u>#4818<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4818-allow-zero-value-for-sleep-action-of-prestop-hook\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/779700\/\"><u>KEP 3960<\/u><\/a> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 sleep \u0434\u043b\u044f PreStop-\u0445\u0443\u043a\u043e\u0432 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u043e\u043b\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u042d\u0442\u043e\u0442 KEP \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/864988\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.32<\/u><\/a>.<\/p>\n<h4>Fine-grained SupplementalGroups control<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3619\"><u>#3619<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3619-supplemental-groups-policy\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 API \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>SupplementalGroupsPolicy<\/code>. \u041e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u0441\u043b\u0435\u0434\u0443\u044f <abbr class=\"habraabbr\" title=\"\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0441\u0442\u0438 (Principle of least astonishment) \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0435\u044f\u0441\u043d\u043e, \u0442\u043e \u0435\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b.\" data-title=\"&lt;p&gt;\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0441\u0442\u0438 (Principle of least astonishment) \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0435\u044f\u0441\u043d\u043e, \u0442\u043e \u0435\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b.  &lt;\/p&gt;\">\u00ab\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0441\u0442\u0438\u00bb<\/abbr>. \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441\u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0437\u0430\u0449\u0438\u0442\u0443 <code>SupplementalGroupsPolicy<\/code> \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0445\u043e\u0434\u0430 <code>SupplementalGroups<\/code>. \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0430\u0432\u0435\u0448\u0435\u043d\u044b \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/835626\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.31<\/u><\/a>.<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<p><a class=\"anchor\" name=\"4004\" id=\"4004\"><\/a><\/p>\n<h4>Deprecate status.nodeInfo.kubeProxyVersion field<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4004\"><u>#4004<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/4004-deprecate-kube-proxy-version\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041f\u043e\u043b\u0435<code> kubeProxyVersion<\/code> \u0432 <code>NodeStatus<\/code> \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 deprecated-\u0441\u0442\u0430\u0442\u0443\u0441. \u041e\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u043c GCP \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.28 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e cloud-provider-gcp (<a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/117806\"><u>#117806<\/u><\/a>), \u0430 \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.29 \u2014 \u0434\u043b\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e cloud-provider-gcp (<a href=\"https:\/\/github.com\/kubernetes\/cloud-provider-gcp\/pull\/533\"><u>#533<\/u><\/a>).<\/p>\n<h4>Sidecar Containers\u00a0<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/753\"><u>#753<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/753-sidecar-containers\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041f\u043e\u043b\u0435 <code>restartPolicy<\/code> \u0434\u043b\u044f init-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u0435\u0441\u044f \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/754398\/\"><u>Kubernetes 1.28<\/u><\/a>, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 stable-\u0441\u0442\u0430\u0442\u0443\u0441. \u0415\u0433\u043e \u0441\u043c\u044b\u0441\u043b \u2014 \u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0442\u044c kubelet\u2019\u0443, \u0447\u0442\u043e init-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f sidecar-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 kubelet \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c init-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0441 <code>restartPolicy = Always<\/code> \u0432 \u0442\u043e\u043c \u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0447\u0442\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 init-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0436\u0438\u0434\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u044b, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (\u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0431\u0443\u0434\u0443\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 startup-\u043f\u0440\u043e\u0431\u044b \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 postStart).<\/p>\n<h4>node: cpumanager: add options to reject non SMT-aligned workload<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2625\"><u>#2625<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/2625-cpumanager-policies-thread-placement\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/cpu-management-policies\/\"><u>\u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 CPU Manager<\/u><\/a> (static). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u043f\u0446\u0438\u044e <code>full-pcpus-only<\/code>, Kubernetes \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c CPU \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u044b\u043c\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u044f\u0434\u0440\u0430\u043c\u0438. \u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u044f\u0434\u0440\u043e \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u0430, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043b\u0438\u0431\u043e \u043e\u0431\u0430 \u043f\u043e\u0442\u043e\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u0430, \u043b\u0438\u0431\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/571184\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.22<\/u><\/a> (\u0440\u0430\u0437\u0434\u0435\u043b \u00abNew CPU Manager Policies\u00bb).<\/p>\n<h4>Recursive Read-only (RRO) mounts<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3857\"><u>#3857<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3857-rro-mounts\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 read-only-\u0442\u043e\u043c\u043e\u0432 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0432 Kubernetes \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 Linux read-only-\u0442\u043e\u043c\u0430 \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c read-only.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>recursiveReadOnly<\/code> (<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\"><u>\u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 v1.30<\/u><\/a>) \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u043e\u0442 \u043d\u0435\u0434\u043e\u0447\u0451\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c read-only-\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e. \u0414\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0435 <code>recursiveReadOnly<\/code> \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 readOnly, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u043d\u0438\u043c. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c read-only, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043e\u0431\u0430 \u043f\u043e\u043b\u044f (<code>readOnly: true<\/code> \u0438 <code>recursiveReadOnly: Enabled<\/code>). \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>recursiveReadOnly<\/code> \u0432 v1.33 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 stable-\u0441\u0442\u0430\u0442\u0443\u0441.<\/p>\n<p><a class=\"anchor\" name=\"application\" id=\"application\"><\/a><\/p>\n<h2>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Consider Terminating Pods in Deployments<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3973\"><u>#3973<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-apps\/3973-consider-terminating-pods-deployment\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>Kubernetes \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442 <em>terminating-<\/em> (\u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0434\u044b, <code>deletionTimestamp<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043d\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0435\u0449\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442) \u0438 <em>terminated<\/em>-\u043f\u043e\u0434\u044b (\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u044b, \u0444\u0430\u0437\u0430 <code>Succeeded<\/code> \u0438\u043b\u0438 <code>Failed<\/code>). \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a terminating-\u043f\u043e\u0434\u0430\u043c: \u043f\u0440\u0438 RollingUpdate K8s \u043d\u0435 \u0436\u0434\u0451\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u044b\u0445 \u043f\u043e\u0434\u043e\u0432, \u0430 \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0435. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 Recreate Kubernetes \u0436\u0434\u0451\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0442\u0430\u0440\u044b\u0445 \u043f\u043e\u0434\u043e\u0432 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0435 \u0436\u0434\u0451\u0442 \u043f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u042d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 + \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u043e\u0434\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442\u044c \u043b\u0438\u043c\u0438\u0442 <code>spec.replicas<\/code> + <code>maxSurge<\/code>.<\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0435 <code>.spec.podReplacementPolicy<\/code> \u0432 DeploymentSpec, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><strong><em>TerminationStarted<\/em><\/strong> (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e)\u00a0\u2014 \u0434\u043b\u044f RollingUpdate \u0438 \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-apps\/3973-consider-terminating-pods-deployment\/README.md#deployment-behavior-changes\"><u>\u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c<\/u><\/a> \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 (\u0442\u043e \u0435\u0441\u0442\u044c terminating-\u043f\u043e\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u043e\u0432\u044b\u0445). \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 Recreate \u043b\u043e\u0433\u0438\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f: K8s \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0434\u043e\u0432 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u044b \u043d\u0430\u0447\u043d\u0443\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0432 terminating.<\/p>\n<\/li>\n<li>\n<p><strong><em>TerminationComplete<\/em><\/strong>\u00a0\u2014 \u0434\u043b\u044f RollingUpdate \u0438 \u043f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0434\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043e\u0432 (\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0445\u0441\u044f) \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 <code>.spec.replicas<\/code> + <code>.spec.strategy.rollingUpdate.maxSurge<\/code>. \u0414\u043b\u044f Recreate \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f (\u0436\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f).<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 Deployment&#8217;\u0430 \u0438 ReplicaSet&#8217;\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>.status.terminatingReplicas<\/code> \u0434\u043b\u044f \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u043e\u0434\u043e\u0432.<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Backoff Limit Per Index For Indexed Jobs<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3850\"><u>#3850<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-apps\/3850-backoff-limits-per-index-for-indexed-jobs\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 API Job, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a (backoff limit) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445.<\/p>\n<h4>Job success\/completion policy<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3998\"><u>#3998<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-apps\/3998-job-success-completion-policy\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 API Job, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 (Job) \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\"><u>\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.30<\/u><\/a>.<\/p>\n<p><a class=\"anchor\" name=\"storage\" id=\"storage\"><\/a><\/p>\n<h2>\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Add storage capacity scoring<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4049\"><u>#4049<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0446\u0435\u043d\u043a\u0438 \u0443\u0437\u043b\u043e\u0432 \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0442\u043e\u043c\u043e\u0432 (Persistent Volume, PV), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0431\u044a\u0451\u043c\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u0435 VolumeBinding. \u041f\u043e\u0434\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0443\u0437\u043b\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043e\u0431\u044a\u0451\u043c\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043d\u0430 \u0443\u0437\u043b\u0435 \u0438 \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0445 \u0446\u0435\u043b\u0435\u0439:<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 1.\u00a0<\/p>\n<p>\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c \u0437\u0430\u043f\u0430\u0441\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u043e\u043c\u0430. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0439\u0434\u0451\u0442 \u0443\u0437\u0435\u043b \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 2.<\/p>\n<p>\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u043e\u0431\u043b\u0430\u043a\u043e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0439\u0434\u0451\u0442 \u0443\u0437\u0435\u043b \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430.<\/p>\n<p>KEP <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning\/README.md#scoring-of-nodes-for-dynamic-provisioning\"><u>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442<\/u><\/a> \u0432 \u043f\u043b\u0430\u0433\u0438\u043d VolumeBinding \u043b\u043e\u0433\u0438\u043a\u0443 \u043e\u0446\u0435\u043d\u043a\u0438 \u0443\u0437\u043b\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u0451\u043c\u043a\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c <code>CSIStorageCapacity<\/code>. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0439\u0442\u0438 \u0443\u0437\u0435\u043b, \u043d\u043e \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430.<\/p>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 API \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 (<code>kubescheduler.config.k8s.io<\/code>) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435 <code>VolumeBindingArgs<\/code>. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning\/README.md#proposal\"><u>\u0434\u0432\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438<\/u><\/a>:<\/p>\n<ul>\n<li>\n<p><em>Prefer a node with the maximum allocatable (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e)<\/em>. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0443\u0437\u0435\u043b, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e, \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c CSIStorageCapacity, \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (StorageClass).\u00a0<\/p>\n<\/li>\n<li>\n<p><em>Prefer a node with the least allocatable.<\/em> \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0443\u0437\u0435\u043b, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><br \/><em>\u041d\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0446\u0435\u043d\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 <\/em><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning\/README.md#conditions-for-scoring-static-or-dynamic-provisioning\"><em><u>\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f<\/u><\/em><\/a><em> \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0442\u043e\u043c\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u043e\u043c, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0446\u0435\u043d\u043a\u0438.<\/em><\/p>\n<\/blockquote>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c <code>StorageCapacityScoring<\/code>.<\/p>\n<h4>Mutable CSINode Allocatable Property<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4876\"><u>#4876<\/u><\/a>; <a href=\"https:\/\/github.com\/torredil\/enhancements\/blob\/9c7f4a4e9e726a43a4e04cafb709df581b220229\/keps\/sig-storage\/4876-mutable-csinode-allocatable\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043b\u0435 <code>CSINode.Spec.Drivers[*].Allocatable.Count<\/code> (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0442\u043e\u043c\u043e\u0432 CSI, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u0443\u0437\u043b\u0443) \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 CSI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043e\u0432 \u0441 Persistent Volumes. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 (\u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0438) \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u043b\u043e\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043c\u043e\u0432 \u043d\u0430 \u0443\u0437\u043b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0442\u043e\u043c \u0438\u043b\u0438 \u0441\u043b\u043e\u0442 \u0431\u044b\u043b \u0437\u0430\u043d\u044f\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c) \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432 CSINode \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u0434 \u043d\u0430 \u0443\u0437\u0435\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u0443\u0436\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0441\u043b\u043e\u0442\u043e\u0432, \u0438 \u043f\u043e\u0434 \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <code>ContainerCreating<\/code>.<\/p>\n<p>KEP \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0434\u0435\u043b\u0430\u044f \u043f\u043e\u043b\u0435 <code>CSINode.Spec.Drivers[*].Allocatable.Count<\/code> \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c (mutable). \u0422\u0430\u043a\u0436\u0435 <a href=\"https:\/\/github.com\/torredil\/enhancements\/blob\/9c7f4a4e9e726a43a4e04cafb709df581b220229\/keps\/sig-storage\/4876-mutable-csinode-allocatable\/README.md#goals\"><u>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/u><\/a> \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: kubelet \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u044d\u043d\u0434\u043f\u043e\u0439\u043d\u0442 <code>NodeGetInfo<\/code> CSI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 (\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0432 \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 <code>CSIDriver.Spec.NodeAllocatableUpdatePeriodSeconds<\/code>) \u0438\u043b\u0438 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (<code>ResourceExhausted<\/code>) \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043c\u0430, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 CSINode.\u00a0<\/p>\n<p><a class=\"anchor\" name=\"5040\" id=\"5040\"><\/a><\/p>\n<h4>Remove gitRepo volume driver<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5040\"><u>#5040<\/u><\/a>; <a href=\"https:\/\/github.com\/vinayakankugoyal\/enhancements\/blob\/bb1ed06fcbdb65d3476ccd0e20a346cdf8d288a2\/keps\/sig-storage\/5040-remove-gitrepo-driver\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0442\u043e\u043c\u0430 gitRepo \u0438\u0437 Kubernetes \u0438\u0437-\u0437\u0430 \u0440\u044f\u0434\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0438\u0437-\u0437\u0430 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/cve-2024-10220\"><u>CVE-2024-10220<\/u><\/a>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u0443\u0437\u043b\u0435 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 root.<\/p>\n<p>\u0412 \u0432\u0435\u0440\u0441\u0438\u0438 1.33 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 GitRepoVolumeDriver, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 false, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0434\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 gitRepo. API-\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 gitRepo \u043f\u043e\u043a\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#gitrepo\"><u>init-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b<\/u><\/a> \u0438\u043b\u0438 <a href=\"https:\/\/github.com\/kubernetes\/git-sync\"><u>sidecar-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 c git-sync<\/u><\/a>.\u00a0<\/p>\n<p>\u0412 \u0432\u0435\u0440\u0441\u0438\u0438 1.36 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d. \u041f\u043e\u043b\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.39. \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0441 gitRepo \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 API \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Validating Admission Policy.<\/p>\n<h4>CSI Differential Snapshot for Block Volumes<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3314\"><u>#3314<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/3314-csi-changed-block-tracking\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 API CSI <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/3314-csi-changed-block-tracking\/README.md#the-csi-snapshotmetadata-service-api\"><u>\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c<\/u><\/a> \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 (Changed Block Tracking, CBT). \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u043c\u043e\u0432 Kubernetes \u2014 CSI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0443 API Kubernetes, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 apiserver, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u043e\u0435 gRPC-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c sidecar-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/3314-csi-changed-block-tracking\/README.md#the-external-snapshot-metadata-sidecar\"><code><u>external-snapshot-metadata<\/u><\/code><\/a>. \u0422\u043e\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Kubernetes audience-scoped-\u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a CSI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0443 \u0447\u0435\u0440\u0435\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043e\u043a\u0435\u0442.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Speed up recursive SELinux label change<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1710\"><u>#1710<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-storage\/1710-selinux-relabeling\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041d\u0430 \u0445\u043e\u0441\u0442\u0430\u0445 \u0441 SELinux \u0432 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 (enforcing mode) \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u0438\u043b\u0438 \u043a \u0445\u043e\u0441\u0442\u0443. \u042d\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u0435\u043d \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0438 \u043b\u0435\u0439\u0431\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u043e\u043c\u0435.\u00a0<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u043a\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c \u0436\u0438\u0437\u043d\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u044e\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b \u043d\u0430 \u0431\u0430\u0437\u0435 SELinux: \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u0435\u0439\u0431\u043b\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0442\u043e\u043c\u0435, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c \u043a \u043f\u043e\u0434\u0443. \u0415\u0441\u043b\u0438 \u0442\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f.<\/p>\n<p>\u041d\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u0430\u043f \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043b\u0435\u0439\u0431\u043b\u043e\u0432 \u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043c\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435\u00a0\u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/684142\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.25<\/u><\/a>.<\/p>\n<p>\u0412 v1.33 \u0444\u0438\u0447\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u0431\u0435\u0442\u0430-\u0441\u0442\u0430\u0434\u0438\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/5096\"><u>\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/u><\/a> \u043a\u043e\u0441\u043d\u0443\u043b\u0438\u0441\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0430\/\u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430.<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Generic data populators<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1495\"><u>#1495<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-storage\/1495-volume-populators\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0421\u0442\u0430\u0440\u043e\u0435 \u043f\u043e\u043b\u0435 DataSource \u0432 PVC \u0431\u044b\u043b\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e \u0442\u0438\u043f\u0430\u043c\u0438 Persistent Volume Claim (\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043c\u0430) \u0438 Volume Snapshot (\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u0430). \u0412 \u043d\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 (\u043d\u0435\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0442\u0438\u043f\u044b \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c, \u0430 \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u0438 \u043a \u043e\u0448\u0438\u0431\u043a\u0435).<\/p>\n<p>KEP \u0432\u0432\u0451\u043b \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>spec.dataSourceRef<\/code> \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 PVC. \u041e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u0442\u043e\u043c\u0430 \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0438\u0445 \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439). \u0414\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u044d\u0442\u0438\u0445 \u043d\u043e\u0432\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b-\u043d\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438, \u0430 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0442\u0435 \u0443\u043c\u0435\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043d\u043e\u0432\u043e\u043c CRD <code>VolumePopulator<\/code>.\u00a0<\/p>\n<h4>Portworx file in-tree to CSI driver migration\u00a0<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2589\"><u>#2589<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-storage\/2589-csi-migration-portworx\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 Kubernetes (in-tree) \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 Portworx \u0432 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u0439 (out-of-tree) CSI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440. \u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0432\u043e\u0448\u0451\u043b \u043a\u0430\u043a \u0431\u0435\u0442\u0430-\u0444\u0438\u0447\u0430 \u0432 K8s 1.25, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u0431\u044b\u043b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d. \u0412 \u0432\u0435\u0440\u0441\u0438\u0438 Kubernetes 1.31 \u043e\u043d \u0431\u044b\u043b \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432 1.33 \u0444\u0438\u0447\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0439.<\/p>\n<h4>Always Honor PersistentVolume Reclaim Policy<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2644\"><u>#2644<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-storage\/2644-honor-pv-reclaim-policy\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 (reclaim policy) \u0442\u043e\u043c\u043e\u0432 \u0442\u0438\u043f\u0430 Persistent Volume (PV) \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 PV \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 PVC (Persistent Volume Claim): PV \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u0435\u0441\u043b\u0438 PVC \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f PV.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u0438\u0437 \u043f\u0430\u0440\u044b \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f PV, \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 PV \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f. KEP \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 PV, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 PVC.<\/p>\n<p><a class=\"anchor\" name=\"network\" id=\"network\"><\/a><\/p>\n<h2>\u0421\u0435\u0442\u044c<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>IP\/CIDR validation improvements<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4858\"><u>#4858<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/4858-ip-cidr-validation\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 CIDR-\u0441\u0442\u0440\u043e\u043a \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445 Kubernetes \u0431\u044b\u043b\u0430 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u2014 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u043b\u043e\u0441\u044c \u043b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (<code>net.ParseIP<\/code> \u0438 <code>net.ParseCIDR<\/code>), \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u043e \u043a \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Go \u043c\u043e\u0433 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u0442\u044c 010.0.0.1 \u043a\u0430\u043a 10.0.0.1 (\u043e\u043f\u0443\u0441\u0442\u0438\u0432 \u043b\u0438\u0448\u043d\u0438\u0439 \u043d\u043e\u043b\u044c), \u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 libc \u043c\u043e\u0433\u043b\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c 010.0.0.1 \u043a\u0430\u043a 8.0.0.1 (\u043f\u0440\u0438\u043d\u044f\u0432 010 \u0437\u0430 \u0432\u043e\u0441\u044c\u043c\u0435\u0440\u0438\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e).<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/cve-2021-29923\"><u>CVE-2021-29923<\/u><\/a> \u0432 Go 1.17 <a href=\"https:\/\/go-review.googlesource.com\/c\/go\/+\/325829\"><u>\u0431\u044b\u043b\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0430<\/u><\/a> \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0441 \u0432\u0435\u0434\u0443\u0449\u0438\u043c\u0438 \u043d\u0443\u043b\u044f\u043c\u0438. \u0412 Kubernetes \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438, \u0441\u0434\u0435\u043b\u0430\u0432 \u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0440\u043e\u0433\u0438\u043c.\u00a0<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0435\u0437\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043e\u043c\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0443\u0442 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/4858-ip-cidr-validation#api-warnings\"><u>\u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f<\/u><\/a>, \u043f\u043e\u0442\u043e\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u043e\u0442\u043e\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 (<a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/4858-ip-cidr-validation#affected-fields\"><u>\u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u043b\u0435\u0439<\/u><\/a>). \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.<\/p>\n<h4>PreferSameNode Traffic Distribution (formerly PreferLocal traffic policy \/ Node-level topology)<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3015\"><u>#3015<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/3015-prefer-same-node\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0432 Kubernetes \u0431\u044b\u043b\u0430 \u043e\u043f\u0446\u0438\u044f <code>TrafficDistribution: PreferClose<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u044b \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u00ab\u0431\u043b\u0438\u0437\u043a\u0438\u0435\u00bb \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b\u043e\u0441\u044c \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u2014 \u044d\u0442\u043e \u043c\u043e\u0433 \u0431\u044b\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u0443\u0437\u0435\u043b, \u0442\u0430 \u0436\u0435 \u0437\u043e\u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e\u00a0\u0435\u0449\u0451.<\/p>\n<p>KEP \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u044c: \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>PreferClose<\/code> \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043e \u0432 <code>PreferSameZone<\/code> \u2014 \u00ab\u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443 \u0436\u0435 \u0437\u043e\u043d\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438\u00bb. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u044f <code>PreferSameNode<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u0443\u0437\u0435\u043b, \u0435\u0441\u043b\u0438 \u043d\u0430 \u043d\u0451\u043c \u0435\u0441\u0442\u044c \u043a\u043e\u043f\u0438\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/3015-prefer-same-node#dns\"><u>\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 DNS-\u043a\u044d\u0448\u0435\u0439<\/u><\/a>.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Relaxed DNS search string validation<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4427\"><u>#4427<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/4427-relaxed-dns-search-validation\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u043e\u0441\u043b\u0430\u0431\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a \u043f\u043e\u0438\u0441\u043a\u0430 DNS. \u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u043e\u043b\u0435 <code>searches<\/code> \u0432 <code>dnsConfig<\/code>, \u0438 \u043f\u043e\u0434\u044b \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0443. \u0412\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>RelaxedDNSSearchValidation<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d). \u041f\u0440\u0438 \u0435\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 DNS-\u0438\u043c\u0451\u043d, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432<em> <\/em>\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u00ab_\u00bb \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0433\u0434\u0435 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0444\u0438\u0441 \u00ab-\u00bb, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u00ab.\u00bb. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/864988\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.32<\/u><\/a>.<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Multiple Service CIDRs<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1880\"><u>#1880<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-network\/1880-multiple-service-cidrs\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043d\u043e\u0432\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0432\u0443\u0445 \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 API: <code>ServiceCIDR<\/code> \u0438 <code>IPAddress<\/code> \u2014 \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0435 <code>ServiceCIDR<\/code>, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<\/p>\n<p>\u041d\u043e\u0432\u044b\u0439 \u0430\u043b\u043b\u043e\u043a\u0430\u0442\u043e\u0440 \u0441\u043c\u043e\u0436\u0435\u0442 \u00ab\u0430\u0432\u0442\u043e\u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u00bb \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0437 \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e ServiceCIDR. \u042d\u0442\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0435\u0451 \u0435\u043c\u043a\u043e\u0441\u0442\u0438. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/779700\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.29<\/u><\/a>.<\/p>\n<h4>Topology Aware Routing<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2433\"><u>#2433<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/2433-topology-aware-hints\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0412 \u043c\u043d\u043e\u0433\u043e\u0437\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0430\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u043e\u0431\u043c\u0435\u043d\u0443 \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u043c\u0435\u0436\u0434\u0443 \u0437\u043e\u043d\u0430\u043c\u0438, \u0447\u0442\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 (latency) \u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c. KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u043b\u044f <code>hints<\/code> \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 <code>EndpointSlice<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u043c \u0432\u0440\u043e\u0434\u0435 kube-proxy \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043f\u043e\u0434\u0430\u043c \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0437\u043e\u043d\u0435, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0448\u0451\u043b \u0437\u0430\u043f\u0440\u043e\u0441).<\/p>\n<p>\u0412 Kubernetes 1.33 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c (GA) \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u043e \u043f\u043e\u043b\u0435 <code>hints<\/code>, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>service.kubernetes.io\/topology-mode=Auto<\/code>) \u043d\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 GA \u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c\u0438 \u2014 \u0430\u0432\u0442\u043e\u0440\u044b KEP \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 API \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c.<\/p>\n<h4>nftables kube-proxy backend<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3866\"><u>#3866<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-network\/3866-nftables-proxy\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u044d\u043a\u0435\u043d\u0434\u0430 nftables \u0434\u043b\u044f kube-proxy. \u0412 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435 \u0442\u043e\u0442 \u0441\u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c iptables \u0438 IPVS \u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0435\u0436\u0438\u043c\u043e\u043c kube-proxy \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 Linux. \u0417\u0430\u043c\u0435\u043d\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u0432 \u043f\u0440\u043e\u0439\u0434\u0443\u0442 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e KEP \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/779700\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 K8s\u00a01.29<\/u><\/a>.<\/p>\n<h4>Traffic Distribution for Services<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4444\"><u>#4444<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/4444-service-traffic-distribution\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>routingPreference<\/code> \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 Kubernetes. \u041e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e <code>service.kubernetes.io\/topology-mode<\/code> \u0438 \u0435\u0451 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0430 \u2014 \u043f\u043e\u043b\u0435 <code>topologyKeys<\/code> (\u0443\u0441\u0442\u0430\u0440\u0435\u043b\u043e \u0432 Kubernetes\u00a01.21). \u041f\u0440\u0438\u043c\u0435\u0440 \u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.30<\/u><\/a>.<\/p>\n<p><a class=\"anchor\" name=\"4974\" id=\"4974\"><\/a><\/p>\n<h4>Deprecate v1.Endpoints and Associated Controllers<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4974\"><u>#4974<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/4974-deprecate-endpoints\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c API v1.Endpoints \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 v1.EndpointSlice \u2014 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 kube-proxy. \u0421\u0430\u043c API v1.Endpoints \u043f\u043e\u043a\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 (endpoints-controller, endpointslice-mirroring-controller), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u044d\u0442\u0438 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b.<\/p>\n<p><a class=\"anchor\" name=\"API\" id=\"API\"><\/a><\/p>\n<h2>API<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Ordered namespace deletion<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5080\"><u>#5080<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/5080-ordered-namespace-deletion\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c \u0438 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u043c, \u043a\u043e\u0433\u0434\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, NetworkPolicy \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \u043f\u043e\u0434\u0430.<\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u044b \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 NetworkPolicies). \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>OrderedNamespaceDeletion<\/code>.<\/p>\n<h4>Snapshottable API server cache<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4988\"><u>#4988<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/4988-snapshottable-api-server-cache\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f kube-apiserver (watchcache) \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u041e\u0434\u043d\u0430\u043a\u043e LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u044d\u0448\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 etcd \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e, \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 <code>resourceVersion<\/code>. \u042d\u0442\u043e <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/4988-snapshottable-api-server-cache\/README.md#motivation\"><u>\u0441\u043e\u0437\u0434\u0430\u0451\u0442<\/u><\/a> \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438 \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u044c API-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438 (API Priority and Fairness).<\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 kube-apiserver, \u0447\u0442\u043e\u0431\u044b \u0442\u043e\u0442 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043b \u0432\u0441\u0435 LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438\u0437 \u043a\u044d\u0448\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043b\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/4988-snapshottable-api-server-cache\/README.md#cache-inconsistency-detection-mechanism\"><u>\u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f<\/u><\/a> \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u044d\u0448\u0435\u043c \u0438 etcd \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0435\u0442\u0440\u0438\u043a (\u0434\u043b\u044f \u0430\u043b\u044c\u0444\u044b), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c. \u0412 \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 etcd \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Declarative Validation Of Kubernetes Native Types With validation-gen<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5073\"><u>#5073<\/u><\/a>; <a href=\"https:\/\/github.com\/aaron-prindle\/enhancements\/blob\/1c969c08be5c627436453ae4bc637f0a8697382d\/keps\/sig-api-machinery\/5073-declarative-validation-with-validation-gen\/README.md#summary\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a API Kubernetes \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0447\u0442\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0438\u043c, \u0430\u043d\u0430\u043b\u0438\u0437, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 API-\u0442\u0438\u043f\u043e\u0432 Kubernetes, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u043b\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c) \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 IDL-\u0442\u0435\u0433\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 <code>types.go<\/code> (\u0441\u043c. \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0438\u0436\u0435). \u041d\u043e\u0432\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 <code>validation-gen<\/code> \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c Go-\u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438.\u00a0<\/p>\n<p>\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <a href=\"https:\/\/github.com\/aaron-prindle\/enhancements\/blob\/1c969c08be5c627436453ae4bc637f0a8697382d\/keps\/sig-api-machinery\/5073-declarative-validation-with-validation-gen\/README.md#introduce-feature-gates-declarativevalidation--declarativevalidationmismatchmetrics\"><u>DeclarativeValidation<\/u><\/a>. \u0412 \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u0443\u044e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e \u043d\u0430 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e. \u0421\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0438\u0445 \u0447\u0438\u0441\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0442\u0438, \u043f\u043e\u043a\u0430 \u0432\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u0438 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438, <a href=\"https:\/\/github.com\/aaron-prindle\/enhancements\/blob\/1c969c08be5c627436453ae4bc637f0a8697382d\/keps\/sig-api-machinery\/5073-declarative-validation-with-validation-gen\/README.md#ensuring-validation-equivalence-with-testing\"><u>\u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430<\/u><\/a> \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u043d\u0442\u0430\u0439\u043c-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>DeclarativeValidationMismatchMetrics<\/code>. \u041f\u0440\u0438 \u0435\u0451 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0442\u0430\u043a \u0438 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f, \u0430 \u043b\u044e\u0431\u044b\u0435 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043c\u0435\u0442\u0440\u0438\u043a\u0435 declarative-validation-mismatch.<\/p>\n<pre><code class=\"go\">\/\/ staging\/src\/k8s.io\/api\/core\/v1\/types.go  \/\/ ReplicationControllerSpec is the specification of a replication controller. type ReplicationControllerSpec struct {         \/\/ +k8s:optional         \/\/ +k8s:minimum=0         Replicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`          \/\/ +k8s:optional         \/\/ +k8s:minimum=0         MinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"` ... }<\/code><\/pre>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 <code>+k8s:optional<\/code> \u0438 <code>+k8s:minimum<\/code> \u2014 IDL-\u0442\u0435\u0433\u0438, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 <code>validation-gen<\/code> \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438.<\/p>\n<h4>Coordinated Leader Election<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4355\"><u>#4355<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/4355-coordinated-leader-election\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u0432 \u043b\u0438\u0434\u0435\u0440\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 lease\u2019\u043e\u0432, \u043d\u043e \u0441 \u0434\u0432\u0443\u043c\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u0438 \u0437\u0430 lease \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u044b \u0431\u0443\u0434\u0443\u0442 \u00ab\u0432\u044b\u0434\u0432\u0438\u0433\u0430\u0442\u044c\u00bb \u0441\u0432\u043e\u0438 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0443\u0440\u044b \u043d\u0430 lease, \u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u0432\u044b\u0431\u043e\u0440\u043e\u0432 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442 lease \u0437\u0430 \u043b\u0443\u0447\u0448\u0438\u043c \u0438\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u0432\u044b\u0431\u043e\u0440\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u0435\u0442\u0438\u0442\u044c lease \u043a\u0430\u043a \u00ab\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0443\u044e\u0441\u044f\u00bb (end of term), \u0447\u0442\u043e \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u043b\u0438\u0434\u0435\u0440\u0443 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0451 \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043b\u0438\u0434\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u0451\u043d \u0438 \u0437\u0430\u043c\u0435\u043d\u0451\u043d \u043b\u0443\u0447\u0448\u0438\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/835626\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.31<\/u><\/a>.<\/p>\n<h4>Streaming Encoding for LIST Responses<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5116\"><u>#5116<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/5116-streaming-response-encoding\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 API-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 CustomResourceDefinitions (CRDs).\u00a0<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0432\u0435\u0442\u0430 (\u0432 JSON \u0438\u043b\u0438 Protobuf) \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442 \u0435\u0434\u0438\u043d\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u043b\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443. \u042d\u0442\u043e\u0442 KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u00ab\u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u00bb (streaming encoding) \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u044b (\u00ab\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439\u00bb). \u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0441\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 API-\u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u042d\u0442\u043e \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0451 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c.<\/p>\n<p>\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0444\u0438\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>StreamingCollectionEncodingToJSON<\/code> (JSON) \u0438\u043b\u0438 <code>StreamingCollectionEncodingToProto<\/code> (Protobuf).<\/p>\n<p><a class=\"anchor\" name=\"authentification\" id=\"authentification\"><\/a><\/p>\n<h2>\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Projected service account tokens for Kubelet image credential providers<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4412\"><u>#4412<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-auth\/4412-projected-service-account-tokens-for-kubelet-image-credential-providers\/README.md#summary\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434 \u043c\u043e\u0433 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0435\u043c\u0443 \u043d\u0443\u0436\u0435\u043d \u043b\u0438\u0431\u043e \u0441\u0435\u043a\u0440\u0435\u0442 (imagePullSecret), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 Kubernetes \u0438 \u0436\u0438\u0432\u0451\u0442 \u0434\u043e\u043b\u0433\u043e, \u043b\u0438\u0431\u043e \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0443\u0437\u043b\u0435 (\u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0438\u043c \u0438\u043c\u0435\u044e\u0442 \u0432\u0441\u0435 \u043f\u043e\u0434\u044b \u043d\u0430 \u044d\u0442\u043e\u043c \u0443\u0437\u043b\u0435). \u041e\u0431\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b \u0438 \u0443\u0434\u043e\u0431\u043d\u044b.<\/p>\n<p>KEP \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c kubelet credential provider. \u042d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 kubelet \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c. \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 kubelet (CredentialProvider) <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-auth\/4412-projected-service-account-tokens-for-kubelet-image-credential-providers\/README.md#design-details\"><u>\u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/u><\/a> \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>TokenAttributes<\/code>. \u0412 \u043d\u0451\u043c \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 <code>ServiceAccountTokenAudience<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0432 <code>ServiceAccountAnnotationKeys<\/code> \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u044b \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0443 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c <code>CredentialProviderRequest<\/code>. \u041f\u043b\u0430\u0433\u0438\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 CredentialProvider<\/h3>\n<pre><code class=\"yaml\">apiVersion: kubelet.config.k8s.io\/v1 kind: CredentialProviderConfig providers:   - name: acr-credential-provider     matchImages:       - \"*.registry.io\/*\"     defaultCacheDuration: \"10m\"     apiVersion: credentialprovider.kubelet.k8s.io\/v1     tokenAttributes:       serviceAccountTokenAudience: my-audience       serviceAccountAnnotationKeys:       - domain.io\/identity-id       - domain.io\/identity-type       - domain.io\/annotation-that-does-not-exist<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d CredentialProvider \u0441 \u044d\u0442\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u043e\u043f\u0446\u0438\u0435\u0439 \u0438 kubelet\u2019\u0443 \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437, kubelet \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0443 API-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439, \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0436\u0438\u0432\u0443\u0449\u0438\u0439 projected service account token (\u043e\u0442\u0441\u044e\u0434\u0430 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 KEP), \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a \u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043f\u043e\u0434\u0443. \u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0435 <code>audience<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0434\u043b\u044f \u043a\u043e\u0433\u043e \u044d\u0442\u043e\u0442 \u0442\u043e\u043a\u0435\u043d \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430).<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 kubelet \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043b\u0430\u0433\u0438\u043d credential provider&#8217;\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u0435\u043c\u0443 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0431\u0440\u0430\u0437\u0435 (\u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435), \u043d\u043e \u0438 \u044d\u0442\u043e\u0442 PSA-\u0442\u043e\u043a\u0435\u043d. \u041f\u043b\u0430\u0433\u0438\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u043a\u0435\u043d\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0435 \u0438 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0435\u0442 PSA-\u0442\u043e\u043a\u0435\u043d \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n<p>\u041f\u043b\u0430\u0433\u0438\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u044d\u0442\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 kubelet&#8217;\u0443, \u0438 \u0442\u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u0445 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430.<\/p>\n<h4>API for external signing of Service Account tokens<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/740\"><u>#740<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-auth\/740-service-account-external-signing\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0414\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0445 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 Kubernetes \u0441\u0430\u043c \u0445\u0440\u0430\u043d\u0438\u0442 \u044d\u0442\u0438 \u043a\u043b\u044e\u0447\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043c\u0438. KEP 740 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 HSMs \u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c KMS, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/864988\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.32<\/u><\/a>.<\/p>\n<p>KEP \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0432 \u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u0438. \u0411\u044b\u043b\u0430 <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/129816\"><u>\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/u><\/a> <code>--service-account-max-token-expiration<\/code> \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430 \u0441 <code>--service-account-signing-endpoint<\/code>, \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 <code>ExtendedSigningDuration<\/code> \u0432 \u043e\u043f\u0446\u0438\u044f\u0445 apiserver, <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/pull\/128190\"><u>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b<\/u><\/a> Plugin \u0438 Key Cache, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 ExternalJWTSigner \u0438 \u0432\u0432\u0435\u0434\u0451\u043d \u043d\u043e\u0432\u044b\u0439 \u0444\u043b\u0430\u0433 <code>service-account-signing-endpoint<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 ExternalJWTSigner.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>ClusterTrustBundles (previously Trust Anchor Sets)<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3257\"><u>#3257<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-auth\/3257-cluster-trust-bundles\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 ClusterTrustBundle \u2014 \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0432 Kubernetes, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044f\u043a\u043e\u0440\u0435\u0439 \u0434\u043e\u0432\u0435\u0440\u0438\u044f (CA-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432) \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u042d\u0442\u043e\u0442 \u0440\u0435\u0441\u0443\u0440\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 (signerName), \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c RBAC \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u0446\u0435\u043f\u043e\u0447\u0435\u043a \u0434\u043e\u0432\u0435\u0440\u0438\u044f. \u0422\u0430\u043a\u0436\u0435 <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/projected-volumes\/#clustertrustbundle\"><u>\u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0442\u0438\u043f projected-\u0442\u043e\u043c\u0430<\/u><\/a> <code>clusterTrustBundle<\/code>. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 ClusterTrustBundle \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0439\u043b\u0430 \u0441 PEM-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u043e\u0434\u0430, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445. \u0422\u0430\u043a\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0432\u0435\u0440\u0438\u0435\u043c \u0434\u043b\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 CA \u0438 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f CA API-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 <code>ClusterTrustBundle<\/code> \u0438 <code>ClusterTrustBundleProjection<\/code>.<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Bound service account token improvements\u00a0<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4193\"><u>#4193<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-auth\/4193-bound-service-account-token-improvements\/\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 TokenRequest <code>create<\/code> kube-apiserver-\u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044f <code>name<\/code> \u0438 <code>uid<\/code> \u0443\u0437\u043b\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0434 (\u0447\u0435\u0440\u0435\u0437 <code>spec.nodeName<\/code>).<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043a\u043e\u0434\u0430 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043c\u044f \u0443\u0437\u043b\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0433\u0435\u0442\u0442\u0435\u0440 (<code>get<\/code>) \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 Node \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f TokenRequest. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c UID \u0443\u0437\u043b\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 Pod \u0438 Secret.<\/p>\n<p><a class=\"anchor\" name=\"CLI\" id=\"CLI\"><\/a><\/p>\n<h2>CLI<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Separate kubectl user preferences from cluster configs<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3104\"><u>#3104<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-cli\/3104-introduce-kuberc\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b kuberc, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0443\u0442\u0438\u043b\u0438\u0442\u044b kubectl, \u043e\u0442\u0434\u0435\u043b\u044f\u044f \u0438\u0445 \u043e\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432 kubeconfig. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 kubeconfig. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0444\u043b\u0430\u0433\u0430 <code>--kubeconfig<\/code> \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>$KUBECONFIG<\/code>.\u00a0<\/p>\n<p>\u0412 \u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c kuberc \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>KUBECTL_KUBERC<\/code>, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u0435\u0451 \u0432 <code>true<\/code>. \u0412 kuberc \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434 kubectl (\u0441\u0435\u043a\u0446\u0438\u044f <em>aliases<\/em>) \u0438 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u043b\u0430\u0433\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 (\u0441\u0435\u043a\u0446\u0438\u044f <em>overrides<\/em>), \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0444\u043b\u0430\u0433\u0438, \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 kuberc<\/h3>\n<pre><code class=\"yaml\">apiVersion: kubectl.config.k8s.io\/v1alpha1 kind: Preference  aliases:   - name: getdbprod     command: get     prependArgs:     - pods     flags:     - name: labels       default: what=database     - name: namespace       default: us-2-production  overrides:   - command: apply     flags:       - name: server-side         default: \"true\"   - command: delete     flags:       - name: interactive         default: \"true\"<\/code><\/pre>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Add subresource support to kubectl<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2590\"><u>#2590<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-cli\/2590-kubectl-subresource\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u0444\u043b\u0430\u0433 <code>--subresource=[subresource-name]<\/code> \u043a \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c <code>kubectl get<\/code> \u0438 <code>kubectl patch<\/code>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0434\u0440\u0435\u0441\u0443\u0440\u0441\u044b status, scale \u0438 \u0434\u0440\u0443\u0433\u0438\u0435, \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 kubectl. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/661763\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 Kubernetes\u00a01.24<\/u><\/a>.<\/p>\n<p><a class=\"anchor\" name=\"scheduler\" id=\"scheduler\"><\/a><\/p>\n<h2>\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>DRA: Add support for partitionable devices<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4815\"><u>#4815<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-scheduling\/4815-dra-partitionable-devices\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e Dynamic Resource Allocation (DRA) \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u043e \u0438 \u0447\u0430\u0441\u0442\u0438 \u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (partition). \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 API \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438, DRA \u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0445 \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u0432\u044b\u0441\u0438\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<p>\u0421 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c DRA \u043e\u0442 \u00ab\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e\u00bb \u0434\u043e \u00ab\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u00bb \u044d\u0442\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438 \u0431\u044b\u043b\u0430 \u0443\u0442\u0440\u0430\u0447\u0435\u043d\u0430. KEP \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u044d\u0442\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432 \u0440\u0430\u043c\u043a\u0438 \u00ab\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u00bb. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0442\u0430\u043a \u0438 \u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u0447\u0435\u043c \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0432\u0435\u043d\u0434\u043e\u0440\u0430\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 ResourceSlice \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u043d\u0430 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c, \u043a\u0430\u043a <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-scheduling\/4815-dra-partitionable-devices#dynamic-allocation-of-multi-instance-gpus-mig-on-nvidia-hardware\"><u>\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 NVIDIA MIG<\/u><\/a>). \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a Kubernetes \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043b\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u043e\u0440\u043e\u0433\u0438\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0422\u0430\u043a\u0436\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u0435 <code>PerDeviceNodeSelection<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0443\u0437\u043b\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u044f, \u0430 \u043d\u0435 \u0432\u0435\u0441\u044c ResourceSlice \u0446\u0435\u043b\u0438\u043a\u043e\u043c (\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0441 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0441\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 multi-host TPU).<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440<\/h3>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b7d\/681\/8ad\/b7d6818ad80393578a33334c2ff08398.png\" alt=\"\u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0438 NVIDIA A100 40GB \u043d\u0430 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438\" title=\"\u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0438 NVIDIA A100 40GB \u043d\u0430 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438\" width=\"1361\" height=\"563\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b7d\/681\/8ad\/b7d6818ad80393578a33334c2ff08398.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b7d\/681\/8ad\/b7d6818ad80393578a33334c2ff08398.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0438 NVIDIA A100 40GB \u043d\u0430 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438<\/em><\/figcaption><\/div>\n<\/figure>\n<p><code>ResourceClaim<\/code> \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0445\u0441\u044f MIG-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e GPU:<\/p>\n<pre><code class=\"yaml\">apiVersion: resource.k8s.io\/v1alpha3 kind: ResourceClaim metadata:   name: mig-devices spec:   spec:     devices:       requests:       - name: mig-1g-5gb-0         deviceClassName: mig.nvidia.com         selectors:         - cel:             expression: \"device.attributes['gpu.nvidia.com'].profile == '1g.5gb'\"       - name: mig-1g-5gb-1         deviceClassName: mig.nvidia.com         selectors:         - cel:             expression: \"device.attributes['gpu.nvidia.com'].profile == '1g.5gb'\"       - name: mig-2g-10gb         deviceClassName: mig.nvidia.com         selectors:         - cel:             expression: \"device.attributes['gpu.nvidia.com'].profile == '2g.10gb'\"       - name: mig-3g-20gb         deviceClassName: mig.nvidia.com         selectors:         - cel:             expression: \"device.attributes['gpu.nvidia.com'].profile == '3g.20gb'\"       constraints:       - requests: []         matchAttribute: \"gpu.nvidia.com\/parentUUID\"<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dd3\/743\/1a6\/dd37431a63bf980266a0ddc14e7513f0.png\" alt=\"\u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439\" title=\"\u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439\" width=\"1365\" height=\"317\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/dd3\/743\/1a6\/dd37431a63bf980266a0ddc14e7513f0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dd3\/743\/1a6\/dd37431a63bf980266a0ddc14e7513f0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0439<\/em><\/figcaption><\/div>\n<\/figure>\n<h4>DRA: device taints and tolerations<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5055\"><u>#5055<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-scheduling\/5055-dra-device-taints-and-tolerations\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0412 DRA \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442, \u0432 <code>ResourceSlice<\/code>. \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u043e\u0434 \u043d\u0443\u0436\u0434\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 <code>ResourceClaim<\/code>.<\/p>\n<p>\u042d\u0442\u043e\u0442 KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c DRA \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0442\u044c <em>taints<\/em> (\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f) \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0434\u044b \u043d\u0430 \u043d\u0438\u0445 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 <em>taint<\/em>, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b. \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0442\u044c taint\u2019\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-scheduling\/5027-dra-admin-controlled-device-attributes\"><u>ResourceSlicePatch<\/u><\/a>.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 <code>ResourceClaim<\/code> \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c <em>tolerations<\/em> (\u0434\u043e\u043f\u0443\u0441\u043a\u0438) \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 taint\u2019\u043e\u0432.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Asynchronous preemption in the scheduler<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4832\"><u>#4832<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-scheduling\/4832-async-preemption\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0412 Kubernetes \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u043f\u043e\u0434\u044b \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0434\u043b\u044f \u043d\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0443\u0437\u0435\u043b. \u0415\u0441\u043b\u0438 \u0443\u0437\u0435\u043b \u0437\u0430\u043d\u044f\u0442 \u043f\u043e\u0434\u0430\u043c\u0438 \u0441 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c, \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u0435 (preemption), \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u0430 \u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e API-\u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u044d\u0442\u0438 API-\u0432\u044b\u0437\u043e\u0432\u044b \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e, \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0433\u043e\u0440\u0443\u0442\u0438\u043d\u0435. \u0422\u0430\u043a \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0436\u0434\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u044f, \u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u0434\u043e\u0432.<\/p>\n<h4>Pop pod from backoffQ when activeQ is empty<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5142\"><u>#5142<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-scheduling\/5142-pop-backoffq-when-activeq-empty\/README.md#summary\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0412 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435 Kubernetes (kube-scheduler) \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0438:<\/p>\n<ul>\n<li>\n<p><strong><em>activeQ<\/em><\/strong> \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0434\u044b, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p><strong><em>unschedulableQ<\/em><\/strong> \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0435 \u0441\u043c\u043e\u0433 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0443\u0437\u043b\u0430\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u043d\u0430\u0448\u0451\u043b \u0443\u0437\u043b\u0430 \u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438). \u041e\u043d\u0438 \u0436\u0434\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p><strong><em>backoffQ<\/em><\/strong> \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0434\u044b \u0438\u0437 <em>unschedulableQ<\/em> \u0438\u043b\u0438 \u0442\u0435, \u0447\u0442\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u043f\u0440\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u042d\u0442\u0438 \u043f\u043e\u0434\u044b \u00ab\u0441\u0438\u0434\u044f\u0442 \u043d\u0430 \u0448\u0442\u0440\u0430\u0444\u043d\u043e\u0439 \u0441\u043a\u0430\u043c\u0435\u0439\u043a\u0435\u00bb \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f (backoff penalty) \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435, \u043a\u043e\u0433\u0434\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u044c <em>activeQ<\/em> \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0443\u0441\u0442\u043e\u0439, \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u043b, \u043e\u0436\u0438\u0434\u0430\u044f \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0434\u043e\u0432 \u0438\u043b\u0438 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f backoff-\u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0443 \u043f\u043e\u0434\u043e\u0432 \u0432 <em>backoffQ<\/em>. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u044b\u043b\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 <em>backoffQ<\/em> \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0430\u043b\u0438 \u043f\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u043e \u043e\u043d\u0438 \u0436\u0434\u0430\u043b\u0438 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0433\u043e backoff-\u043f\u0435\u0440\u0438\u043e\u0434\u0430.<\/p>\n<p>KEP \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430: \u043a\u043e\u0433\u0434\u0430 <em>activeQ<\/em> \u043f\u0443\u0441\u0442\u0435\u0435\u0442, \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442, \u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u0434 \u0438\u0437 <em>backoffQ<\/em>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0438\u0441\u0442\u0435\u043a\u0430\u0435\u0442 \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e (<a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-scheduling\/5142-pop-backoffq-when-activeq-empty\/README.md#low-priority-pod-could-be-chosen-to-pop-even-if-high-priority-pod-has-a-slightly-later-backoff-expiration\"><u>\u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430<\/u><\/a>), \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u043d\u0430 (\u0432\u043d\u0435)\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0424\u0438\u0447\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u0431\u0435\u0442\u0430-\u0441\u0442\u0430\u0442\u0443\u0441\u0435.<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Take taints\/tolerations into consideration when calculating PodTopologySpread skew<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3094\"><u>#3094<\/u><\/a>; <a href=\"https:\/\/github.com\/kerthcet\/enhancements\/blob\/8ee524e05903213f44a4e06ae0544c22d2cf769f\/keps\/sig-scheduling\/3094-pod-topology-spread-considering-taints\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043e\u0432 \u043f\u043e \u0443\u0437\u043b\u0430\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 skew-\u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 taints \u0438 tolerations \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/684142\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.25<\/u><\/a>.<\/p>\n<h4>Introduce MatchLabelKeys to Pod Affinity and Pod Anti Affinity<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3633\"><u>#3633<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-scheduling\/3633-matchlabelkeys-to-podaffinity\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f <code>MatchLabelKeys<\/code> \u0438 <code>MismatchLabelKeys<\/code> \u0432 <code>PodAffinityTerm<\/code>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c <code>PodAffinity<\/code> \u0438\u043b\u0438 <code>PodAntiAffinity<\/code> \u0434\u043b\u044f \u043f\u043e\u0434\u043e\u0432 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 LabelSelector. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/779700\/\"><u>\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.29<\/u><\/a>.<\/p>\n<p><a class=\"anchor\" name=\"autoscaling\" id=\"autoscaling\"><\/a><\/p>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Configurable tolerance for Horizontal Pod Autoscalers<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4951\"><u>#4951<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-autoscaling\/4951-configurable-hpa-tolerance\"><u>KEP<\/u><\/a>  <\/p>\n<p><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/horizontal-pod-autoscale\/\"><u>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/u><\/a> \u0432 Kubernetes (HPA) \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043f\u043b\u0438\u043a \u0432 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0430 (\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e) \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043f\u043b\u0438\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435\u043c \u043c\u0435\u0436\u0434\u0443 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 (<a href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/horizontal-pod-autoscale\/#algorithm-details\"><u>\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435<\/u><\/a>).<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0432 HPA \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043d\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (tolerance), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 10\u00a0%. \u0422\u043e \u0435\u0441\u0442\u044c HPA \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 10\u00a0%. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 tolerance \u0435\u0434\u0438\u043d\u043e\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0447\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u043b\u044f \u043e\u0434\u043d\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0435\u043b\u0438\u043a\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0438\u0437 1000 \u043f\u043e\u0434\u043e\u0432 10\u00a0% \u2014 \u044d\u0442\u043e \u0441\u043e\u0442\u043d\u0438 \u043b\u0438\u0448\u043d\u0438\u0445 \u0438\u043b\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0445 \u043a\u043e\u043f\u0438\u0439), \u0430 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u2014 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0435 <code>tolerance<\/code> \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u044b <code>spec.behavior.scaleUp<\/code> \u0438 <code>spec.behavior.scaleDown<\/code>, \u0447\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u043e\u0433 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e HPA. \u041f\u0440\u0438\u0447\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e\u0440\u043e\u0433\u0438 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f (scale-up) \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f (scale-down) \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u043e\u0432.\u00a0<\/p>\n<p>\u0424\u0438\u0447\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430: \u0435\u0441\u043b\u0438 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, HPA \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433.<\/p>\n<p><a class=\"anchor\" name=\"windows\" id=\"windows\"><\/a><\/p>\n<h2>Windows<\/h2>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Support for Direct Service Return (DSR) and overlay networking in Windows kube-proxy\u00a0<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5100\"><u>#5100<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-windows\/5100-windows-dsr-and-overlay-support\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 DSR (Direct Server Return) \u0438 \u043e\u0432\u0435\u0440\u043b\u0435\u0439-\u0441\u0435\u0442\u0435\u0439 \u0434\u043b\u044f Windows-\u0443\u0437\u043b\u043e\u0432. \u041e\u0431\u0435 \u044d\u0442\u0438 \u0444\u0438\u0447\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0432 Kubernetes 1.14, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 KEP \u043d\u043e\u0441\u0438\u0442 \u0440\u0435\u0442\u0440\u043e\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u2014 \u043e\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c stable-\u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u0438 \u0443\u0436\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p><a class=\"anchor\" name=\"3503\" id=\"3503\"><\/a><\/p>\n<h4>Host network support for Windows pods<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3503\"><u>#3503<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-windows\/3503-host-network-support-for-windows-pods\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0412 v1.26 \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <code>hostNetwork: true<\/code> \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 Windows-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0438\u0442\u0435\u0442 \u0441 Linux. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u2014 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c Windows-\u043f\u043e\u0434\u0430\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u0445\u043e\u0441\u0442\u0430. \u042d\u0442\u043e \u0440\u0435\u0448\u0438\u043b\u043e \u0431\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u043e\u0439 \u043f\u043e\u0440\u0442\u043e\u0432 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 NodePort\/hostPort \u0438 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b\u043e \u0431\u044b \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0440\u0442\u043e\u0432 \u0438\u043b\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0434\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 CNI.\u00a0<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 alpha-\u0441\u0442\u0430\u0442\u0443\u0441\u0435 containerd \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 Windows \u0441 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u043c hostNetwork \u043d\u0430\u0447\u0430\u043b \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e, \u043e \u0447\u0451\u043c \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 <a href=\"https:\/\/kubernetes.io\/blog\/2025\/03\/26\/kubernetes-v1-33-upcoming-changes\/#removal-of-host-network-support-for-windows-pods\"><u>Kubernetes v1.33 sneak peek<\/u><\/a> (\u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0430\u0439\u0442\u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c).<\/p>\n<p><a class=\"anchor\" name=\"deleted\" id=\"deleted\"><\/a><\/p>\n<h2>\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0435 \u0444\u0438\u0447\u0438<\/h2>\n<h4>API Endpoints \u043f\u0440\u0438\u0437\u043d\u0430\u043d \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c<\/h4>\n<p>API EndpointSlice \u043f\u0440\u0438\u0437\u043d\u0430\u043d \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c \u0432 v1.21. \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043d \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0433\u043e API Endpoints, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442 \u0442\u043e\u0433\u043e \u0440\u0435\u0448\u0438\u043b\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f (<a href=\"#4974\">KEP\u00a04974<\/a>).\u00a0<\/p>\n<h4>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0432\u0435\u0440\u0441\u0438\u0438 kube-proxy \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0443\u0437\u043b\u0430<\/h4>\n<p>\u041f\u043e\u043b\u0435 <code>.status.nodeInfo.kubeProxyVersion<\/code> \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/835626\/\"><u>Kubernetes\u00a01.31<\/u><\/a>. \u0412 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043e\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e (<a href=\"#4004\">KEP\u00a04004<\/a>).<\/p>\n<h4>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 in-tree \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0442\u043e\u043c\u0430 gitRepo<\/h4>\n<p>\u0422\u0438\u043f \u0442\u043e\u043c\u0430 gitRepo \u0431\u044b\u043b \u043f\u0440\u0438\u0437\u043d\u0430\u043d \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.11 \u043f\u043e\u0447\u0442\u0438 7\u00a0\u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434. \u0421 \u0442\u0435\u0445 \u043f\u043e\u0440 \u0432\u043e\u0437\u043d\u0438\u043a \u0440\u044f\u0434 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u043e\u043c\u044b gitRepo \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0441 root-\u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u043d\u0430 \u0443\u0437\u043b\u0430\u0445. \u0412 \u0432\u0435\u0440\u0441\u0438\u0438 1.33 \u043a\u043e\u0434 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 in-tree \u0443\u0434\u0430\u043b\u0451\u043d (<a href=\"#5040\">KEP\u00a05040<\/a>).<\/p>\n<h4>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 host network \u0434\u043b\u044f \u043f\u043e\u0434\u043e\u0432 Windows<\/h4>\n<p>Alpha-\u0432\u0435\u0440\u0441\u0438\u044f \u0444\u0438\u0447\u0438 \u0431\u044b\u043b\u0430 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u0430 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.26, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c containerd \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e\u0442 \u043d\u0435\u0451 \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0430 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438\u00a01.33 (<a href=\"#3503\">KEP\u00a03503<\/a>).<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG\/CHANGELOG-1.33.md\"><u>\u0441\u00a0changelog<\/u><\/a>.<\/p>\n<h2>P. S.<\/h2>\n<p>\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u0433\u0435:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/864988\/\"><u>Kubernetes 1.32: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u0434\u0430 \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043e\u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/835626\/\">Kubernetes 1.31: \u043d\u043e\u0432\u044b\u0439 VolumeSource, \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u044d\u043d\u0434\u043f\u043e\u0439\u043d\u0442\u0430\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\">Kubernetes 1.30: \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f DRA, \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 read-only-\u0442\u043e\u043c\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0438\u0447\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/779700\/\">Kubernetes 1.29: \u0431\u044d\u043a\u0435\u043d\u0434 \u043d\u0430 nftables, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0442\u043e\u043c\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0438\u0447\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/754398\/\">Kubernetes 1.28: \u043f\u0440\u043e\u0449\u0430\u043d\u0438\u0435 \u0441 Google, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u043d\u043e\u0432\u044b\u0439 KEP \u043e\u0442 \u00ab\u0424\u043b\u0430\u043d\u0442\u0430\u00bb<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/903148\/\"> https:\/\/habr.com\/ru\/articles\/903148\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Kubernetes \u2014 1.33. \u0421\u0440\u0435\u0434\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439\u00a0\u2014 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 API-\u0442\u0438\u043f\u043e\u0432, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 CredentialProvider, \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e\u0434\u043e\u0432 \u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0438 CrashLoopBackOff, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 private-\u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0438 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>.kuberc<\/code>.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 <a href=\"https:\/\/kubernetes.io\/blog\/\"><u>\u0431\u043b\u043e\u0433\u0430<\/u><\/a> Kubernetes, \u0442\u0430\u0431\u043b\u0438\u0446\u044b <a href=\"https:\/\/github.com\/orgs\/kubernetes\/projects\/200\/views\/1\"><u>Kubernetes enhancements tracking<\/u><\/a>, <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG\/CHANGELOG-1.33.md\"><u>CHANGELOG-1.33<\/u><\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 issues, pull requests \u0438 Kubernetes Enhancement Proposals (KEPs).<\/p>\n<p>\u041c\u044b \u0440\u0430\u0437\u0431\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b:<\/p>\n<ul>\n<li>\n<p><a href=\"#nodes\">\u0443\u0437\u043b\u044b<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#application\">\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#storage\">\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#network\">\u0441\u0435\u0442\u044c<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#API\">API<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#authentification\">\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#CLI\">CLI<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#scheduler\">\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#autoscaling\">\u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#windows\">Windows<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"#deleted\">\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0435 \u0444\u0438\u0447\u0438<\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u0438\u0445 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e. \u0412\u0441\u0435\u0433\u043e \u0432 \u043d\u043e\u0432\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 64\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0418\u0437 \u043d\u0438\u0445:<\/p>\n<ul>\n<li>\n<p>Alpha \u2014 26 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439;\u00a0<\/p>\n<\/li>\n<li>\n<p>Beta \u2014 20 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>Stable \u2014 18 \u043f\u0440\u0438\u0437\u043d\u0430\u043d\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><br \/><em>\u041c\u044b \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0447 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439. \u041e\u043d\u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0447\u0430\u0449\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0435.<\/em><\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"nodes\" id=\"nodes\"><\/a><\/p>\n<h2>\u0423\u0437\u043b\u044b<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>DRA: Prioritized Alternatives in Device Requests<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4816\"><u>#4816<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-scheduling\/4816-dra-prioritized-list\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>KEP <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/4381-dra-structured-parameters\"><u>4831<\/u><\/a> \u00ab\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u00bb (\u0441\u043c. <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/808055\/\"><u>\u041e\u0431\u0437\u043e\u0440 Kubernetes 1.30<\/u><\/a>) \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>ResourceClaim<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f API \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b, \u0435\u0441\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u043e\u0432 \u0438\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. KEP \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443: \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b GPU) \u0432 \u0432\u0438\u0434\u0435 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e.  <\/p>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u041e\u0431\u044a\u0435\u043a\u0442 <code>ResourceClaim<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043b\u0435 <code>DeviceClaim<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <code>DeviceRequest<\/code>. \u0422\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0443\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0431\u0449\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u044f\u0442 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 GPU, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0451\u043d \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0432\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e: \u0432\u0435\u0440\u0441\u0438\u044f v1beta1 API \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0430 \u0447\u0438\u0441\u0442\u0430\u044f, \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 v1beta2.<\/p>\n<p>\u0412 v1beta1 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>FirstAvailable<\/code>. \u041e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 <code>DeviceSubRequest<\/code> (\u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430). \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 (\u0442\u043e\u0442, \u0447\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <code>FirstAvailable<\/code>), K8s \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0437\u0430\u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442: \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u2014 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0435 \u043b\u043e\u043c\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044f\u043c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 API: \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>FirstAvailable<\/code> \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e <code>DeviceRequest<\/code> (\u043a\u0440\u043e\u043c\u0435 <code>Name<\/code>) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<p>\u041e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 v1beta2. \u0412 \u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code>DeviceRequest<\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430. \u041f\u043e\u043b\u0435 <code>Name<\/code> \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u043e \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u0431\u043e \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043b\u0438\u0431\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0435 <code>Exactly<\/code> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u0435\u043d \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0435\u0437 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432. \u0415\u0433\u043e \u0442\u0438\u043f \u2014 <code>SpecificDeviceRequest<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f \u0438\u0437 <code>v1beta1.DeviceRequest<\/code>, \u043a\u0440\u043e\u043c\u0435 <code>Name<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435 <code>FirstAvailable<\/code> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f <code>DeviceSubRequest<\/code>. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a <code>FirstAvailable<\/code> \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438 \u0432\u044b\u0431\u0435\u0440\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (DRA) \u043f\u043e\u043a\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0446\u0435\u043d\u043a\u0443 (\u0441\u043a\u043e\u0440\u0438\u043d\u0433) \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c\u044b\u043c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445. \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 DRA \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043a\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c (\u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u0432 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4970\"><u>#4970<\/u><\/a>).<\/p>\n<h4>Ensure secret pulled images<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2535\"><u>#2535<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/2535-ensure-secret-pulled-images\"><u>KEP<\/u><\/a><\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 <code>IfNotPresent<\/code> \u0438 <code>Never<\/code> kubelet \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0442\u043e\u0433\u043e, \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 \u0443\u0437\u043b\u0435. \u0415\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u0431\u044b\u043b \u0441\u043a\u0430\u0447\u0430\u043d \u0440\u0430\u043d\u0435\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u0434\u043e\u043c), \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434 \u043c\u043e\u0433 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c kubelet \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442, \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 (<code>ImagePullSecrets<\/code>) \u0431\u044b\u043b \u0441\u043a\u0430\u0447\u0430\u043d \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u0440\u0430\u0437. \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 kubelet&#8217;\u0430. \u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434 \u0441 <code>IfNotPresent<\/code> \u0438\u043b\u0438 <code>Never<\/code> \u0438 <code>ImagePullSecrets<\/code> \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0437, kubelet \u0441\u043c\u043e\u0442\u0440\u0438\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u043e\u043d \u043d\u0430 \u0443\u0437\u043b\u0435. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u043b\u0438 \u044d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0437 \u0440\u0430\u043d\u0435\u0435 \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 <code>ImagePullSecrets<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u043e\u0434\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u0435\u0441\u0442\u044c \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u043c\u0438, kubelet \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u043e\u0434 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u043b\u044f <code>IfNotPresent<\/code>. \u0415\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0437 \u0435\u0441\u0442\u044c, \u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u044d\u0442\u0438\u043c\u0438 \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u043c\u0438 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0430, kubelet \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u044b. \u0412 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 <code>Never<\/code>, kubelet \u043e\u0442\u043a\u0430\u0436\u0435\u0442 \u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c\/\u0441\u043a\u0430\u0447\u0430\u0442\u044c, \u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u044d\u0442\u043e \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f <code>imagePullPolicy: Always<\/code> \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u2014 \u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0441\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043b\u044e\u0431\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u0430\u043c \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u0430\u043c \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u0430\u043c \u0431\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435).<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>KubeletEnsureSecretPulledImages<\/code> (\u0432 alpha-\u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d).<\/p>\n<h4>DRA: AdminAccess for ResourceClaims and ResourceClaimTemplates<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/5018\"><u>#5018<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-auth\/5018-dra-adminaccess\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u043e\u0434\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0438\u043b\u0438 \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a. \u0423 \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 DRA \u043d\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u043d\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443.<\/p>\n<p>KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u043c\u0435\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 <code>ResourceClaim<\/code> \u0438\u043b\u0438 <code>ResourceClaimTemplate<\/code> \u0444\u043b\u0430\u0433\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u042d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0437 \u0443\u0449\u0435\u0440\u0431\u0430 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u0414\u043e\u0441\u0442\u0443\u043f \u0438\u043c\u0435\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0435\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b <code>ResourceClaim<\/code> \u0438\u043b\u0438 <code>ResourceClaimTemplate<\/code> \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0438\u043c\u0451\u043d, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u043b\u0430\u0433\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u044c \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439.<\/p>\n<h4>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0431\u043e\u0442\u044b<\/h4>\n<p>\u0412 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e <code>(spec.devices.requests[])<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 <code>ResourceClaim<\/code> \u0438 <code>ResourceClaimTemplate<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u043b\u0435\u0432\u043e \u043f\u043e\u043b\u0435 <code>adminAccess<\/code>. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 <code>true<\/code>, \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439. \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c <code>ResourceClaim<\/code>\/<code>ResourceClaimTemplate<\/code> \u0441 <code>adminAccess: true<\/code> \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0438\u043c\u0451\u043d \u0441\u043e \u0441\u043f\u0435\u0446\u043b\u0435\u0439\u0431\u043b\u043e\u043c <code>kubernetes.io\/dra-admin-access: \"true\"<\/code>. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0447\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438.<\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 <code>ResourceClaim<\/code>\/<code>ResourceClaimTemplate<\/code> \u0441 <code>adminAccess: true<\/code> API-\u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043c\u0435\u0442\u043a\u0430. \u0415\u0441\u043b\u0438 \u0435\u0451 \u043d\u0435\u0442, \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0441\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a Kubernetes \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 <code>ResourceClaim<\/code> \u0441 <code>adminAccess: true<\/code> \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u0442\u043e\u0433\u043e \u0436\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u043f\u043e\u0434\u0443 \u00ab\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f\u00bb \u043a \u0443\u0436\u0435 \u0437\u0430\u043d\u044f\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443.<\/p>\n<p>\u0412\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u044b\u0442\u0430 \u0437\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (feature gate) <code>DRAAdminAccess<\/code>.<\/p>\n<h4>Support PSI based on cgroupv2<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4205\"><u>#4205<\/u><\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/4205-psi-metric\/README.md\"><u>KEP<\/u><\/a>  <\/p>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c <a href=\"https:\/\/docs.kernel.org\/accounting\/psi.html\"><u>PSI<\/u><\/a> (Pressure Stall Information) \u0432 \u044f\u0434\u0440\u0435 Linux \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0436\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c (CPU, \u043f\u0430\u043c\u044f\u0442\u044c, \u0432\u0432\u043e\u0434\/\u0432\u044b\u0432\u043e\u0434), \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u0431\u0449\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0435 100\u00a0%. \u0412\u044b\u0441\u043e\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f PSI \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442, \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u043e\u0440\u043c\u043e\u0437\u044f\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0447\u0442\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. PSI \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (usage %).<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0443\u0437\u0435\u043b Kubernetes \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442\u044c \u0438\u0437-\u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 CPU, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u0434\u0438\u0441\u043a\u0430, \u043d\u043e \u0441\u0430\u043c Kubernetes \u0443\u0437\u043d\u0430\u0451\u0442 \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430 \u0443\u0437\u043b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, OOM Killer \u0443\u0431\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b). \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.\u00a0<\/p>\n<p>KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 PSI (\u00ab\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00bb), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0434\u043e\u043b\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u0436\u0434\u0443\u0442 \u0441\u0432\u043e\u0435\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c. \u0415\u0441\u043b\u0438 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0435, kubelet \u043f\u043e\u043c\u0435\u0442\u0438\u0442 \u0443\u0437\u0435\u043b \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0443\u0432\u0438\u0434\u0438\u0442 \u044d\u0442\u043e \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0434\u044b \u043d\u0430 \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b, \u043f\u043e\u043a\u0430 \u0442\u043e\u0442 \u043d\u0435 \u00ab\u043f\u0440\u0438\u0434\u0451\u0442 \u0432 \u0441\u0435\u0431\u044f\u00bb.<\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c (alpha-1) kubelet \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 PSI \u0438 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043e \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0443\u0437\u043b\u0435. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u0432 Summary API (<code>\/stats\/summary<\/code>), \u0438 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u043b\u0438 <code>kubectl top node<\/code> (\u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f).<\/p>\n<p>\u041d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u044d\u0442\u0430\u043f\u0435 (alpha-2) \u0431\u0443\u0434\u0443\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 NodeCondition (\u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0443\u0437\u043b\u0430) \u2014 <code>NodeSystemCPUContentionPressure<\/code>, <code>NodeSystemMemoryContentionPressure<\/code> \u0438 <code>NodeSystemDiskContentionPressure<\/code>, \u0430 kubelet \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 <em>avg60<\/em> (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u00ab\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u00bb \u0437\u0430 60 \u0441\u0435\u043a\u0443\u043d\u0434) \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 (threshold) <em>(\u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043a\u0430\u043a \u043f\u0435\u0440\u0438\u043e\u0434\u044b, \u0442\u0430\u043a \u0438 \u043f\u043e\u0440\u043e\u0433 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b. \u2014 \u041f\u0440\u0438\u043c. \u0430\u0432\u0442.)<\/em> \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c <em>avg10<\/em> (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434) \u0442\u043e\u0436\u0435<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-457398","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/457398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=457398"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/457398\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=457398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=457398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=457398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}