{"id":385353,"date":"2024-06-29T06:03:40","date_gmt":"2024-06-29T06:03:40","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=385353"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T06:03:40","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=385353","title":{"rendered":"<span>Kubernetes monitoring \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443 (\u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0425\u0440\u0430\u043c\u0447\u0438\u0445\u0438\u043d)<\/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-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/dy\/xx\/2o\/dyxx2omqfakjaexoiytae-23jg4.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/dy\/xx\/2o\/dyxx2omqfakjaexoiytae-23jg4.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043a\u0430\u043a \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 VictoriaMetrics \u0437\u0430\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c kubernetes. \u041e\u0442\u043a\u0443\u0434\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0446\u0435\u043b\u0438. \u0427\u0435\u0440\u043d\u0430\u044f \u043c\u0430\u0433\u0438\u044f \u0440\u0435\u043b\u0435\u0439\u0431\u043b\u0438\u043d\u0433\u0430 \u0438 \u043a\u0430\u043a \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u0438\u0445 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/617ba3994615593b75e246cc\" data-style=\"\" id=\"617ba3994615593b75e246cc\" width=\"\"><\/div>\n<\/div>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/e4\/8w\/ue\/e48wueqw8vhctbnlydjrehzhekc.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/e4\/8w\/ue\/e48wueqw8vhctbnlydjrehzhekc.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0425\u0440\u0430\u043c\u0447\u0438\u0445\u0438\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 VictoriaMetrics.<\/p>\n<p>  <\/p>\n<p>VistoriaMetrics \u2013 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/qy\/fk\/of\/qyfkof7sxy3sfh71tmesziy2yj0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/qy\/fk\/of\/qyfkof7sxy3sfh71tmesziy2yj0.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443:<\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u041e \u0441\u0431\u043e\u0440\u0435 \u043c\u0435\u0442\u0440\u0438\u043a \u0438\u0437 Kubernetes, <\/p>\n<p>  <\/li>\n<li>\n<p>\u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0443 \u043d\u0430\u0441 \u0438\u0437\u043d\u0443\u0442\u0440\u0438,<\/p>\n<p>  <\/li>\n<li>\n<p>\u0418 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u043c. <\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ax\/k8\/yp\/axk8yp4e31t4r1-k0swaonkpsli.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ax\/k8\/yp\/axk8yp4e31t4r1-k0swaonkpsli.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 requirements \u0434\u043b\u044f \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u043d\u0438\u044f Kubernetes. \u042f \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0435 \u043f\u0440\u0438\u0432\u0435\u043b \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Kubernetes \u0432 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432\u0430\u0445? Kubernetes \u2013 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438. <\/p>\n<p>  <\/p>\n<p>\u041e\u043d \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0443p\u043b\u043e\u0432 \u2013 worker nodes, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 Kubernetes Control Plane, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/yt\/ke\/3e\/ytke3ewe9loqsads8ykqq8g7fgk.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/yt\/ke\/3e\/ytke3ewe9loqsads8ykqq8g7fgk.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0442\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c? \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044d\u0442\u043e \u0441\u0430\u043c Kubernetes Control Plane. \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u043c \u0435\u0433\u043e \u0443\u0437\u043b\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f API-\u0441\u0435\u0440\u0432\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 etcd. \u0418 \u043a \u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u042d\u0442\u043e Controller Manager, Kebelet, Scheduler \u0438 \u043f\u0440\u043e\u0447\u0435\u0435. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/_c\/sw\/v7\/_cswv70ucsaqbwtut-8hk3jlijw.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/_c\/sw\/v7\/_cswv70ucsaqbwtut-8hk3jlijw.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043d\u0435\u0442. Kubernetes \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 CPU, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a node-exporter \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 worker nodes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0441\u043e\u0431\u0438\u0440\u0430\u044f \u0435\u0435 \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u042d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 CPU, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/47\/u-\/ql\/47u-qltr_fsfs1rpki1uwdrlrmc.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/47\/u-\/ql\/47u-qltr_fsfs1rpki1uwdrlrmc.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0430\u0436\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c \u0432 Kubernetes Control Plane \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Kubelet, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u044f\u0437\u0443\u044e\u0449\u0438\u043c \u0437\u0432\u0435\u043d\u043e\u043c \u043c\u0435\u0436\u0434\u0443 API-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0438 Container Runtime Interface, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a Docker, Podman. \u0418\u0445 \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c. \u0410 Container Runtime Interface \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0443\u0436\u0435 \u0441\u0430\u043c\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b.<\/p>\n<p>  <\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Kubelet \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0443\u0445 API. <\/p>\n<p>  <\/p>\n<ol>\n<li>\n<p>\u042d\u0442\u043e \/metrics, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0441 API-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 volumes \u043a \u044d\u0442\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0418 \/metrics\/cadvisor, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e \u0441\u0430\u043c\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c, \u0442. \u0435. \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 CPU, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. <\/p>\n<p>  <\/li>\n<\/ol>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zg\/hd\/1-\/zghd1-tcelg_v8zbwcfxeskzka8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/zg\/hd\/1-\/zghd1-tcelg_v8zbwcfxeskzka8.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u044d\u0442\u043e \u0441\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes. \u0418\u0445 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ep\/yj\/gj\/epyjgjp5x9osgovjnkqfgbxtod0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ep\/yj\/gj\/epyjgjp5x9osgovjnkqfgbxtod0.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u042f \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0441\u0430\u043c\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 prometheus text \u0444\u043e\u0440\u043c\u0430\u0442\u0435. <\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0443 \u0441\u0435\u0431\u044f web-\u0441\u0435\u0440\u0432\u0435\u0440, \u043e\u0434\u0438\u043d \u0438\u0437 endpoint\u2019\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0434\u0430\u0435\u0442 \u044d\u0442\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438. \u0410 \u043a\u043e\u043b\u043b\u0435\u043a\u0442\u043e\u0440 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0438 http-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0438\u0445 \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442. <\/p>\n<p>  <\/p>\n<p>\u0412 control-plane Kubernetes \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043e\u0442\u0434\u0430\u044e\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 prometheus text \u0444\u043e\u0440\u043c\u0430\u0442\u0435. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/aq\/ez\/a6\/aqeza6fsvd206yzjbyvfnk9coam.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/aq\/ez\/a6\/aqeza6fsvd206yzjbyvfnk9coam.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0418 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e VictoriaMetrics Single \u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u043c \u0444\u043b\u0430\u0433\u043e\u043c &#8212;promscrape.config, \u0431\u0443\u0434\u0435\u0442 \u044d\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f VictoriaMetrics, \u043d\u043e \u0438 \u0434\u043b\u044f vmagent \u0438 Prometheus, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c VictoriaMetrics \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zd\/ug\/3n\/zdug3ntyker_sesqlanafqni4ew.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/zd\/ug\/3n\/zdug3ntyker_sesqlanafqni4ew.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0412\u0430\u0436\u043d\u0430\u044f \u0441\u0435\u043a\u0446\u0438\u044f \u2013 \u044d\u0442\u043e scrape_configs, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 jobs, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0435 configs, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430 \u0438\u043b\u0438 \u0435\u0433\u043e DNS-\u0438\u043c\u044f. <\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Service Discovery Configs, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438\u0437 Kubernetes \u0438 \u043a\u0430\u043a-\u0442\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u044d\u0442\u0438\u043c\u0438 \u0432\u0441\u0435\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/nz\/hf\/_9\/nzhf_9qheywfxtpepraavzh1oto.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/nz\/hf\/_9\/nzhf_9qheywfxtpepraavzh1oto.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0443\u0436\u0435\u043d \u043b\u0438 Service Discovery \u0438\u043b\u0438 \u043d\u0435\u0442? \u041f\u043e \u0438\u0434\u0435\u0435 \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u0438\u0437 Kubernetes \u2013 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 targets \u0447\u0435\u0440\u0435\u0437 static_configs. \u042d\u0442\u043e, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0434\u0430\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0412\u044b \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 API-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0435 \u0441\u0442\u0430\u0440\u044b\u0439. \u0418 \u0432 \u0446\u0435\u043b\u043e\u043c \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043b\u044f Controller Managers \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b. \u0410 \u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0440\u0443\u043a\u0430\u043c\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/-w\/yk\/p4\/-wykp4znl1kxfqkmsrpwgke7n08.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/-w\/yk\/p4\/-wykp4znl1kxfqkmsrpwgke7n08.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0435 \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u043f\u043e\u0440\u0442\u0430, \u043e\u0442\u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0442\u043e \u0443 \u043d\u0430\u0441 \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f, \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b. \u042d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u0410 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u044d\u0442\u043e \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/j_\/tl\/6z\/j_tl6zpm2zykyikalj5tzmqkbyu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/j_\/tl\/6z\/j_tl6zpm2zykyikalj5tzmqkbyu.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f Service Discovery, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 Kubernetes. \u041e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u0441 targets.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/jy\/ex\/hn\/jyexhn0fvw7dghrzviegzhs38xo.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/jy\/ex\/hn\/jyexhn0fvw7dghrzviegzhs38xo.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. VictoriaMetrics \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Kubernetes watch API, \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 API Kubernetes \u0438 \u043a\u0430\u043a-\u0442\u043e \u043d\u0430 \u044d\u0442\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/co\/ar\/js\/coarjsaq0tckdkemvvabhyupmfq.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/co\/ar\/js\/coarjsaq0tckdkemvvabhyupmfq.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043e\u0432. <\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0434 \u2013 \u044d\u0442\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0430\u043c\u0430\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 API \u0432 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. <\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0443 \u043d\u0430\u0441 \u043f\u043e\u0434 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c app-1. \u041e\u043d \u0432 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e namespace, \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e labels. \u0418 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d 80 \u043f\u043e\u0440\u0442. <\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a VictoriaMetrics \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 Kubernetes API, \u043e\u043d\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434, \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a labels \u0432\u0438\u0434\u0430 _meta_kubernetes \u0441 \u043a\u0430\u043a\u0438\u043c\u0438-\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, _meta_kubernetes_pod_name: app-1. \u042d\u0442\u043e \u0438\u043c\u044f \u043f\u043e\u0434\u0430. \u0410 label \u0438\u0437 metadata env \u0431\u0443\u0434\u0435\u0442 \u0432 _meta_kubernetes_pod_label_env: dev \u0441 \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. <\/p>\n<p>  <\/p>\n<p>\u0418 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 label address, \u043a\u0443\u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f ip \u043f\u043e\u0434\u0430 \u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u043e\u0440\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/hz\/qv\/9h\/hzqv9h-0rxp83ukpqegh70labum.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/hz\/qv\/9h\/hzqv9h-0rxp83ukpqegh70labum.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 labels \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0437\u0443 relabeling, \u0433\u0434\u0435 \u043a \u043d\u0435\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 relabeling config. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ik\/mf\/mx\/ikmfmx2urtrxq_kyfmnto2ifnrs.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ik\/mf\/mx\/ikmfmx2urtrxq_kyfmnto2ifnrs.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Relabeling, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u043c\u0430\u0433\u0438\u044f? \u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0447\u0430\u0441\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u0435 relabeling_configs \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. <\/p>\n<p>  <\/p>\n<p>Relabel_cjonfigs \u2013 \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u0432\u0438\u043b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 labels \u0438 \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043f\u0440\u0430\u0432\u0438\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/1n\/qg\/cq\/1nqgcqod6yfvoyunlflc2vujg74.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/1n\/qg\/cq\/1nqgcqod6yfvoyunlflc2vujg74.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0442\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e? \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0441\u0435\u043a\u0446\u0438\u044f \u2013 \u044d\u0442\u043e source_labels, \u0442. \u0435. \u0442\u0435 labels, \u043d\u0430\u0434 \u043a\u0430\u043a\u0438\u043c\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u043e\u0434\u043d\u0430, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e labels. <\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c action, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>Modulus \u2013 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f action hashmod. \u041d\u043e \u043e\u043d \u0440\u0435\u0434\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0445 \u0446\u0435\u043b\u0435\u0439. <\/p>\n<p>  <\/p>\n<p>Regex \u2013 \u044d\u0442\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c matching. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0437\u0430\u0445\u0432\u0430\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u0437\u0434\u0435\u0441\u044c. \u0418 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 replacement \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u043b\u0435, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 label.<\/p>\n<p>  <\/p>\n<p>Separator \u2013 \u044d\u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 actions, \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e source_labels \u043e\u043d\u0438 \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c separator\u2019\u043e\u043c. \u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2013 \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. <\/p>\n<p>  <\/p>\n<p>Target_label \u2013 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e label, \u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 action.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/uf\/um\/1a\/ufum1az1wrn0pwrar-uwbjblhkq.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/uf\/um\/1a\/ufum1az1wrn0pwrar-uwbjblhkq.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b actions? \u041e\u043d\u0438 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0435 \u0433\u0440\u0443\u043f\u043f\u044b.<\/p>\n<p>  <\/p>\n<ol>\n<li>\u042d\u0442\u043e actions, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 VM \u0438 Prometheus:<\/li>\n<\/ol>\n<p>  <\/p>\n<ul>\n<li>\n<p>Replace,<\/p>\n<p>  <\/li>\n<li>\n<p>Keep,<\/p>\n<p>  <\/li>\n<li>\n<p>Drop,<\/p>\n<p>  <\/li>\n<li>\n<p>Labelmap,<\/p>\n<p>  <\/li>\n<li>\n<p>Labelkeep,<\/p>\n<p>  <\/li>\n<li>\n<p>Labeldrop,<\/p>\n<p>  <\/li>\n<li>\n<p>Hashmod.<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ol>\n<li>\u0418 actions, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 VM. \u041e\u043d\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, keep_if_equal. \u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u0434\u0430\u043b\u044c\u0448\u0435, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 match \u043f\u043e \u043f\u043e\u0440\u0442\u0443.<\/li>\n<\/ol>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/e6\/dn\/qt\/e6dnqt-hcieo_xvubzeavyclakg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/e6\/dn\/qt\/e6dnqt-hcieo_xvubzeavyclakg.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>Relabeling-\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f targets,<\/p>\n<p>  <\/li>\n<li>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f labels,<\/p>\n<p>  <\/li>\n<li>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f labels,<\/p>\n<p>  <\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 labels,<\/p>\n<p>  <\/li>\n<li>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 labels.<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ip\/g3\/js\/ipg3jsnu0zmunfnxxn-1abfxdli.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ip\/g3\/js\/ipg3jsnu0zmunfnxxn-1abfxdli.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0430\u0440\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c relabel_configs. <\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0437 \u0432\u0441\u0435\u0445 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0434 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 namespace default. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c source<em>labels: [<\/em> _meta_kubernetes_pod_namespace]. \u0412 action \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c keep \u2013 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u0434 \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f. \u0418 \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 namespace default.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/_5\/i8\/hw\/_5i8hw1njvajkexa8pkk0czffru.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/_5\/i8\/hw\/_5i8hw1njvajkexa8pkk0czffru.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0433\u0430\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 label \u043f\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, namespace, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c source_labels \u0438 target_label, \u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u044d\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ht\/g5\/of\/htg5ofeo9qcx7wthpmlkouelcys.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ht\/g5\/of\/htg5ofeo9qcx7wthpmlkouelcys.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 relabeling \u0438 \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445, \u043c\u043e\u0436\u043d\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043e\u0447\u043a\u0435: <a href=\"https:\/\/medium.com\/@valyaya\/cs-8b90fc22c4b2\" rel=\"nofollow noopener noreferrer\">https:\/\/medium.com\/@valyaya\/cs-8b90fc22c4b2<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/og\/ws\/vy\/ogwsvyxelht_dn2fdh35iwhaaue.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/og\/ws\/vy\/ogwsvyxelht_dn2fdh35iwhaaue.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a Service Discovery. \u041f\u043e\u0441\u043b\u0435 \u0444\u0430\u0437\u044b relabeling, \u0432\u0441\u0435 labels \u0441 \u043f\u0440\u0438\u0444\u0438\u043a\u0441\u043e\u043c __ meta \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f. <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c. Kubernetes \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0435\u043c metadata. \u0418 \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 40-60 labels \u043d\u0430 1 deploy, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e. \u0418 \u0432 90 % \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0432\u044b \u0438\u0445 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0432\u0430\u043c labels \u043c\u043e\u0436\u043d\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f relabeling, \u0443\u0431\u0440\u0430\u0432 \u0443 \u043d\u0438\u0445 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0438\u043b\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0432 \u043d\u0430 \u0438\u043c\u044f, \u043d\u0443\u0436\u043d\u043e\u0435 \u0432\u0430\u043c. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/si\/ji\/jy\/sijijydhttzngrafb7u8ovkmw60.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/si\/ji\/jy\/sijijydhttzngrafb7u8ovkmw60.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 API Kubernetes? \u041e\u043d\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 role.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c:<\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>Pod, <\/p>\n<p>  <\/li>\n<li>\n<p>Service,<\/p>\n<p>  <\/li>\n<li>\n<p>Endpoints,<\/p>\n<p>  <\/li>\n<li>\n<p>Endpointslice,<\/p>\n<p>  <\/li>\n<li>\n<p>Node,<\/p>\n<p>  <\/li>\n<li>\n<p>Ingress.<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 role, VM \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 labels. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/8x\/gq\/uh\/8xgquhp-c8o6hg7b-edtkflx5v4.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/8x\/gq\/uh\/8xgquhp-c8o6hg7b-edtkflx5v4.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 role \u0447\u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442. <\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 \u2013 \u044d\u0442\u043e pod, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u041e\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 labels \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e container port \u0441 ip-\u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0430. <\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u043f\u043e\u0434, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e 3 \u043f\u043e\u0440\u0442\u0430, \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 initContainer. \u0418 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0435\u0433\u043e ip-\u0430\u0434\u0440\u0435\u0441. <\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, VM \u043d\u0430 relabeling 3 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0441 ip-\u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u043f\u043e\u0440\u0442\u043e\u0432. \u0422\u0430\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u0435\u0442\u0430-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438\u0437 metadata \u0438 \u0435\u0449\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0431\u0443\u0434\u0435\u0442. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/7u\/bo\/c7\/7uboc7l50l02n99ofh2hagbn6b8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/7u\/bo\/c7\/7uboc7l50l02n99ofh2hagbn6b8.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>Role: service \u0442\u043e\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u041e\u043d \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u0418 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u0440\u0442\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 label c \u043c\u0435\u0442\u0430-\u0434\u0430\u0442\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u043c. \u042d\u0442\u043e \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435: \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430.namespace.svc \u0438 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0440\u0442\u0430 \u0432 \u043f\u043e\u0440\u0442 \u0441\u0435\u043a\u0446\u0438\u0438. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ei\/bt\/wb\/eibtwb-mwfkxmbpbmwzk7vu02pm.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ei\/bt\/wb\/eibtwb-mwfkxmbpbmwzk7vu02pm.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 role: endpoint. \u0417\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0434\u0430\u0442\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 endpoint, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0440\u0443\u043a\u0430\u043c\u0438 \u0438\u0445 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442. <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0432 API Kubernetes, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u043f\u043e\u0434\u043e\u0432. \u041e\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u0434\u043e\u0432, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0435 \u043f\u043e\u0434\u044b. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/lh\/rw\/hr\/lhrwhre2sulsc0sw4c9z64phj_m.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/lh\/rw\/hr\/lhrwhre2sulsc0sw4c9z64phj_m.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f Service Discovery \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0441\u0430\u043c\u044b\u0445 \u0440\u043e\u043b\u0435\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u043e\u0434\u043d\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0440\u043e\u043b\u044f\u0445, \u0430 \u0446\u0435\u043b\u044b\u0445 \u0442\u0440\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u043e\u0433\u0430\u0449\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e service. \u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0435\u0433\u043e definition, endpoints \u0438 \u0441\u0430\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0434. <\/p>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u043e\u0440\u0442 \u0437\u0430\u044d\u043a\u0441\u043f\u043b\u0443\u0436\u0435\u043d, \u044d\u0442\u043e 8429. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 endpoint\u2019\u0435 \u043e\u043d \u0442\u043e\u0436\u0435 \u043e\u0434\u0438\u043d, \u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0434\u0432\u0430 \u043f\u043e\u0440\u0442\u0430. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/6j\/fn\/vk\/6jfnvk0_yp1hpaghq2hayw_ynxi.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/6j\/fn\/vk\/6jfnvk0_yp1hpaghq2hayw_ynxi.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0418 \u044d\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u043f\u0438\u0441\u043e\u043a labels \u0441 \u0434\u0432\u0443\u043c\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u0417\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0442 \u043f\u043e\u0440\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u0441\u0442\u044c \u0432 endpoints, service, \u043d\u043e \u0438 \u043f\u043e\u0440\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 2003, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0431\u044b\u043b \u0443\u043a\u0430\u0437\u0430\u043d, \u043d\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u0442\u0430-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e endpoint.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/dc\/ui\/qo\/dcuiqoufvi4abuhcekp07d9lbno.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/dc\/ui\/qo\/dcuiqoufvi4abuhcekp07d9lbno.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>Endpointslice \u2013 \u044d\u0442\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f endpoints \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f Kubernetes API. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043d\u0430 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 endpoints, \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043c \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u0432 \u0434\u043b\u044f labels \u0441 meta_kubernetes_endpoint \u043d\u0430 meta_kubernetes_endpointslice. <\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f endpoint? \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e endpoints, \u043f\u043e-\u043c\u043e\u0435\u043c\u0443, \u0431\u043e\u043b\u044c\u0448\u0435 1 000, \u0442\u043e Kubernetes \u0438\u0445 \u043e\u0431\u0440\u0435\u0437\u0430\u0435\u0442. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044c endpoints. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u0437\u043d\u0430\u044e, \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 VM \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 WARN \u043e\u0448\u0438\u0431\u043a\u043e\u0439, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/3v\/y9\/rl\/3vy9rlyegs6czi2zryrplfpwv5y.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/3v\/y9\/rl\/3vy9rlyegs6czi2zryrplfpwv5y.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0440\u043e\u043b\u044c \u2013 \u044d\u0442\u043e node. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, worker node \u0432 Kubernetes, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 ip-\u0430\u0434\u0440\u0435\u0441 worker node. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2013 \u044d\u0442\u043e InternalIP. \u0418 \u043f\u043e\u0440\u0442 Kubelet, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u043d\u043e\u0434\u044b. \u0418 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f metadata-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0442\u043e\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u042d\u0442\u043e annotations: some-annotation: value labels. \u0415\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ip\/ty\/qk\/iptyqk6fehemunl3kwgxq_uyjco.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ip\/ty\/qk\/iptyqk6fehemunl3kwgxq_uyjco.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0430\u043c\u0430\u044f \u043c\u0430\u043b\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u0430\u044f \u0440\u043e\u043b\u044c \u2013 \u044d\u0442\u043e ingresses. \u041e\u043d\u0430 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. \u042f \u043c\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0441 Blackbox Exporter, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 ingresses \u0447\u0435\u0440\u0435\u0437 Service Discovery. <\/p>\n<p>  <\/p>\n<p>\u0418 \u043e\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u0438\u0437 \u0445\u043e\u0441\u0442\u043e\u0432 \u0432 rules \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u0438\u0445 \u043f\u0443\u0442\u0435\u0439. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u0430\u0434\u0440\u0435\u0441\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e host name, \u0430 \u0441\u0430\u043c path \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e _ _meta_kubernetes_ingress_path, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/lj\/op\/wq\/ljopwq0wlobwt1feqtp3hw6eabw.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/lj\/op\/wq\/ljopwq0wlobwt1feqtp3hw6eabw.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0440\u043e\u043b\u0438 \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 labels \u043e\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Prometheus.io. \u0422\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0447\u0435\u0442 \u0438 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/pw\/sh\/-1\/pwsh-1_tcl2cgnnq0qxmjzwhkl0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/pw\/sh\/-1\/pwsh-1_tcl2cgnnq0qxmjzwhkl0.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>Service Discovery \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u043e\u0434\u044b, \u043d\u043e \u043d\u0430\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441 \u043d\u0438\u0445 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0430, \u043c\u043e\u0436\u0435\u0442, \u043e\u043d\u0438 \u0438\u0445 \u0438 \u043d\u0435 \u043e\u0442\u0434\u0430\u044e\u0442. <\/p>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u044b\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 Prometheus.io\/scrape: \u201ctrue\u201d \u0432 metadata.annotations \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0432 template \u043f\u043e\u0434\u0430 \u0432 deployment \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/r9\/lk\/nl\/r9lknlfnhz4wsr7-qcgg-mnaao4.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/r9\/lk\/nl\/r9lknlfnhz4wsr7-qcgg-mnaao4.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. Kubernetes \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u043e \u044d\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f scraping, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u043c\u0435\u0442\u0430-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438\u0437 annotation. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c _ _meta_kubernetes_pod_annotation_prometheus_io_scrape \u0441 regex: true.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/-j\/2m\/te\/-j2mtesy8c8rjxjjlm__xxdaati.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/-j\/2m\/te\/-j2mtesy8c8rjxjjlm__xxdaati.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u044d\u0442\u0443 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e \u0434\u0432\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438. \u042d\u0442\u043e prometheus.io\/port \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0440\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f scraping. \u0418 prometheus.io\/path, \u043e\u0442\u043a\u0443\u0434\u0430 \u044d\u0442\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u0432 \u043f\u043e\u0434\u0435 \u0438 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0443\u0442\u0435\u0439, \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c relabeling_config \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0430\u0442\u0447\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u043f\u0443\u0441\u0442\u044b\u0435. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/5m\/t1\/vi\/5mt1vidclu45lmzkksglnyun1nu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/5m\/t1\/vi\/5mt1vidclu45lmzkksglnyun1nu.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u044b\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 annotations \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. <\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e, \u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441 \u0442\u0440\u0435\u0445 \u043f\u043e\u0440\u0442\u043e\u0432, \u0445\u043e\u0442\u044f initContainer \u0443\u0436\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0418 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/hr\/37\/ap\/hr37aptvmj1_l4w3quyd4_u75za.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/hr\/37\/ap\/hr37aptvmj1_l4w3quyd4_u75za.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, prometheus.io\/port \u0442\u043e\u0436\u0435 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u0440\u0442\u0443, \u0430 \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043c\u044b \u0443\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \u0412 Prometheus \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 issues \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0437\u0434\u0435\u0441\u044c \u0443 \u043c\u0435\u043d\u044f \u0441\u0441\u044b\u043b\u043e\u0447\u043a\u0438 \u043d\u0435\u0442. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zb\/dr\/zh\/zbdrzh3o-1p2r0xkrpfxt130t3w.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/zb\/dr\/zh\/zbdrzh3o-1p2r0xkrpfxt130t3w.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c? \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0442. \u0435. \u0441\u043e\u0437\u0434\u0430\u0442\u044c prometheus.io\/scrape: \u201ctrue\u201d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0434\u0438\u043d \u043f\u043e\u0440\u0442 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e config-\u0441\u0435\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u0438\u0431\u043e \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u043f\u043e \u0438\u0445 \u043d\u043e\u043c\u0435\u0440\u0430\u043c, \u043b\u0438\u0431\u043e \u0441\u043e \u0432\u0441\u0435\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0443\u0434\u043e\u0431\u043d\u043e.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/aj\/l2\/xj\/ajl2xjah7qf0veuyxvwyw_zzzga.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/aj\/l2\/xj\/ajl2xjah7qf0veuyxvwyw_zzzga.jpeg\" data-blurred=\"true\"\/> <\/p>\n<p>  <\/p>\n<p>\u0410 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u0442\u043e \u0438\u0437 \u0435\u0433\u043e labels \u0434\u043b\u044f \u0438\u043c\u0435\u043d\u0438. \u0418, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430, \u043e\u0442\u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438. <\/p>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f endpoints, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441 endpoints, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/yc\/hd\/3r\/ychd3rkaffqx8qr0qqqg1bgcos8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/yc\/hd\/3r\/ychd3rkaffqx8qr0qqqg1bgcos8.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0435\u0449\u0435? VictoriaMetrics operator \u2013 \u044d\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434. \u041e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 relabeling-\u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043e\u0431\u043e\u0433\u0430\u0449\u0430\u044f \u043c\u0435\u0442\u0430-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0421\u0441\u044b\u043b\u043e\u0447\u043a\u0430 \u043d\u0430 \u043d\u0435\u0433\u043e \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/bf\/pi\/w5\/bfpiw5ckghehkmkubp5g4encd_y.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/bf\/pi\/w5\/bfpiw5ckghehkmkubp5g4encd_y.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Custom Resource Definitions. \u042d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0449\u0438\u0435 API Kubernetes \u0447\u0435\u0440\u0435\u0437 Custom Resource. \u0418 \u0443\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432 \u0441\u0430\u043c\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 Custom Resource, \u0438 \u0443 \u0432\u0430\u0441 \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/kt\/wo\/f2\/ktwof2sbyisgvvu3r7elleo76gg.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/kt\/wo\/f2\/ktwof2sbyisgvvu3r7elleo76gg.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0431\u043e\u0440 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439. \u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0440\u0430\u0442\u043a\u043e \u043e VMPodScrape, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0440\u0442\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/u1\/wt\/nh\/u1wtnhkt93goaemivttks2iywum.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/u1\/wt\/nh\/u1wtnhkt93goaemivttks2iywum.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0418 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0432\u0430 \u043f\u0440\u0438\u043c\u0435\u0440 deployment, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u0440\u0442\u043e\u0432. <\/p>\n<p>  <\/p>\n<p>\u0421\u043f\u0440\u0430\u0432\u0430 \u043f\u0440\u0438\u043c\u0435\u0440 VMPodScrape, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0432 YAML-\u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u043e, \u043e\u0442\u043a\u0443\u0434\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0437\u0434\u0435\u0441\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u0440\u0442\u0430: http \u0438 backup-metrics. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/wo\/hd\/st\/wohdstt0k__gfwega3zkd3_djxm.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/wo\/hd\/st\/wohdstt0k__gfwega3zkd3_djxm.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0434\u0432\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 scrape \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c matching \u043f\u043e source_labels \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u0441\u0442\u044c \u0432 deployments, \u0438 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u0440\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u0441\u0430\u043c\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/9o\/jb\/9f\/9ojb9f6vwovoqhnradvzpjjdn9k.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/9o\/jb\/9f\/9ojb9f6vwovoqhnradvzpjjdn9k.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f VMPodScrape. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0438\u0431\u043a\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c Git-ops-\u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. <\/p>\n<p>  <\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f VMagent, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/3y\/d3\/ze\/3yd3zefjzvght3ruudciknxk1za.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/3y\/d3\/ze\/3yd3zefjzvght3ruudciknxk1za.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0443\u0437\u043d\u0430\u043b\u0438: <\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0446\u0435\u043b\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 Kubernetes. <\/p>\n<p>  <\/li>\n<li>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Service Discovery. <\/p>\n<p>  <\/li>\n<li>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0435\u0448\u0430\u0435\u0442 relabeling_congig.<\/p>\n<p>  <\/li>\n<li>\n<p>\u041a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043d\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0438 \u043a\u0430\u043a \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  <\/li>\n<li>\n<p>\u041f\u0440\u043e \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e prometheus.io\/scrape \u2013 \u0435\u0435 \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b.<\/p>\n<p>  <\/li>\n<li>\n<p>\u0418 \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043f\u0440\u043e VM operator, \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ce\/gu\/ky\/cegukytmmzludecjxj2nw7uk7lw.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ce\/gu\/ky\/cegukytmmzludecjxj2nw7uk7lw.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435\u043c, \u0441\u043f\u0430\u0441\u0438\u0431\u043e! \u0412\u0430\u0448\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. <\/p>\n<p>  <\/p>\n<p><em>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435! \u041a\u0430\u043a \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 Kubernetes, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 Service Management, \u043b\u0438\u0431\u043e \u0441 Service Desk \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b \u043d\u0430 \u0442\u0435 \u0438\u043b\u0438 \u0438\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0430\u043c\u043e\u0433\u043e Kubernetes \u0438 \u0442\u0430\u043a\u0436\u0435 master nodes? \u0412\u044b \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043d\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u043e \u043f\u043e\u0434\u0430\u0445, \u0430 \u043a\u0430\u043a \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c master nodes \u0438 \u0441\u0430\u043c Kubernetes \u043a\u0430\u043a \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b?<\/em><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u044f \u0432\u0438\u0436\u0443, \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438. \u041f\u0435\u0440\u0432\u0430\u044f \u2013 \u044d\u0442\u043e \u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438. \u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u2013 \u044d\u0442\u043e \u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441 \u043d\u0438\u043c\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u0434 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u044f \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u044e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f, \u0442. \u0435. \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e\u0442 API-\u0441\u0435\u0440\u0432\u0435\u0440 \u0436\u0438\u0432 \u0438\u043b\u0438 \u043d\u0435\u0442. <\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 VM \u0435\u0441\u0442\u044c <a href=\"https:\/\/docs.victoriametrics.com\/vmalert.html\" rel=\"nofollow noopener noreferrer\">vmalert<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u044d\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0418 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 <a href=\"https:\/\/prometheus.io\/docs\/alerting\/latest\/alertmanager\/\" rel=\"nofollow noopener noreferrer\">Alertmanager<\/a>. \u0423 <a href=\"https:\/\/prometheus.io\/docs\/alerting\/latest\/alertmanager\/\" rel=\"nofollow noopener noreferrer\">Alertmanager<\/a> \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439, \u043a\u0443\u0434\u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0433\u0434\u0435 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043a\u0430\u043a \u0438\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u041b\u0438\u0447\u043d\u043e \u044f \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u0438\u0437 <a href=\"https:\/\/prometheus.io\/docs\/alerting\/latest\/alertmanager\/\" rel=\"nofollow noopener noreferrer\">Alertmanager<\/a> \u0438 <a href=\"https:\/\/github.com\/alerta\/alerta\" rel=\"nofollow noopener noreferrer\">alerta<\/a>, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0435 assign (\u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c) \u0432\u0441\u0435 \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043d\u0435\u0437\u0434\u043e\u0440\u043e\u0432\u043e\u0441\u0442\u0438 API-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043a\u0430\u043a-\u0442\u043e \u0441 \u043d\u0438\u043c\u0438 \u0443\u0436\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><em>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432 <a href=\"https:\/\/www.zabbix.com\/\" rel=\"nofollow noopener noreferrer\">Zabbix<\/a>? \u041b\u0438\u0431\u043e, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0432 \u0410\u043a\u0441\u0438\u0443\u0441\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e? Kubernetes \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u0441\u044f Prometheus\u2019\u043e\u043c. \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Zabbix \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0431\u044b\u043b\u043e \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0410\u043a\u0441\u0438\u0443\u0441\u0435?<\/em><\/p>\n<p>  <\/p>\n<p>\u042f \u043f\u043e\u043d\u044f\u043b \u0432\u043e\u043f\u0440\u043e\u0441. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u0437\u043d\u0430\u044e, \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/glaber.io\/\" rel=\"nofollow noopener noreferrer\">Glaber<\/a>. \u042d\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 <a href=\"https:\/\/www.zabbix.com\/\" rel=\"nofollow noopener noreferrer\">Zabbix<\/a>, \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0443\u0447\u0448\u0435. \u0418 \u043e\u043d \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0431\u044d\u043a\u0435\u043d\u0434\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 VM \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/glaber.io\/\" rel=\"nofollow noopener noreferrer\">Glager<\/a> \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. <\/p>\n<p>  <\/p>\n<p><em>\u041f\u043e\u043d\u044f\u043b, \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e!<\/em><\/p>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u0432\u0435\u0442! \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0434\u043e\u043a\u043b\u0430\u0434! \u0423 \u043c\u0435\u043d\u044f, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e \u0442\u0435\u043c\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u0430, \u043d\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0437\u0430\u0434\u0430\u043c. \u041a\u0430\u043a\u0438\u0435 \u043f\u043b\u0430\u043d\u044b \u0443 VM \u043f\u043e downsampling?<\/em><\/p>\n<p>  <\/p>\n<p>\u042f \u0436\u0434\u0430\u043b \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435! \u041d\u0430\u043c \u0435\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u044e\u0442. \u041c\u044b \u043d\u0430\u0434 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c. \u042f \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0432 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0432\u0438\u0434\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0433\u043e\u0434\u0430. \u041f\u043e\u043a\u0430 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u044b\u0445 \u0441\u0440\u043e\u043a\u043e\u0432 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442. <\/p>\n<p>  <\/p>\n<p><em>\u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0443 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432?<\/em><\/p>\n<p>  <\/p>\n<p>\u041e\u043d \u0443\u0436\u0435 \u0435\u0441\u0442\u044c. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439. \u0422\u0430\u043c \u0435\u0441\u0442\u044c Web UI. \u041e\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u0441\u0442\u0430\u043b. \u0422\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0440\u043e\u043b\u0438\u0442\u044c, \u043b\u0438\u0441\u0442\u0430\u0442\u044c, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438. \u0418 \u0434\u0430\u0436\u0435 \u0443 VMalert \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 UI. \u041c\u044b \u043d\u0430\u0434 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c, \u043e\u043d\u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f.<\/p>\n<p>  <\/p>\n<p><em>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0434\u043e\u043a\u043b\u0430\u0434! \u041a\u0430\u043a \u0443 \u0432\u0430\u0441 \u0434\u0435\u043b\u0430 \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u0441 <a href=\"https:\/\/www.redhat.com\/en\/technologies\/cloud-computing\/openshift\" rel=\"nofollow noopener noreferrer\">OpenShift<\/a>? \u0415\u0441\u0442\u044c \u0443 \u0432\u0430\u0441 \u0441 \u043d\u0438\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f?<\/em><\/p>\n<p>  <\/p>\n<p>\u041b\u0438\u0447\u043d\u043e \u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441 <a href=\"https:\/\/www.redhat.com\/en\/technologies\/cloud-computing\/openshift\" rel=\"nofollow noopener noreferrer\">OpenShift<\/a> \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 deployment. \u0418 \u043e\u043d \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u043e, \u0447\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 OpenShift \u0438 \u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0432\u0441\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u041d\u0430\u0441\u0447\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <a href=\"https:\/\/www.redhat.com\/en\/technologies\/cloud-computing\/openshift\" rel=\"nofollow noopener noreferrer\">OpenShift<\/a> \u2013 \u044f \u043d\u0435 \u0432 \u043a\u0443\u0440\u0441\u0435. \u042f \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u043b, \u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. <\/p>\n<p>  <\/p>\n<p><em>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438, \u043a\u0430\u043a \u0412\u0438\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u0430\u0434\u0430\u0435\u0442? \u041a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u044f\u0440\u043a\u0438\u0435, \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043a\u0435\u0439\u0441\u044b?<\/em><\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043f\u0430\u0434\u0430\u0435\u0442 \u0438 \u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u044d\u0442\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0441\u0442\u0440\u043e\u044f \u043e\u0434\u043d\u0430 \u0438\u0437 storage node \u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d, \u0442\u043e \u043e\u043d \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u044f\u0434\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 storage nodes. \u0422\u0430\u043a\u043e\u0435 \u0431\u044b\u0432\u0430\u0435\u0442, \u043c\u044b \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<p>  <\/p>\n<p>P.S. \u0427\u0430\u0442 \u043f\u043e VictoriaMetrics <a href=\"https:\/\/t.me\/VictoriaMetrics_ru1\" rel=\"nofollow noopener noreferrer\">https:\/\/t.me\/VictoriaMetrics_ru1<\/a><\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0435\u043a\u043b\u0430\u043c\u044b: \u041d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 <a href=\"https:\/\/rotoro.cloud\/\" rel=\"nofollow noopener noreferrer\">https:\/\/rotoro.cloud\/<\/a> \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043a\u0443\u0440\u0441\u044b \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u043d\u044f\u0442\u0438\u044f\u043c\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/ansible-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Ansible \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/certified-kubernetes-administrator-cka-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Certified Kubernetes Administrator (CKA) + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/docker-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Docker \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/kubernetes-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Kubernetes \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/terraform-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Terraform \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/wiki-practice\/\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 IT (Linux, Docker, git, Jenkins)<\/a><\/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\/586206\/\"> https:\/\/habr.com\/ru\/articles\/586206\/<\/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-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/dy\/xx\/2o\/dyxx2omqfakjaexoiytae-23jg4.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/dy\/xx\/2o\/dyxx2omqfakjaexoiytae-23jg4.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043a\u0430\u043a \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 VictoriaMetrics \u0437\u0430\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c kubernetes. \u041e\u0442\u043a\u0443\u0434\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0446\u0435\u043b\u0438. \u0427\u0435\u0440\u043d\u0430\u044f \u043c\u0430\u0433\u0438\u044f \u0440\u0435\u043b\u0435\u0439\u0431\u043b\u0438\u043d\u0433\u0430 \u0438 \u043a\u0430\u043a \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u0438\u0445 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442<\/p>\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-385353","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/385353","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=385353"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/385353\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=385353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=385353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=385353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}