{"id":352069,"date":"2024-05-20T22:01:28","date_gmt":"2024-05-20T22:01:28","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=352069"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=352069","title":{"rendered":"<span>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<\/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\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Kubernetes \u2014 1.28. \u0421\u0440\u0435\u0434\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u2014 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 (<em>jobs<\/em>). \u041a\u043b\u0438\u0435\u043d\u0442\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0435\u043a\u0442 Kubernetes \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0436\u0435\u0432\u0430\u043d\u0438\u0435 \u0441 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 Google \u2014 <a href=\"#1731\">KEP\u00a01731<\/a> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0440\u044f\u0434 \u0448\u0430\u0433\u043e\u0432, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/52b\/322\/c0f\/52b322c0f3650e0f67aa467f22ebf4e2.png\" width=\"1878\" height=\"1080\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/52b\/322\/c0f\/52b322c0f3650e0f67aa467f22ebf4e2.png\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <a href=\"https:\/\/github.com\/orgs\/kubernetes\/projects\/140\">Kubernetes enhancements tracking<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG\/CHANGELOG-1.28.md\">CHANGELOG-1.28<\/a>, \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442\u044b \u0432\u0441\u0442\u0440\u0435\u0447 <em>SIG<\/em>\u2019\u043e\u0432, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0442 \u043d\u0430\u0448\u0438\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u0430\u043c\u0438 Kubernetes, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/kubeernetes.io\/blog\/kubernetes-1-28\/\">\u043e\u0431\u0437\u043e\u0440<\/a>, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 V\u00edctor Jim\u00e9nez Cerrada. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 <em>Issues<\/em>, <em>Pull Requests<\/em> \u0438 <em>Kubernetes Enhancement Proposals<\/em> (KEPs).<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0437\u043e\u0440\u043e\u043c \u043a\u0430\u043a \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u043e\u043c, \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"#nodes\">\u0423\u0437\u043b\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#apps\">\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#storage\">\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#net\">\u0421\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=\"#auth\">\u0410\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=\"#other\">\u0420\u0430\u0437\u043d\u043e\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#deleted\">\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0435\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:<\/p>\n<ul>\n<li>\n<p><em>alpha<\/em> (19 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439);<\/p>\n<\/li>\n<li>\n<p><em>beta<\/em> (14 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \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><em>stable<\/em> (11 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \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<p>\u0412\u0441\u0435\u0433\u043e \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 44 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\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 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u2014 \u043e\u043d\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \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.<\/p>\n<\/blockquote>\n<p>\u041d\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0437\u043e\u0440 \u043c\u044b \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0441 KEP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0448\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438 \u0438\u0437 Google \u0438 Microsoft.<\/p>\n<h3>\u041d\u043e\u0432\u044b\u0439 KEP \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0424\u043b\u0430\u043d\u0442\u00bb: Structured Authentication Config<\/h3>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/3332\">KEP 3331<\/a> (<em>Structured Authentication Config<\/em>) \u2014 \u0441\u0430\u043c\u043e\u0435 \u043a\u0440\u0443\u043f\u043d\u043e\u0435 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0448\u0435\u0441\u0442\u044c \u043b\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Kubernetes, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u044c\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0440\u044f\u0434\u043e\u043c \u0432\u0435\u0441\u043e\u043c\u044b\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043b\u044e\u0431\u044b\u0435 JWT-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 <em>Common Expression Language<\/em>). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e KEP \u2014 \u0432 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/news\/747712\/\">\u00ab\u041a\u0440\u0443\u043f\u043d\u0435\u0439\u0448\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 K8s \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b: \u043d\u043e\u0432\u044b\u0439 KEP \u043e\u0442 \u00ab\u0424\u043b\u0430\u043d\u0442\u0430\u00bb, Google \u0438 Microsoft\u00bb<\/a>.<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u041a\u043e\u0434 \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e KEP\u2019\u0430 \u0432\u043e\u0448\u0435\u043b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 Kubernetes 1.28, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438.<\/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>Support User Namespaces in pods<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/127\">#127<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/127-user-namespaces\/README.md\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d. \u0421\u043c\u044b\u0441\u043b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 <em>\u043f\u043e\u0434\u0430\u0445<\/em> \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0441 <em>user<\/em>&#8212; \u0438 <em>group<\/em>-\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \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 <em>\u043f\u043e\u0434\u0435<\/em> \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. \u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0447\u0438\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u0434\u0430 \u0445\u043e\u0441\u0442\u0443. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0440\u044f\u0434 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (\u0438\u0445 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/127-user-namespaces\/README.md#motivation\">\u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f\u00bb<\/a>).<\/p>\n<p>\u0412 <code>pod.Spec<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u043b\u0435\u0432\u043e \u043f\u043e\u043b\u0435 <code>hostUsers<\/code>. \u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>true<\/code> \u0438\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d \u0445\u043e\u0441\u0442\u0430 (\u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u044c\u0448\u0435). \u0415\u0441\u043b\u0438 \u0436\u0435 <code>false<\/code>, \u0442\u043e \u0434\u043b\u044f <em>\u043f\u043e\u0434\u0430<\/em> \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 <em>userns<\/em>. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u043b\u0435 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e.<\/p>\n<h4>Sidecar Containers<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/753\">#753<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/753-sidecar-containers\/README.md\">KEP<\/a><\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u043e\u0432\u043e\u0435  \u043f\u043e\u043b\u0435 <code>restartPolicy<\/code> \u0434\u043b\u044f <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c. \u0410\u0433\u0435\u043d\u0442 <em>kubelet<\/em> \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c <em>init<\/em>-\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 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b. \u041d\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\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 <em>startup<\/em>-\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 <code>postStart<\/code>).<\/p>\n<p>\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 <em>RestartPolicy<\/em> \u0432\u043b\u0438\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0445 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 <em>\u043f\u043e\u0434\u0435<\/em>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044f <code>restartPolicy<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>Always<\/code>. \u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u2014 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0434\u043b\u044f <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u043b\u0435 <code>restartPolicy<\/code> \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 <em>\u043f\u043e\u0434\u0430<\/em> \u0438 \u0442\u0438\u043f\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043f\u043e\u0434\u0447\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0435 <em>RestartPolicy<\/em> (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043f\u043e\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <em>Always<\/em>), \u0442\u043e \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u0441\u044f \u0432\u0441\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u0441\u044f \u0441\u0430\u043c\u0438.<\/p>\n<p>\u041d\u0435 \u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (<em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e <code>restartPolicy = Always<\/code>). \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 <em>sidecar<\/em>&#8212; \u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435, \u043e\u0434\u043d\u0430\u043a\u043e <em>kubelet<\/em> \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0434 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u2014 \u0442\u043e\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043b\u044e\u0431\u043e\u0433\u043e <code>startupProbe<\/code>.<\/p>\n<h4>Pod conditions around readiness to start containers after completion of pod sandbox creation<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3085\">#3085<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3085-pod-conditions-for-starting-completition-of-sandbox-creation\">KEP<\/a><\/p>\n<p>\u0413\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0432 <em>\u043f\u043e\u0434\u0435<\/em>, \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b <em>\u043f\u043e\u0434\u0430<\/em>, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0444\u0430\u0437\u043e\u0439 \u0435\u0433\u043e \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430. \u0414\u043b\u044f \u0435\u0451 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 <em>kubelet<\/em> \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432: <em>in-tree<\/em>-\u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0442\u043e\u043c\u043e\u0432 (<em>ConfigMap<\/em>, <em>Secret<\/em>, <em>EmptyDir<\/em> \u0438 \u0434\u0440.), \u043f\u043b\u0430\u0433\u0438\u043d\u044b CSI \u0438 \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (\u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442 \u0440\u0430\u043d\u0442\u0430\u0439\u043c-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u044b CNI). \u0423\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u044d\u0442\u0430\u043f\u043e\u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 <em>sandbox<\/em> <em>\u043f\u043e\u0434\u0430<\/em> \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 <code>PodReadyToStartContainers<\/code> \u043a \u0441\u0442\u0430\u0442\u0443\u0441\u0443 <em>\u043f\u043e\u0434\u0430<\/em> \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. <code>PodReadyToStartContainers<\/code> \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u0430\u0436\u043d\u043e\u0439 \u0432\u0435\u0445\u043e\u0439 \u0432 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 <em>\u043f\u043e\u0434\u0430<\/em> \u043f\u043e\u0434\u043e\u0431\u043d\u043e <code>ContainersReady<\/code> \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c <em>Ready<\/em>-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c <em>\u043f\u043e\u0434\u0430<\/em>.<\/p>\n<h4>Add support for a drop-in kubelet configuration directory<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3983\">#3983<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4031\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <em>drop-in<\/em>-\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 <em>kubelet<\/em>. \u0415\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 <code>--config-dir<\/code> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>\/etc\/kubernetes\/kubelet.conf.d<\/code>). \u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435, \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e-\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0444\u043b\u0430\u0433 \u0431\u0443\u0434\u0435\u0442 \u043f\u0443\u0441\u0442\u044b\u043c, \u0438 \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <em>drop-in<\/em> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u0432 <code>kubelet.conf<\/code>.<\/p>\n<h4>Add CDI devices to device plugin API<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4009\">#4009<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4011\">KEP<\/a><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 KEP \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 API \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043f\u043e\u043b\u0435 \u0441 ID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Container Device Interface (CDI) \u0432 <code>AllocateResponse<\/code>. \u041e\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 CDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 CDI \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b CRI, \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/3731\">#3731<\/a>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432 CRI. \u0425\u043e\u0442\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u043c\u043e\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3063\">KEP\u00a03063<\/a>, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u043b\u0435\u0439 \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 API \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0438 \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u044d\u0442\u0438\u043c\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438.<\/p>\n<h4>Discover cgroup driver from CRI<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4033\">#4033<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4034\">KEP<\/a><\/p>\n<p>KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0440\u0435\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <em>cgroup<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f <em>kubelet<\/em>. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <em>cgroup<\/em> \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <em>kubelet<\/em>, \u0447\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 <em>cgroup<\/em> \u0434\u043b\u044f <em>kubelet<\/em> \u0438 <em>CRI<\/em> \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h4>Dynamic resource allocation<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3063\">#3063<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3063-dynamic-resource-allocation\">KEP<\/a><\/p>\n<p>\u042d\u0442\u043e\u0442 KEP \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0435\u0449\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438\u00a01.27, \u043d\u043e \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 <em>alpha<\/em>. \u041e\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 API, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 <em>\u043f\u043e\u0434\u0443<\/em>. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0420\u0435\u0441\u0443\u0440\u0441\u044b, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0435 \u043f\u043e \u0441\u0435\u0442\u0438. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 API \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u0443\u0437\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438\u043b\u0438 <em>\u043f\u043e\u0434\u0430\u043c\u0438<\/em>. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 API \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u043e\u0431\u043c\u0435\u043d \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c <em>\u043f\u043e\u0434\u0435<\/em>, \u043d\u043e \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 <em>\u043f\u043e\u0434\u0430\u043c\u0438<\/em> \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u044b\u0439 API, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0442\u043e\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u044d\u0442\u043e\u043c KEP.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0441\u0443\u0440\u0441\u044b, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 <em>\u043f\u043e\u0434\u0430\u0445<\/em> \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u0440\u043e\u0433\u043e (\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0438 \u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u044e\u0442 \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u043c\u0438 \u0438 \u0441\u0447\u0435\u0442\u043d\u044b\u043c\u0438. \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 API <em>\u043f\u043e\u0434\u0430<\/em> \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0430 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043d\u0438\u043c \u0438\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 CSI \u0438\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u00ab\u043a\u043e\u0441\u0442\u044b\u043b\u0438\u00bb.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/728040\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.27<\/a>.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Kubelet limit of Parallel Image Pulls<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3673\">#3673<\/a>, <a href=\"https:\/\/hackmd.io\/@zetEkgqtRbOBy8fi6e0dQg\/H1cdueuPo\/\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e <em>kubelet<\/em>\u2019\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>maxParallelImagePulling<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u041b\u044e\u0431\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442, \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u00ab\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435\u00bb. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0437 <a href=\"https:\/\/hackmd.io\/HGLmPG4WRWeEqwN55jy09A#Proposal\">\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e<\/a>.<\/p>\n<h4>Node memory swap support<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2400\">#2400<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/2400-node-swap\">KEP<\/a><\/p>\n<p>KEP \u0438\u0437 \u0434\u0430\u043b\u0435\u043a\u043e\u0439 1.22-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 <em>beta<\/em>-\u0441\u0442\u0430\u0442\u0443\u0441. \u041e\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 Kubernetes \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0432\u043e\u043f\u0438\u043d\u0433\u0430 \u043f\u0430\u043c\u044f\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0437\u043b\u043e\u0432 \u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432: \u0441\u0432\u043e\u043f\u0438\u043d\u0433 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0445\u043e\u0441\u0442\u0430, \u0443\u0437\u043b\u043e\u0432 \u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a, \u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f <em>kubelet\u2019\u043e\u043c<\/em>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/571184\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.22<\/a>.<\/p>\n<h4>Improved multi-numa alignment in Topology Manager<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3545\">#3545<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/3545-improved-multi-numa-alignment\/README.md\">KEP<\/a><\/p>\n<p>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <em>kubelet<\/em>\u2019\u0430 <em>TopologyManager<\/em> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 <em>NUMA<\/em>-\u0443\u0437\u043b\u0430\u0445 (Non-Uniform Memory Architecture). \u041e\u0434\u043d\u0430\u043a\u043e <em>TopologyManager<\/em> \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 <em>NUMA<\/em>-\u0443\u0437\u043b\u0430\u043c\u0438 \u2014 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \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, \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u043a \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c.<\/p>\n<p>\u041d\u043e\u0432\u0430\u044f \u0444\u0438\u0447\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043e\u043f\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 <em>TopologyManager\u2019\u0443<\/em> \u0432\u043e \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 NUMA-\u0443\u0437\u043b\u043e\u0432 \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0432\u0432\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u0444\u043b\u0430\u0433 <code>topology-manager-policy-options<\/code>, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u00ab\u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u00bb <em>TopologyManager<\/em> \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438 \u0443\u0447\u0435\u0442\u0430 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 NUMA-\u0443\u0437\u043b\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3545-improved-multi-numa-alignment#calculating-average-distance\">\u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<p>\u041e \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u0445, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 NUMA, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u043d\u0430\u0448\u0438\u0445 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 Kubernetes\u00a01.25 (<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/684142\/\">CPU Manager policy: socket alignment<\/a>) \u0438 1.23 (<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/593735\/\">CPUManager policy option to distribute CPUs across NUMA nodes<\/a>).<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Support 3rd party device monitoring plugins<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/606\">#606<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/606-compute-device-assignment\">KEP<\/a> (\u0441\u043c. \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3743\">#3743<\/a>)<\/p>\n<p>KEP 606 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0432\u044b\u043d\u043e\u0441\u044f \u0438\u0437 <em>kubelet<\/em> (<em>out-of-tree<\/em>) \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0437\u043d\u0430\u043d\u0438\u044f (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 <em>PodResources<\/em>). \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e Kubernetes.<\/p>\n<p>\u0421 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/docs.google.com\/document\/d\/1NYnqw-HDQ6Y3L_mk85Q3wkxDtGNWTxpsedsgw4NgWpg\/edit\">\u00abKubelet Metadata API\u00bb<\/a>.<\/p>\n<p>\u0426\u0435\u043b\u044c <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3743\">KEP\u00a03743<\/a> \u2014 \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c API PodResources \u0434\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 GA, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0437\u0440\u0435\u043b\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 production.<\/p>\n<h4>Extend podresources API to report allocatable resources<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2403\">#2403<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/2403-pod-resources-allocatable-resources\/README.md\">KEP<\/a><\/p>\n<p>KEP \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 <em>PodResources<\/em>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u043c \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0443\u0437\u043b\u0430.<\/p>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 <code>GetAllocatableResources<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 <code>AllocatableResourcesResponse<\/code>. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 \u043d\u0430 \u0443\u0437\u043b\u0435, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p><a class=\"anchor\" name=\"apps\" id=\"apps\"><\/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>Backoff Limit Per Index For Indexed Jobs<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3850\">#3850<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-apps\/3850-backoff-limits-per-index-for-indexed-jobs\">KEP<\/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 <em>\u043a\u0430\u0436\u0434\u043e\u0433\u043e<\/em> \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<blockquote>\n<p><strong>\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0438\u0439 \u043b\u0438\u043c\u0438\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a (<em>backoff limit<\/em>). \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f, \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <em>failed<\/em>, \u0430 \u0437\u0430\u043d\u044f\u0442\u044b\u0435 \u0435\u0439 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u2014 \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0449\u0435 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443).<\/p>\n<p>\u0422\u0430\u043a\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430 (\u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b).<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0431\u044b \u0442\u0430\u043a\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432, \u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043b\u0441\u044f \u0431\u044b \u043f\u043e\u0441\u043b\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u044f.<\/p>\n<\/blockquote>\n<h4>Allow for recreation of pods once fully terminated in the job controller<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3939\">#3939<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-apps\/3939-allow-replacement-when-fully-terminated\">KEP<\/a><\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (jobs) \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043d\u043e\u0432\u044b\u0435 <em>\u043f\u043e\u0434\u044b<\/em> \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 \u0441\u0442\u0430\u0440\u044b\u043c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 <em>Terminating<\/em> (\u0438\u043c\u0435\u044e\u0442 \u043c\u0435\u0442\u043a\u0443 <code>deletionTimestamp<\/code>) \u0438\u043b\u0438 <em>Failed<\/em> (<em>\u043f\u043e\u0434<\/em> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0437\u0435 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 <em>Failed<\/em>). \u0412 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 <em>\u043f\u043e\u0434\u044b<\/em>, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <em>Terminating<\/em>, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a <em>Failed<\/em>. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438: \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b, \u043d\u043e \u0438 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 API Job, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u0445\u043e\u0442\u044f\u0442 \u043b\u0438 \u043e\u043d\u0438, \u0447\u0442\u043e\u0431\u044b <em>\u043f\u043e\u0434\u044b<\/em> \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0441\u0442\u0430\u0440\u044b\u0435 <em>\u043f\u043e\u0434\u044b<\/em> \u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 <em>Terminating<\/em> (\u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435), \u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u044b (\u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435).<\/p>\n<blockquote>\n<p><strong>\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Tensorflow \u0438 JAX, \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 <em>\u043f\u043e\u0434\u043e\u0432<\/em> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u041a\u043e\u0433\u0434\u0430 <em>\u043f\u043e\u0434<\/em> \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <em>Terminating<\/em> \u0438\u0437-\u0437\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u0438 (<em>preemption<\/em>), \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u044f (<em>eviction<\/em>) \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u0449\u0430\u044e\u0449\u0438\u0439 <em>\u043f\u043e\u0434<\/em>, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u0439.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a \u0437\u0430\u043c\u0435\u0449\u0430\u044e\u0449\u0435\u0433\u043e <em>\u043f\u043e\u0434\u0430<\/em> \u0434\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0438\u043b\u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u043c.<\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0435\u0441\u043b\u0438 \u0437\u0430\u043c\u0435\u0449\u0430\u044e\u0449\u0438\u0439 <em>\u043f\u043e\u0434<\/em> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 <em>\u043f\u043e\u0434\u043e\u0432<\/em> \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u043c\u0443 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c\u0443. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043b\u0443\u0447\u0448\u0443\u044e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u044c, \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u0430 <em>Terminating<\/em>&#8212;<em>\u043f\u043e\u0434\u043e\u0432<\/em>.<\/p>\n<p>\u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a <em>Kueue<\/em>, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 <em>\u043f\u043e\u0434\u043e\u0432<\/em> \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <em>Terminating<\/em>, \u043d\u043e \u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043a\u0432\u043e\u0442.<\/p>\n<\/blockquote>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Add Pod Index Label for StatefulSets and Indexed Jobs<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4017\">#4017<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4019\">KEP<\/a><\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u041d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0432 beta, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0438\u0441\u043a \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0435\u043d \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u043e\u0432\u044b\u0439 \u043b\u0435\u0439\u0431\u043b.<\/p>\n<\/blockquote>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u0435\u0439\u0431\u043b \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 <em>StatefulSet<\/em>\u2019\u043e\u0432.<\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f <em>\u043f\u043e\u0434<\/em>, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u0430\u043a <em>StatefulSet<\/em>, \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438\u043c\u0435\u043d\u0438, \u0447\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u0413\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0432\u0438\u0434\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/downward-api\/\">Downward API<\/a> (\u044d\u0442\u043e \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447).<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438 \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0438 \u0434\u043b\u044f <em>StatefulSet<\/em>\u2019\u043e\u0432 \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0438\u043c\u0435\u0442\u044c \u043b\u0435\u0439\u0431\u043b \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0443.<\/p>\n<h4>Retriable and non-retriable Pod failures for Jobs<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3329\">#3329<\/a>, <a href=\"https:\/\/git.k8s.io\/enhancements\/keps\/sig-apps\/3329-retriable-and-non-retriable-failures\">KEP<\/a><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (Job), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430:<\/p>\n<ul>\n<li>\n<p><code>activeDeadlineSeconds<\/code> \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438;<\/p>\n<\/li>\n<li>\n<p><code>backoffLimit<\/code> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430 \u043e\u0442\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0435 (\u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435) \u0432\u0440\u0435\u043c\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u0430 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0432 <code>OnFailure<\/code>, \u0442\u043e Kubernetes \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0435 \u2014 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 <code>backoffLimit<\/code>.<\/p>\n<p>\u041d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u043d\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u0435\u0435 \u0434\u043e\u0441\u0440\u043e\u0447\u043d\u043e, \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044f <code>backoffLimit<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 Job\u00a0API \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>podFailurePolicy<\/code>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u2014 \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/684142\/\">\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes 1.25<\/a>.<\/p>\n<h4>Add job creation timestamp to job annotations<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4026\">#4026<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4027\">KEP<\/a><\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u041d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0432 beta, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0438\u0441\u043a \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0435\u043d \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u043e\u0432\u0430\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f.<\/p>\n<\/blockquote>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u0443\u044e \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e <code>batch.kubernetes.io\/cronjob-scheduled-timestamp<\/code>. \u041e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 (\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0439) \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0301\u0439 \u043c\u0435\u0442\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e <em>CronJob<\/em>.<\/p>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc3339\">RFC3339<\/a>. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0432 <em>CronJob<\/em> \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0447\u0430\u0441\u043e\u0432\u044b\u043c \u043f\u043e\u044f\u0441\u043e\u043c, \u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u0301\u044f \u043c\u0435\u0442\u043a\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0447\u0430\u0441\u043e\u0432\u043e\u043c \u043f\u043e\u044f\u0441\u0435 \u2014 \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f UTC.<\/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>PersistentVolume last phase transition time<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3762\">#3762<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/3762-persistent-volume-last-phase-transition-time\/README.md\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>PersistentVolumeStatus<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u0301\u044e \u043c\u0435\u0442\u043a\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0437\u044b <code>PersistentVolume<\/code>.<\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043f\u043e\u0442\u0435\u0440\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 <em>Delete<\/em> \u0438 \u0432\u0435\u0440\u043d\u0443\u043b\u0438\u0441\u044c \u043a \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0435 <em>Retain<\/em>. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 <em>Retain<\/em> \u0432\u0441\u0435 \u0442\u043e\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f, \u043d\u043e \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <em>Released<\/em>. \u0421\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0442\u043e\u043c\u0430 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u0412\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0442\u043e\u043c\u0430, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f (\u0442.\u202f\u0435. \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043a\u043e\u0433\u0434\u0430 \u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <em>Released<\/em>).<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a \u0437\u0430\u0434\u0430\u0447\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u0301\u044e \u043c\u0435\u0442\u043a\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0442\u043e\u043c\u0430 \u0432 <em>\u043b\u044e\u0431\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435<\/em>, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 <em>Released<\/em>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043b\u044e\u0431\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435\u0441\u0442\u0430\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 <em>Pending<\/em> \u0438 <em>Bound<\/em>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0442\u0430\u043a\u0430\u044f \u043c\u0435\u0442\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043c\u0435\u0442\u0440\u0438\u043a \u0438 SLO.<\/p>\n<h4>Support recovery from volume expansion failure<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1790\">#1790<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-storage\/1790-recover-resize-failure\/README.md\">KEP<\/a><\/p>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c <code>PersistentVolumeClaim<\/code> (PVC), \u0437\u0430\u0434\u0430\u0432 \u0442\u0430\u043a\u043e\u0439 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0430\u0435\u0442 \u0432 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u0445 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0442\u043e\u043c. KEP \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0442\u043e\u043c, \u043d\u043e \u0443\u0436\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e API \u0432\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 PVC, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435 <code>pvc.Status.AllocatedResources<\/code> \u0434\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u0432\u043e\u0442\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u0440\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 PVC.<\/p>\n<blockquote>\n<p><strong>\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c PVC \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0440\u0430\u0437\u043c\u0435\u0440 PVC \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b 10\u00a0\u0413\u0431, \u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0435\u0433\u043e \u0434\u043e 500\u00a0\u0413\u0431, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435. KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440, \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0432 \u0435\u0433\u043e, \u0441\u043a\u0430\u0436\u0435\u043c, \u0434\u043e 100\u00a0\u0413\u0431.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0442\u043e-\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0434\u043b\u044f \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043a\u0432\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0440 PVC. \u0412\u043e\u043e\u0431\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u043a\u0430\u043a CSI, \u0442\u0430\u043a \u0438 <em>in-tree<\/em>-\u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0442\u043e\u043c\u043e\u0432 \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0442\u043e\u043c\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0430 \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u043c\u0430\u043d\u0443\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u0432\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0432 \u0435\u0435 \u043f\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0435\u0441\u0442\u0430 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u043d \u0437\u0430\u043d\u044f\u043b \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043a\u0432\u043e\u0442\u044b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <code>max(pvc.Spec.Capacity, pvc.Status.AllocatedResources)<\/code>, \u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 <code>pvc.Status.AllocatedResources<\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0431\u043e\u0435\u043c.<\/p>\n<\/blockquote>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Retroactive default StorageClass assignment<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3333\">#3333<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/3337\">KEP<\/a><\/p>\n<p>KEP <a href=\"https:\/\/docs.google.com\/document\/d\/1k1r_h-CW-Oqsh3PX-Qb5jpjyt1taKLGbUhHvSpvVOYo\/edit#heading=h.we81txvv0lzi\">\u0440\u0435\u0448\u0430\u0435\u0442 \u0440\u044f\u0434 \u043f\u0440\u043e\u0431\u043b\u0435\u043c<\/a>, \u0438\u0437\u043c\u0435\u043d\u044f\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 PV-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u044e\u0431\u043e\u0439 <code>StorageClass<\/code> \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0435\u0433\u043e \u0432\u0441\u0435\u043c \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c PVC \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <code>pvc.spec.storageClassName=nil<\/code>. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 SC \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432\u043c\u0435\u0441\u0442\u043e <code>nil<\/code> \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0438\u043c\u044f \u044d\u0442\u043e\u0433\u043e SC. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/684142\/\">\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.25<\/a>.<\/p>\n<h4>Non-graceful node shutdown<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2268\">#2268<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-storage\/2268-non-graceful-shutdown\">KEP<\/a><\/p>\n<p>KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <em>\u043f\u043e\u0434\u043e\u0432<\/em> \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 <em>Node Shutdown Manager<\/em> \u0438 <em>\u043f\u043e\u0434\u044b<\/em>, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 <em>StatefulSet<\/em>\u2019\u043e\u043c \u043f\u043e\u0434\u0432\u0438\u0441\u0430\u044e\u0442 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 <em>Terminating<\/em>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c <em>StatefulSet<\/em> \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0442\u044c <em>\u043f\u043e\u0434\u044b<\/em> \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0443\u0437\u043b\u0435. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0443\u0441\u0443\u0433\u0443\u0431\u043b\u044f\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 <em>\u043f\u043e\u0434\u044b<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u043e\u043c\u0430: <em>VolumeAttachments<\/em> \u0442\u0430\u043a \u0438 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u043a \u043f\u043e\u0434\u0432\u0438\u0441\u0448\u0438\u043c <em>\u043f\u043e\u0434\u0430\u043c<\/em>. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 <em>taint<\/em>\u2019\u0430 <code>out-of-service=nodeshutdown:NoExecute<\/code>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c <em>\u043f\u043e\u0434\u044b<\/em> \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043a \u043d\u0438\u043c \u0442\u043e\u043c\u0430 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b, \u0430 \u043d\u043e\u0432\u044b\u0435 \u2014 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0443\u0437\u043b\u0435. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u0441\u0442\u0440\u043e\u0439 \u0441\u0442\u0430\u0440\u044b\u0439 \u0443\u0437\u0435\u043b, \u043d\u0443\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0443\u0434\u0430\u043b\u0438\u0442\u044c <em>taint<\/em> \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a <em>\u043f\u043e\u0434\u044b<\/em> \u0437\u0430\u043f\u0443\u0441\u0442\u044f\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u043e\u043c \u0443\u0437\u043b\u0435. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/661763\/\">\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes 1.24<\/a>.<\/p>\n<p><a class=\"anchor\" name=\"net\" id=\"net\"><\/a><\/p>\n<h2>\u0421\u0435\u0442\u044c<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Field status.hostIPs added for Pod<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2681\">#2681<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/2681-pod-host-ip#design-details\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>status.hostIPs<\/code> \u0438 \u0432\u043d\u043e\u0441\u0438\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 Downward API (\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0435\u0431\u0435 \u0438\u043b\u0438 \u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 Kubernetes \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 API).<\/p>\n<p>\u041f\u043e\u043b\u0435 <code>status.hostIP<\/code> <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/inject-data-application\/downward-api-volume-expose-pod-information\/#capabilities-of-the-downward-api\">\u0432 Downward API<\/a> \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 IP-\u0430\u0434\u0440\u0435\u0441 <em>\u043f\u043e\u0434\u0430<\/em>. \u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <code>status.hostIPs<\/code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u0443. \u041f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 API <em>\u043f\u043e\u0434\u0430<\/em> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u044f\u0434 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u043b\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u0435 \u0437\u0430\u0434\u0430\u043d\u043e, \u0442\u043e 0-\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044e <code>hostIP<\/code>. \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0443\u0441\u0442, \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u0438\u043d IP-\u0430\u0434\u0440\u0435\u0441 \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b \u0432\u044b\u0434\u0435\u043b\u0435\u043d.<\/p>\n<p>\u0410\u0433\u0435\u043d\u0442 <em>kubelet<\/em> \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <code>status.hostIPs<\/code> \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438.<\/p>\n<h4>Kube-proxy improved ingress connectivity reliability<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3836\">#3836<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/3836-kube-proxy-improved-ingress-connectivity-reliability#summary\">KEP<\/a><\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 Kubernetes (KCCM) \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 (<em>health check<\/em>, HC) \u043f\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c. \u042d\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0437\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 \u2014 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432 \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0414\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432 (GCP) KCCM \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 HC \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440 Kubernetes. \u0414\u0430\u043d\u043d\u044b\u0439 KEP \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <em>kube-proxy<\/em>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u0441\u044f \u0432 \u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Kubernetes.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f HC:<\/p>\n<ul>\n<li>\n<p><code>externalTrafficPolicy: Cluster<\/code> \/ <code>eTP:Cluster<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e)<\/p>\n<\/li>\n<li>\n<p><code>externalTrafficPolicy: Local<\/code> \/ <code>eTP:Local<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430 <code>eTP:Cluster<\/code> <em>kube-proxy<\/em> \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430 <code>healthz<\/code>. \u0414\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430 <code>eTP:Local<\/code> <em>kube-proxy<\/em> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0435\u0441\u0442\u044c \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <code>Ready<\/code>, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u0443\u0437\u043b\u0435. \u0414\u0430\u043d\u043d\u044b\u0439 KEP \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ol>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 (<em>connection draining<\/em>) \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 <em>Terminating<\/em>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e <em>kube-proxy<\/em> \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043f\u043e\u043b\u0435 <code>.spec.unschedulable <\/code>\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 <code>Node<\/code>, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0437\u043b\u0430, \u0430 \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043d\u0430\u0447\u043d\u0435\u0442 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 <code>\/healthz<\/code> (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0443\u0437\u0435\u043b).<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0442\u044c <code>\/livez<\/code> \u0432 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 <em>kube-proxy<\/em> (<code>proxier_health.go<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 KEP \u043d\u0435 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e, \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 <code>eTP:Cluster<\/code> \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0432\u0441\u0435 \u0436\u0435 \u0445\u043e\u0442\u044f\u0442 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u0443\u0433 \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 Kubernetes. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/\">\u043d\u0430 \u043e\u0431\u0437\u043e\u0440\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443<\/a> \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u0441 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\u0438.<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p><strong>\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0443\u0437\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 <em>nexthop<\/em> \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 <code>eTP:Cluster<\/code>, \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442\u044c \u0432\u0441\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u043c, \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0447\u0435\u0440\u0435\u0437 \u0443\u0437\u0435\u043b \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043f\u0440\u0438\u0433\u043b\u0443\u0448\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0443\u0442\u0438 <code>\/livez<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043a\u0430\u043a \u0432\u0435\u043d\u0434\u043e\u0440\u0430\u043c, \u0442\u0430\u043a \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c <em>kube-proxy<\/em> \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c <code>livenessProbe<\/code>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0438 \u043e\u0434\u0438\u043d \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0437\u043b\u0430. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <em>kube-proxy<\/em> (\u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0435\u0433\u043e\u0434\u043d\u044f).<\/p>\n<p>\u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0443 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 <code>eTP:Cluster<\/code>. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0441\u0432\u0435\u0442\u0438\u0442\u044c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043e\u0434\u043d\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u00ab\u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438\u00bb \u0434\u0440\u0443\u0433\u0438\u0445. \u0412 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435 \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043c\u043e\u0447\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/3836-kube-proxy-improved-ingress-connectivity-reliability\">\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c KEP<\/a>.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Remove transient node predicates from KCCM&#8217;s service controller<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3458\">#3458<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-network\/3458-remove-transient-node-predicates-from-service-controller\/README.md\">KEP<\/a><\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 Kubernetes Cloud Controller Manager (KCCM) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\/\u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0443\u0437\u043b\u044b \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0437\u043b\u043e\u0432 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043d\u0430 \u0443\u0437\u0435\u043b \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f\/\u0441 \u0443\u0437\u043b\u0430 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f <em>taint<\/em> <code>ToBeDeletedByClusterAutoscaler<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0443\u0437\u0435\u043b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>Ready<\/code> \u0438\u043b\u0438 <code>NotReady<\/code>.<\/p>\n<\/li>\n<\/ol>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c \u0441 <code>externalTrafficPolicy: Cluster<\/code>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0437\u043b\u043e\u0432 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u0443\u0437\u043b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u044b.<\/p>\n<p>\u041f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432 \u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0445 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u043e\u0448\u0438\u0431\u043a\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u043c \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 KEP \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0437\u043b\u043e\u0432 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\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 (<em>feature gate<\/em>) <code>StableLoadBalancerNodeSet<\/code>.<\/p>\n<h4>Reserve nodeport ranges for dynamic and static allocation<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3668\">#3668<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/3668-reserved-service-nodeport-range\">KEP<\/a><\/p>\n<p>KEP \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0438\u0434\u0435\u044e <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/3070-reserved-service-ip-range\">KEP 3070<\/a> (\u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/661763\/\">\u043e\u0431\u0437\u043e\u0440 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 Kubernetes\u00a01.24<\/a>), \u043f\u043e\u043c\u043e\u0433\u0430\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u043f\u0440\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0442\u0438\u043f\u0430 <em>NodePort<\/em>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/728040\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 Kubernetes\u00a01.27<\/a>.<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Proxy Terminating Endpoints<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1669\">#1669<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/1669-proxy-terminating-endpoints\">KEP<\/a><\/p>\n<p>KEP \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 <em>kube-proxy<\/em> \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u043e\u0432, \u0443\u043b\u0443\u0447\u0448\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u044f \u043e\u0431\u0449\u0443\u044e \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c Kubernetes.<\/p>\n<h4>Expanded DNS configuration<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2595\">#2595<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/2595-expanded-dns-config\">KEP<\/a><\/p>\n<p>KEP \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 DNS. \u041f\u043e\u0441\u043b\u0435 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 <em>feature gate<\/em> <code>MaxDNSSearchPathsExpanded<\/code> \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 DNS:<\/p>\n<ul>\n<li>\n<p><code>MaxDNSSearchPaths<\/code> \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 6 \u0434\u043e 32;<\/p>\n<\/li>\n<li>\n<p><code>MaxDNSSearchListChars<\/code> \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 256 \u0434\u043e 2048.<\/p>\n<\/li>\n<\/ul>\n<h4>Cleaning up IPTables Chain Ownership<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3178\">#3178<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-network\/3178-iptables-cleanup\/\">KEP<\/a><\/p>\n<p>KEP \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u043c\u0438 <em>iptables<\/em>, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u043c\u0438 <em>kubelet\u2019\u043e\u043c<\/em>. \u041e\u043f\u0446\u0438\u044f <code>IPTablesOwnershipCleanup<\/code> \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 <em>kubelet\u2019\u0443<\/em> \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0438 <code>KUBE-MARK-DROP<\/code>, <code>KUBE-MARK-MASQ<\/code>, <code>KUBE-POSTROUTING<\/code> \u0438 <code>KUBE-KUBELET-CANARY<\/code> (\u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c <code>KUBE-FIREWALL<\/code> \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%B0%D1%80%D1%81%D0%B8%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D1%8B\">\u043c\u0430\u0440\u0441\u0438\u0430\u043d\u0441\u043a\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/a>). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u043f\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b <em>kubelet<\/em>\u2019\u0430 <code>--iptables-masquerade-bit<\/code> \u0438 <code>--iptables-drop-bit<\/code> \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0438 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442.<\/p>\n<h4>Minimizing iptables-restore input size<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3453\">#3453<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-network\/3453-minimize-iptables-restore\/README.md\">KEP<\/a><\/p>\n<p>KEP \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b <em>kube-proxy<\/em> \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>iptables<\/em>, \u0443\u0431\u0438\u0440\u0430\u044f \u0438\u0437 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043a <code>iptables-restore<\/code> \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. <a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/703372\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 Kubernetes\u00a01.26<\/a>).<\/p>\n<h4>Move EndpointSlice Reconciler into Staging<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3685\">#3685<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-network\/3685-endpointslice-reconciler-to-staging\">KEP<\/a><\/p>\n<p>KEP \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u0435\u043b\u044c <em>EndpointSlice<\/em> \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 <em>staging<\/em>, \u0447\u0442\u043e\u0431\u044b <em>out-of-tree<\/em>-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b <em>EndpointSlice<\/em> \u043c\u043e\u0433\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043b\u043e\u0433\u0438\u043a\u0443.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 <code>staging\/src\/k8s.io\/endpointslice<\/code> \u0438 \u0437\u0430\u0442\u0435\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a \u043c\u043e\u0434\u0443\u043b\u044c Go, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 <code>pkg\/controller\/endpointslice<\/code>, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e, \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0443\u0442\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u0435\u043b\u044f <em>EndpointSlice<\/em> \u0432 <em>staging<\/em> \u0434\u0430\u0435\u0442 \u0440\u044f\u0434 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432:<\/p>\n<ol>\n<li>\n<p>\u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b <em>EndpointSlice<\/em> \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u043f\u0440\u043e\u0448\u0435\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u0434\u043e\u0441\u0442\u0438\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0440\u0435\u043b\u043e\u0441\u0442\u0438. \u0418\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u0434 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u044b\u043b \u043b\u0438\u0431\u043e \u0444\u043e\u0440\u043a\u043d\u0443\u0442, \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d, \u0447\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0423\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0441 <em>Endpoints<\/em> \u043d\u0430 <em>EndpointSlices<\/em>. \u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 <em>Endpoints<\/em> \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0441 <em>EndpointSlices<\/em> \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 <em>Endpoints<\/em> \u043f\u0443\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u044f\u0441\u0435\u043d. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <em>EndpointSlices<\/em>, \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0440\u0438\u0441\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u043e\u043f\u043b\u043e\u0442\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0446\u0435\u043b\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <em>EndpointSlices<\/em>, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <em>EndpointSlices<\/em> (\u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438 \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f <code>endpointslice.kubernetes.io\/managed-by<\/code>).<\/p>\n<\/li>\n<\/ol>\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>Allow informers for getting a stream of data instead of chunking<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3157\">#3157<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/3157-watch-list\/README.md\">KEP<\/a><\/p>\n<p><em>Kube-apiserver<\/em> \u0441\u043a\u043b\u043e\u043d\u0435\u043d \u043a \u0432\u0437\u0440\u044b\u0432\u043d\u043e\u043c\u0443 \u0440\u043e\u0441\u0442\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438. \u042d\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445, \u0433\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u043c \u0441\u0431\u043e\u044f\u043c \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u041d\u0435\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u0438 \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 HA, \u043d\u043e \u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043d\u0430 \u0442\u043e\u0439 \u0436\u0435 \u043c\u0430\u0448\u0438\u043d\u0435. KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<p>\u0418\u0434\u0435\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0438\u0437 <em>watch<\/em>-\u043a\u044d\u0448\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0434\u043a\u0430\u0447\u043a\u0438 \u0438\u0437 <em>etcd<\/em> (\u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0443 WATCH-\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0434\u043b\u044f LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432). \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438 LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0435\u0440\u0430\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0433\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 LIST-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u0432 \u0441\u043c.\u00a0<a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/3157-watch-list\/README.md#appendix\">\u0432\u00a0\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043a KEP<\/a>).<\/p>\n<h4>Consistent Reads from Cache<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2340\">#2340<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-api-machinery\/2340-Consistent-reads-from-cache\/README.md\">KEP<\/a><\/p>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441\u044b <code>Get<\/code> \u0438 <code>List<\/code> \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u00ab\u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0447\u0442\u0435\u043d\u0438\u044f\u00bb (<em>consistent reads<\/em>), \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>resourceVersion<\/code>. \u0422\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0438\u0437 <em>etcd<\/em> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u00ab\u043a\u0432\u043e\u0440\u0443\u043c\u043d\u043e\u0433\u043e \u0447\u0442\u0435\u043d\u0438\u044f\u00bb. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c <em>watch<\/em>-\u043a\u044d\u0448 \u0447\u0430\u0441\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0435\u0433\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435.<\/p>\n<p>\u041c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u0434\u043d\u0430\u0436\u0434\u044b <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/733268\/\">\u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438<\/a> \u043a API-\u0441\u0435\u0440\u0432\u0435\u0440\u0443 Kubernetes \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a \u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u0438 \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.<\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <em>watch<\/em>-\u043a\u044d\u0448\u0430, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0442\u0435 \u0436\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u0438 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 etcd.<\/p>\n<p>\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e feature gate <code>WatchCacheConsistentReads<\/code>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>WatchProgressRequest<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 3.4\u00a0etcd.<\/p>\n<h4>CRD Validation Ratcheting<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4008\">#4008<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/b498311462f8c3d88324f61752c9f7f33410cb8f\/keps\/sig-api-machinery\/4008-crd-ratcheting\/README.md\">KEP<\/a><\/p>\n<p>\u0412 \u043d\u044b\u043d\u0435\u0448\u043d\u0435\u043c \u0432\u0438\u0434\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c, \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u0432 CRD, \u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Kubernetes.<\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 <em>feature flag<\/em> <code>CRDValidationRatcheting<\/code>. \u0415\u0441\u043b\u0438 \u0444\u043b\u0430\u0433 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f <em>custom resources<\/em>, \u043d\u0435 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e, \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0431\u044b\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f CRD-\u0441\u0445\u0435\u043c\u0430:<\/p>\n<pre><code class=\"yaml\">properties:     myField:         type: string     myOtherField:         type: string<\/code><\/pre>\n<p>\u041c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0435\u0441\u0443\u0440\u0441:<\/p>\n<pre><code class=\"yaml\">apiVersion: stable.example.com\/v1 kind: MyCRD myField: \"\"<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e CRD-\u0441\u0445\u0435\u043c\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c \u2014 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0443\u0436\u0435\u0441\u0442\u043e\u0447\u0438\u043b\u0438\u0441\u044c:<\/p>\n<pre><code class=\"yaml\">properties:     myField:         type: string         minLength: 2     myOtherField:         type: string<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0435\u2026<\/p>\n<pre><code>apiVersion: stable.example.com\/v1 kind: MyCRD myField: \"\" myOtherField: newly added field<\/code><\/pre>\n<p>\u2026\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<pre><code>* myField: Invalid value: \"\": myField in body should be at least 2 chars long<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u043d\u0435\u0441\u0442\u0438 \u043f\u0430\u0442\u0447 \u0441 \u043d\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e \u043f\u043e\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u044d\u0442\u043e\u0442 \u043f\u0430\u0442\u0447 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0430\u0442\u0447 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0435 \u0432\u044b\u0448\u0435:<\/p>\n<pre><code class=\"bash\">myOtherField: newly added field<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u0430\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c KEP, \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u043d\u0435\u0441\u0442\u0438 \u0442\u0430\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435 <code>myField<\/code> \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0435\u0436\u043d\u0438\u043c. \u0415\u0441\u043b\u0438 \u0436\u0435 <code>myField<\/code> \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e, \u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043d\u043e\u0432\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c.<\/p>\n<h4>Unknown Version Interoperability Proxy<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4020\">#4020<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-api-machinery\/4020-unknown-version-interoperability-proxy\">KEP<\/a><\/p>\n<p>\u041f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 API \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0430\u043f\u0433\u0440\u0435\u0439\u0434\u0435, \u0434\u0430\u0443\u043d\u0433\u0440\u0435\u0439\u0434\u0435 \u0438\u043b\u0438 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 <em>runtime<\/em>-\u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0438 \u043f\u0435\u0440\u0435\u0432\u044b\u043a\u0430\u0442\u0435) \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 API \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0438\u043b\u044c\u0442\u0440 \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441.<\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043d\u0430 <em>StorageVersion<\/em> \u0434\u043b\u044f \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b, \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 API. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 API \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-api-machinery\/4020-unknown-version-interoperability-proxy#storageversion-enhancement-needed\">\u0432\u00a0\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u00a0KEP<\/a>).<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>CRD Validation Expression Language<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2876\">#2876<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/2877\">KEP<\/a><\/p>\n<p>KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432 CRD (Custom Resource Definition). \u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u043e\u043c\u0438\u043c\u043e \u0432\u0435\u0431\u0445\u0443\u043a\u043e\u0432, \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a CEL. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/593735\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.23<\/a>.<\/p>\n<h4>CEL for Admission Control<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3488\">#3488<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-api-machinery\/3488-cel-admission-control\">KEP<\/a><\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 <em>admission<\/em>-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0431\u0445\u0443\u043a\u0438; \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2876\">#2876<\/a>.<\/p>\n<p>\u0412 \u0433\u0440\u0443\u043f\u043f\u0443 <code>admissionregistration.k8s.io<\/code> \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 <code>ValidatingAdmissionPolicy<\/code>. \u041e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 CEL-\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442, \u043a\u0430\u043a \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/703372\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.26<\/a>.<\/p>\n<h4>CEL-based admission webhook match conditions<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3716\">#3716<\/a>,  <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-api-machinery\/3716-admission-webhook-match-conditions\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u00ab\u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f\u00bb (<em>match conditions<\/em>) \u043a <em>admission<\/em>-\u0432\u0435\u0431\u0445\u0443\u043a\u0430\u043c \u043a\u0430\u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0435\u0431\u0445\u0443\u043a\u0430. \u041f\u043e\u043b\u0435 <code>matchCondition<\/code> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 CEL-\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u043e, <em>admission<\/em>-\u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0432\u0435\u0431\u0445\u0443\u043a. \u0415\u0441\u043b\u0438 \u043b\u043e\u0436\u043d\u043e \u2014 \u0432\u0435\u0431\u0445\u0443\u043a \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442 (\u043d\u0435\u044f\u0432\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e). \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/728040\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.27<\/a>.<\/p>\n<p><a class=\"anchor\" name=\"auth\" id=\"auth\"><\/a><\/p>\n<h2>\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/h2>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Reduction of Secret-based Service Account Tokens<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2799\">#2799<\/a>; <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/2800\">KEP<\/a><\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0438\u043a\u043b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u043c\u0438 \u0443\u0447\u0435\u0442\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u0435\u043a\u0440\u0435\u0442\u044b \u0434\u043b\u044f \u043d\u0438\u0445 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u043d \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442 \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 API <em>TokenRequest<\/em> \u0438\u043b\u0438 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u043c\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<h4>KMS v2 Improvements<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3299\">#3299<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-auth\/3299-kms-v2-improvements\">KEP<\/a><\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u044d\u0442\u0430\u043f\u043d\u043e\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 <em>KeyManagementService<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 <em>etcd<\/em> \u043f\u043e \u0441\u0445\u0435\u043c\u0435 <em>envelope encryption<\/em>. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0440\u043e\u0442\u0430\u0446\u0438\u044e \u043a\u043b\u044e\u0447\u0435\u0439 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 API;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 KMS-\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u044c <em>envelope<\/em>-\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 <em>kube-apiserver<\/em>, KMS-\u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438 \u0438 KMS.<\/p>\n<\/li>\n<\/ul>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Auth API to get self user attributes<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3325\">#3325<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-auth\/3325-self-subject-attributes-review-api\/README.md\">KEP<\/a><\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d KEP \u043e\u0442 \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0424\u043b\u0430\u043d\u0442\u00bb \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 <em>stable<\/em>-\u0444\u0430\u0437\u0443. \u041e\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 <code>authentication.k8s.io<\/code> \u043d\u043e\u0432\u044b\u0439 <em>\u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442<\/em> API \u2014 <em>SelfSubjectReview<\/em>. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>kubectl auth who-am-i<\/code>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/703372\/\">\u0432 \u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.26<\/a>.<\/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>kubectl delete: Add interactive(-i) flag<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3895\">#3895<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-cli\/3895-kubectl-delete-interactivity\/README.md\">KEP<\/a><\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>kubectl delete<\/code>, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0431\u0435\u0437\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<p>\u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0444\u043b\u0430\u0433\u0430 <code>--interactive<\/code>\/<code>-i<\/code> \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>kubectl delete<\/code> \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u0434\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0440\u0430\u0442\u0438\u043c\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0422\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0432 <code>y<\/code>\u00a0(yes) \u043e\u043d \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u2014 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u0432\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 c \u043d\u0443\u043b\u0435\u0432\u044b\u043c <em>exit\u00a0code<\/em>.<\/p>\n<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432:<\/p>\n<pre><code class=\"bash\">$ kubectl delete --interactive -f test_deployment.yaml  You are about to delete the following 2 resource(s): Deployment\/dockerd Deployment\/dockerd2 Do you want to continue? (y\/n): n deletion is cancelled  $ kubectl delete -i -f test_deployment.yaml You are about to delete the following 2 resource(s): Deployment\/dockerd Deployment\/dockerd2 Do you want to continue? (y\/n): y deployment.apps \"dockerd\" deleted deployment.apps \"dockerd2\" deleted<\/code><\/pre>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>kubectl events<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1440\">#1440<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-cli\/1440-kubectl-events\">KEP<\/a><\/p>\n<p>KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0443\u044e \u043f\u043e\u0434\u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>events<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>kubectl get events<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 , \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a: \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0442\u0438\u043f\u0443, \u0441\u043c\u0435\u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 N\u00a0\u043c\u0438\u043d\u0443\u0442, \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u00a0\u0442.\u202f\u0434.<\/p>\n<p><a class=\"anchor\" name=\"other\" id=\"other\"><\/a><\/p>\n<h2>\u0420\u0430\u0437\u043d\u043e\u0435<\/h2>\n<h3>Alpha-\u0444\u0438\u0447\u0438<\/h3>\n<p><a class=\"anchor\" name=\"1731\" id=\"1731\"><\/a><\/p>\n<h4>Publishing Kubernetes packages on community infrastructure<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/1731\">#1731<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-release\/1731-publishing-packages\/README.md\">KEP<\/a><\/p>\n<p>\u041f\u044f\u0442\u044c \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 Google <a href=\"https:\/\/www.cncf.io\/announcements\/2018\/08\/29\/cncf-receives-9-million-cloud-credit-grant-from-google\/\">\u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043b\u0430<\/a> \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0440\u0430\u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 Kubernetes \u0444\u043e\u043d\u0434\u0443 CNCF. \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u043e\u0439\u0442\u0438 \u043a \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430.  \u041f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 (1.27) \u043e\u0442\u043c\u0435\u0442\u0438\u043b\u0441\u044f <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/728040\/#:~:text=Freeze%20k8s.gcr.io%20image%20registry\">\u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u0430<\/a> \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0435\u0441\u0442\u0440 <a href=\"https:\/\/github.com\/kubernetes\/registry.k8s.io\">Kubernetes registry.k8s.io<\/a>. \u041d\u043e\u0432\u044b\u0439 KEP\u00a01731 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0438\u0434\u0435\u044e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 K8s \u043d\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0443\u044e \u043e\u0442 Google \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0440\u044f\u0434 \u0448\u0430\u0433\u043e\u0432, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0441\u0442\u0430\u0432\u044f\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 CNCF;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 <em>Packages as a Service<\/em> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Open Build Service, \u0438 \u0442.\u202f\u043f.) \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u0440\u0443\u0447\u043d\u0443\u044e;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c <a href=\"https:\/\/github.com\/kubernetes\/release\/blob\/master\/docs\/krel\/README.md#usage\"><em>krel-\u0441\u0442\u0430\u0434\u0438\u0438 \u0438 \u0440\u0435\u043b\u0438\u0437\u0430<\/em><\/a>;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0440\u0435\u043b\u0438\u0437\u0430 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044e \u0440\u0435\u043b\u0438\u0437\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0435\u0436\u0435\u043d\u043e\u0447\u043d\u043e (\u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e).<\/p>\n<\/li>\n<\/ul>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Extend metrics stability<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3498\">#3498<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-instrumentation\/3498-extending-stability\">KEP<\/a><\/p>\n<p><a href=\"https:\/\/kubernetes.io\/blog\/2021\/04\/23\/kubernetes-release-1.21-metrics-stability-ga\/\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u0440\u0438\u043a<\/a> \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b \u0432\u0432\u0435\u0434\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u043e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 <em>downstream<\/em>. \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c <em>alpha<\/em> \u0438\u043b\u0438 <em>stable<\/em>. \u0413\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e <em>stable<\/em>-\u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<p>KEP \u0432\u0432\u043e\u0434\u0438\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2014 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0430\u043f\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u0440\u0438\u043a \u0441 \u044d\u0442\u0430\u043f\u0430\u043c\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 Kubernetes. \u0422\u0430\u043a\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u0442\u0430\u043b\u0430 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0439 \u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043d\u043e\u0432\u044b\u0445 \u0444\u0438\u0447 \u043a <em>production<\/em> (<a href=\"https:\/\/github.com\/kubernetes\/community\/blob\/cf715a4404c4cefcfb52278bc128b7a765373fc7\/sig-architecture\/production-readiness.md#production-readiness-review-process\">production readiness review process<\/a>) \u0438 <a href=\"https:\/\/github.com\/kubernetes\/community\/blob\/cf715a4404c4cefcfb52278bc128b7a765373fc7\/sig-architecture\/production-readiness.md#common-feedback-from-reviewers\">\u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u043e\u0442 \u0440\u0435\u0446\u0435\u043d\u0437\u0435\u043d\u0442\u043e\u0432<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0430\u043b\u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0432\u0438\u0434\u0443 \u0438\u043b\u0438 \u0438\u0445 \u043f\u0443\u0442\u0430\u044e\u0442 \u0441 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/703372\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.26<\/a>.<\/p>\n<p><a class=\"anchor\" name=\"#deleted\" id=\"#deleted\"><\/a><\/p>\n<h2>\u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0438\u0447\u0435\u0439<\/h2>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u0441\u043f\u0438\u0441\u043e\u043a \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, \u0444\u043b\u0430\u0433\u043e\u0432 \u0438 \u0442.\u202f\u043f., \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043d\u044b \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c\u0438 \u0432 Kubernetes\u00a01.28:<\/p>\n<h3>\u0418\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u0438 API:<\/h3>\n<ul>\n<li>\n<p>KubeSchedulerConfiguration: <code>v1beta2<\/code> \u279c <code>v1<\/code>.<\/p>\n<\/li>\n<li>\n<p>SelfSubjectReview: <code>v1beta1<\/code> \u279c <code>v1<\/code>.<\/p>\n<\/li>\n<li>\n<p>ValidatingAdmissionPolicy: <code>v1alpha1<\/code> \u279c <code>v1beta1<\/code>.<\/p>\n<\/li>\n<li>\n<p>ValidatingAdmissionPolicyBinding: <code>v1alpha1<\/code> \u279c <code>v1beta1<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b \u2014 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443:<\/h3>\n<ul>\n<li>\n<p><em>in-tree<\/em>-\u043f\u043b\u0430\u0433\u0438\u043d \u0442\u043e\u043c\u043e\u0432 CephFS: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <a href=\"https:\/\/github.com\/ceph\/ceph-csi\/\">\u0434\u0440\u0430\u0439\u0432\u0435\u0440 CephFS CSI<\/a>.<\/p>\n<\/li>\n<li>\n<p><em>in-tree<\/em>-\u043f\u043b\u0430\u0433\u0438\u043d \u0442\u043e\u043c\u043e\u0432 RBD: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <a href=\"https:\/\/github.com\/ceph\/ceph-csi\/\">\u0434\u0440\u0430\u0439\u0432\u0435\u0440 RBD CSI<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/kubernetes\/code-generator\">k8s.io\/code-generator<\/a>: <code>generate_groups.sh<\/code> \u0438 <code>generate_internal_groups.sh<\/code> \u279c <code>kube_codegen.sh<\/code>.<\/p>\n<\/li>\n<li>\n<p><em>kube-controller-manager<\/em>: \u0444\u043b\u0430\u0433\u0438 <code>--volume-host-cidr-denylist<\/code> \u0438 <code>--volume-host-allow-local-loopback<\/code>.<\/p>\n<\/li>\n<li>\n<p><em>kubelet<\/em>: <code>--azure-container-registry-config<\/code> \u279c <code>--image-credential-provider-config<\/code> \u0438 <code>--image-credential-provider-bin-dir<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u043c\u0435\u0442\u0440\u0438\u043a\u0438: <\/p>\n<ul>\n<li>\n<p><code>apiserver_flowcontrol_request_concurrency_in_use<\/code> \u279c <code>apiserver_flowcontrol_current_executing_seats<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>apiserver_storage_db_total_size_in_bytes<\/code> \u279c <code>apiserver_storage_size_bytes metric<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b:<\/h3>\n<ul>\n<li>\n<p><em>NetworkPolicyStatus<\/em>;<\/p>\n<\/li>\n<li>\n<p><code>kubectl version<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>kubectl version --short<\/code>, \u0444\u043b\u0430\u0433 <code>--short<\/code> \u0443\u0434\u0430\u043b\u0435\u043d;<\/p>\n<\/li>\n<li>\n<p><code>KUBECTL_EXPLAIN_OPENAPIV3<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0414\u0440\u0443\u0433\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/h3>\n<ul>\n<li>\n<p>\u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438\u00a00.6.3;<\/p>\n<\/li>\n<li>\n<p>metric-resolution \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 15\u202f\u0441;<\/p>\n<\/li>\n<li>\n<p>\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 Klog \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 JSON \u0434\u043b\u044f structs, maps \u0438 slices;<\/p>\n<\/li>\n<li>\n<p><em>etcd<\/em> \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438\u00a03.5.9-0;<\/p>\n<\/li>\n<li>\n<p><em>cri-tools<\/em> \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438\u00a01.27.0;<\/p>\n<\/li>\n<li>\n<p><em>distroless-iptables<\/em> \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438\u00a00.2.6.<\/p>\n<\/li>\n<\/ul>\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.28.md#urgent-upgrade-notes\">\u0441 CHANGELOG\u2019\u043e\u043c<\/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\/728040\/\">Kubernetes 1.27: \u043e\u0431\u0437\u043e\u0440 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/703372\/\">Kubernetes 1.26: \u043e\u0431\u0437\u043e\u0440 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0435\u0440\u0432\u044b\u0439 KEP \u00ab\u0424\u043b\u0430\u043d\u0442\u0430\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/684142\/\">Kubernetes 1.25: \u043e\u0431\u0437\u043e\u0440 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/news\/747712\/\">\u041a\u0440\u0443\u043f\u043d\u0435\u0439\u0448\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 K8s \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b: \u043d\u043e\u0432\u044b\u0439 KEP \u043e\u0442 \u00ab\u0424\u043b\u0430\u043d\u0442\u0430\u00bb, Google \u0438 Microsoft<\/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\/754398\/\"> https:\/\/habr.com\/ru\/articles\/754398\/<\/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\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Kubernetes \u2014 1.28. \u0421\u0440\u0435\u0434\u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u2014 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 (<em>jobs<\/em>). \u041a\u043b\u0438\u0435\u043d\u0442\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0435\u043a\u0442 Kubernetes \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0436\u0435\u0432\u0430\u043d\u0438\u0435 \u0441 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 Google \u2014 <a href=\"#1731\">KEP\u00a01731<\/a> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0440\u044f\u0434 \u0448\u0430\u0433\u043e\u0432, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u0438\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/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 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <a href=\"https:\/\/github.com\/orgs\/kubernetes\/projects\/140\">Kubernetes enhancements tracking<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG\/CHANGELOG-1.28.md\">CHANGELOG-1.28<\/a>, \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442\u044b \u0432\u0441\u0442\u0440\u0435\u0447 <em>SIG<\/em>\u2019\u043e\u0432, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0442 \u043d\u0430\u0448\u0438\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u0430\u043c\u0438 Kubernetes, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/kubeernetes.io\/blog\/kubernetes-1-28\/\">\u043e\u0431\u0437\u043e\u0440<\/a>, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 V\u00edctor Jim\u00e9nez Cerrada. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 <em>Issues<\/em>, <em>Pull Requests<\/em> \u0438 <em>Kubernetes Enhancement Proposals<\/em> (KEPs).<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0437\u043e\u0440\u043e\u043c \u043a\u0430\u043a \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u043e\u043c, \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"#nodes\">\u0423\u0437\u043b\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#apps\">\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#storage\">\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#net\">\u0421\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=\"#auth\">\u0410\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=\"#other\">\u0420\u0430\u0437\u043d\u043e\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#deleted\">\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0435\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:<\/p>\n<ul>\n<li>\n<p><em>alpha<\/em> (19 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439);<\/p>\n<\/li>\n<li>\n<p><em>beta<\/em> (14 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \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><em>stable<\/em> (11 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \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<p>\u0412\u0441\u0435\u0433\u043e \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 44 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\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 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u2014 \u043e\u043d\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \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.<\/p>\n<\/blockquote>\n<p>\u041d\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0437\u043e\u0440 \u043c\u044b \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0441 KEP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0448\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438 \u0438\u0437 Google \u0438 Microsoft.<\/p>\n<h3>\u041d\u043e\u0432\u044b\u0439 KEP \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0424\u043b\u0430\u043d\u0442\u00bb: Structured Authentication Config<\/h3>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/3332\">KEP 3331<\/a> (<em>Structured Authentication Config<\/em>) \u2014 \u0441\u0430\u043c\u043e\u0435 \u043a\u0440\u0443\u043f\u043d\u043e\u0435 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0448\u0435\u0441\u0442\u044c \u043b\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Kubernetes, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u044c\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. KEP \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0440\u044f\u0434\u043e\u043c \u0432\u0435\u0441\u043e\u043c\u044b\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043b\u044e\u0431\u044b\u0435 JWT-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 <em>Common Expression Language<\/em>). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e KEP \u2014 \u0432 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/flant\/news\/747712\/\">\u00ab\u041a\u0440\u0443\u043f\u043d\u0435\u0439\u0448\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 K8s \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b: \u043d\u043e\u0432\u044b\u0439 KEP \u043e\u0442 \u00ab\u0424\u043b\u0430\u043d\u0442\u0430\u00bb, Google \u0438 Microsoft\u00bb<\/a>.<\/p>\n<blockquote>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u041a\u043e\u0434 \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e KEP\u2019\u0430 \u0432\u043e\u0448\u0435\u043b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 Kubernetes 1.28, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438.<\/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>Support User Namespaces in pods<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/127\">#127<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/127-user-namespaces\/README.md\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d. \u0421\u043c\u044b\u0441\u043b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 <em>\u043f\u043e\u0434\u0430\u0445<\/em> \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0441 <em>user<\/em>&#8212; \u0438 <em>group<\/em>-\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \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 <em>\u043f\u043e\u0434\u0435<\/em> \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. \u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0447\u0438\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u0434\u0430 \u0445\u043e\u0441\u0442\u0443. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0440\u044f\u0434 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (\u0438\u0445 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/127-user-namespaces\/README.md#motivation\">\u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f\u00bb<\/a>).<\/p>\n<p>\u0412 <code>pod.Spec<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u043b\u0435\u0432\u043e \u043f\u043e\u043b\u0435 <code>hostUsers<\/code>. \u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>true<\/code> \u0438\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d \u0445\u043e\u0441\u0442\u0430 (\u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u044c\u0448\u0435). \u0415\u0441\u043b\u0438 \u0436\u0435 <code>false<\/code>, \u0442\u043e \u0434\u043b\u044f <em>\u043f\u043e\u0434\u0430<\/em> \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 <em>userns<\/em>. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u043b\u0435 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e.<\/p>\n<h4>Sidecar Containers<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/753\">#753<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/753-sidecar-containers\/README.md\">KEP<\/a><\/p>\n<p>KEP \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u043e\u0432\u043e\u0435  \u043f\u043e\u043b\u0435 <code>restartPolicy<\/code> \u0434\u043b\u044f <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c. \u0410\u0433\u0435\u043d\u0442 <em>kubelet<\/em> \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c <em>init<\/em>-\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 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b. \u041d\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\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 <em>startup<\/em>-\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 <code>postStart<\/code>).<\/p>\n<p>\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 <em>RestartPolicy<\/em> \u0432\u043b\u0438\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0445 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 <em>\u043f\u043e\u0434\u0435<\/em>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044f <code>restartPolicy<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>Always<\/code>. \u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u2014 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0434\u043b\u044f <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u043b\u0435 <code>restartPolicy<\/code> \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 <em>\u043f\u043e\u0434\u0430<\/em> \u0438 \u0442\u0438\u043f\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043f\u043e\u0434\u0447\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0435 <em>RestartPolicy<\/em> (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043f\u043e\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <em>Always<\/em>), \u0442\u043e \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u0441\u044f \u0432\u0441\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u0441\u044f \u0441\u0430\u043c\u0438.<\/p>\n<p>\u041d\u0435 \u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (<em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e <code>restartPolicy = Always<\/code>). \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 <em>sidecar<\/em>&#8212; \u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435, \u043e\u0434\u043d\u0430\u043a\u043e <em>kubelet<\/em> \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b <em>sidecar<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0434 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 <em>init<\/em>-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u2014 \u0442\u043e\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043b\u044e\u0431\u043e\u0433\u043e <code>startupProbe<\/code>.<\/p>\n<h4>Pod conditions around readiness to start containers after completion of pod sandbox creation<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3085\">#3085<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3085-pod-conditions-for-starting-completition-of-sandbox-creation\">KEP<\/a><\/p>\n<p>\u0413\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0432 <em>\u043f\u043e\u0434\u0435<\/em>, \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b <em>\u043f\u043e\u0434\u0430<\/em>, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0444\u0430\u0437\u043e\u0439 \u0435\u0433\u043e \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430. \u0414\u043b\u044f \u0435\u0451 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 <em>kubelet<\/em> \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432: <em>in-tree<\/em>-\u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0442\u043e\u043c\u043e\u0432 (<em>ConfigMap<\/em>, <em>Secret<\/em>, <em>EmptyDir<\/em> \u0438 \u0434\u0440.), \u043f\u043b\u0430\u0433\u0438\u043d\u044b CSI \u0438 \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 (\u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442 \u0440\u0430\u043d\u0442\u0430\u0439\u043c-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u044b CNI). \u0423\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u044d\u0442\u0430\u043f\u043e\u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 <em>sandbox<\/em> <em>\u043f\u043e\u0434\u0430<\/em> \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 <code>PodReadyToStartContainers<\/code> \u043a \u0441\u0442\u0430\u0442\u0443\u0441\u0443 <em>\u043f\u043e\u0434\u0430<\/em> \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. <code>PodReadyToStartContainers<\/code> \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u0430\u0436\u043d\u043e\u0439 \u0432\u0435\u0445\u043e\u0439 \u0432 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 <em>\u043f\u043e\u0434\u0430<\/em> \u043f\u043e\u0434\u043e\u0431\u043d\u043e <code>ContainersReady<\/code> \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c <em>Ready<\/em>-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c <em>\u043f\u043e\u0434\u0430<\/em>.<\/p>\n<h4>Add support for a drop-in kubelet configuration directory<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3983\">#3983<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4031\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <em>drop-in<\/em>-\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 <em>kubelet<\/em>. \u0415\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 <code>--config-dir<\/code> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>\/etc\/kubernetes\/kubelet.conf.d<\/code>). \u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435, \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u043e-\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0444\u043b\u0430\u0433 \u0431\u0443\u0434\u0435\u0442 \u043f\u0443\u0441\u0442\u044b\u043c, \u0438 \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <em>drop-in<\/em> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u0432 <code>kubelet.conf<\/code>.<\/p>\n<h4>Add CDI devices to device plugin API<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4009\">#4009<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4011\">KEP<\/a><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 KEP \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 API \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043f\u043e\u043b\u0435 \u0441 ID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Container Device Interface (CDI) \u0432 <code>AllocateResponse<\/code>. \u041e\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u043b\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 CDI-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 CDI \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b CRI, \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/3731\">#3731<\/a>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432 CRI. \u0425\u043e\u0442\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u043c\u043e\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3063\">KEP\u00a03063<\/a>, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u043b\u0435\u0439 \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 API \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0438 \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u044d\u0442\u0438\u043c\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438.<\/p>\n<h4>Discover cgroup driver from CRI<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/4033\">#4033<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/pull\/4034\">KEP<\/a><\/p>\n<p>KEP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0440\u0435\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <em>cgroup<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f <em>kubelet<\/em>. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <em>cgroup<\/em> \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <em>kubelet<\/em>, \u0447\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 <em>cgroup<\/em> \u0434\u043b\u044f <em>kubelet<\/em> \u0438 <em>CRI<\/em> \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h4>Dynamic resource allocation<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3063\">#3063<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3063-dynamic-resource-allocation\">KEP<\/a><\/p>\n<p>\u042d\u0442\u043e\u0442 KEP \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0435\u0449\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438\u00a01.27, \u043d\u043e \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 <em>alpha<\/em>. \u041e\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 API, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 <em>\u043f\u043e\u0434\u0443<\/em>. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0420\u0435\u0441\u0443\u0440\u0441\u044b, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0435 \u043f\u043e \u0441\u0435\u0442\u0438. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 API \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u0443\u0437\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438\u043b\u0438 <em>\u043f\u043e\u0434\u0430\u043c\u0438<\/em>. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 API \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u043e\u0431\u043c\u0435\u043d \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c <em>\u043f\u043e\u0434\u0435<\/em>, \u043d\u043e \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 <em>\u043f\u043e\u0434\u0430\u043c\u0438<\/em> \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u044b\u0439 API, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0442\u043e\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u044d\u0442\u043e\u043c KEP.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0441\u0443\u0440\u0441\u044b, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 <em>\u043f\u043e\u0434\u0430\u0445<\/em> \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u0440\u043e\u0433\u043e (\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0438 \u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u044e\u0442 \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u043c\u0438 \u0438 \u0441\u0447\u0435\u0442\u043d\u044b\u043c\u0438. \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 API <em>\u043f\u043e\u0434\u0430<\/em> \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0430 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043d\u0438\u043c \u0438\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 CSI \u0438\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u00ab\u043a\u043e\u0441\u0442\u044b\u043b\u0438\u00bb.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/728040\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.27<\/a>.<\/p>\n<h3>Beta-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Kubelet limit of Parallel Image Pulls<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3673\">#3673<\/a>, <a href=\"https:\/\/hackmd.io\/@zetEkgqtRbOBy8fi6e0dQg\/H1cdueuPo\/\">KEP<\/a><\/p>\n<p>KEP \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e <em>kubelet<\/em>\u2019\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>maxParallelImagePulling<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u041b\u044e\u0431\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442, \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u00ab\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435\u00bb. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0437 <a href=\"https:\/\/hackmd.io\/HGLmPG4WRWeEqwN55jy09A#Proposal\">\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e<\/a>.<\/p>\n<h4>Node memory swap support<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/2400\">#2400<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/2400-node-swap\">KEP<\/a><\/p>\n<p>KEP \u0438\u0437 \u0434\u0430\u043b\u0435\u043a\u043e\u0439 1.22-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 <em>beta<\/em>-\u0441\u0442\u0430\u0442\u0443\u0441. \u041e\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 Kubernetes \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0432\u043e\u043f\u0438\u043d\u0433\u0430 \u043f\u0430\u043c\u044f\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0437\u043b\u043e\u0432 \u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432: \u0441\u0432\u043e\u043f\u0438\u043d\u0433 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0445\u043e\u0441\u0442\u0430, \u0443\u0437\u043b\u043e\u0432 \u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a, \u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f <em>kubelet\u2019\u043e\u043c<\/em>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c.\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/571184\/\">\u0432\u00a0\u043e\u0431\u0437\u043e\u0440\u0435 Kubernetes\u00a01.22<\/a>.<\/p>\n<h4>Improved multi-numa alignment in Topology Manager<\/h4>\n<p><a href=\"https:\/\/github.com\/kubernetes\/enhancements\/issues\/3545\">#3545<\/a>, <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/blob\/master\/keps\/sig-node\/3545-improved-multi-numa-alignment\/README.md\">KEP<\/a><\/p>\n<p>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <em>kubelet<\/em>\u2019\u0430 <em>TopologyManager<\/em> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 <em>NUMA<\/em>-\u0443\u0437\u043b\u0430\u0445 (Non-Uniform Memory Architecture). \u041e\u0434\u043d\u0430\u043a\u043e <em>TopologyManager<\/em> \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 <em>NUMA<\/em>-\u0443\u0437\u043b\u0430\u043c\u0438 \u2014 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \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, \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u043a \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c.<\/p>\n<p>\u041d\u043e\u0432\u0430\u044f \u0444\u0438\u0447\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043e\u043f\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 <em>TopologyManager\u2019\u0443<\/em> \u0432\u043e \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 NUMA-\u0443\u0437\u043b\u043e\u0432 \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0432\u0432\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u0444\u043b\u0430\u0433 <code>topology-manager-policy-options<\/code>, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u00ab\u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u00bb <em>TopologyManager<\/em> \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438 \u0443\u0447\u0435\u0442\u0430 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 NUMA-\u0443\u0437\u043b\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/github.com\/kubernetes\/enhancements\/tree\/master\/keps\/sig-node\/3545-improved-multi-numa-alignment#calculating-average-distance\">\u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<p>\u041e \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u0445, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 NUMA, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u043d\u0430\u0448\u0438\u0445 \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 Kubernetes\u00a01.25 (<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/684142\/\">CPU Manager policy: socket alignment<\/a>) \u0438 1.23 (<a href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/593735\/\">CPUManager policy option to distribute CPUs across NUMA nodes<\/a>).<\/p>\n<h3>Stable-\u0444\u0438\u0447\u0438<\/h3>\n<h4>Support 3rd party device monitoring<\/h><\/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-352069","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/352069","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=352069"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/352069\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=352069"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=352069"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=352069"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}