{"id":428645,"date":"2024-08-08T09:00:31","date_gmt":"2024-08-08T09:00:31","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=428645"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=428645","title":{"rendered":"<span>\u041f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u043e\u0431\u043b\u0430\u043a\u0430: K8S \u043f\u043e \u0441\u043b\u0435\u0434\u0430\u043c \u00c6nix \u0441 gohost. \u0427\u0430\u0441\u0442\u044c 1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Cozystack<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fda\/b53\/888\/fdab538887a8b177c2e100a2172b4e7c.png\" width=\"2190\" height=\"1230\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fda\/b53\/888\/fdab538887a8b177c2e100a2172b4e7c.png\"\/><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u042f \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u041a\u0430\u0440\u0430\u0431\u0430\u0441\u043e\u0432, \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u043a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u043a\u043e\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 gohost. \u0421\u044e\u0434\u0430 \u044f \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0438\u0437 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u0434\u0430\u043b \u0431\u0435\u0437 \u043c\u0430\u043b\u043e\u0433\u043e 20 \u043b\u0435\u0442, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0431\u044b\u043b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0426\u0435\u043d\u0442\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439.<\/p>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 gohost.kz \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0430 \u0443\u0436\u0435 15 \u043b\u0435\u0442 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0443\u0441\u043b\u0443\u0433: VPS\/VDC, IaaS, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0438 \u0442.\u0434. \u041e\u0434\u043d\u0430\u043a\u043e \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Kubernetes as a Service.<\/p>\n<p>\u0422\u0430\u043a \u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u043c\u043e\u0435 \u00ab\u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e 2.0\u00bb \u0441 *nix-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 (\u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u2014 \u0441 <a href=\"https:\/\/www.talos.dev\"><u>Talos Linux<\/u><\/a>), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0438\u0440\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 (\u0447\u0435\u0440\u0435\u0437 Kubernetes). \u0420\u0435\u0448\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 Open Source-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 <a href=\"http:\/\/cozystack.io\"><u>Cozystack<\/u><\/a> \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u0435\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u2014 \u0410\u043d\u0434\u0440\u0435\u0435\u043c \u041a\u0432\u0430\u043f\u0438\u043b\u043e\u043c \u0438 \u0413\u0435\u043e\u0440\u0433\u0438\u0435\u043c \u0413\u0430\u0430\u043b\u043e\u043c. \u041c\u044b \u043f\u043e\u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0443 \u0441\u0435\u0431\u044f Kubenetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Cozystack, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 Talos Linux.\u00a0<\/p>\n<p>\u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u0435\u043d\u044f \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u043e \u0432 Cozystack:<\/p>\n<ul>\n<li>\n<p>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Kubernetes control-plane.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Kubernetes control-plane, \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044f \u0432\u043e\u0440\u043a\u0435\u0440\u044b \u043a\u0430\u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438 \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u044f \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>Talos Linux, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u2014 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0433\u043e <a href=\"https:\/\/t.me\/kubernetes_ru\"><u>\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 Kubernetes<\/u><\/a> \u0438 \u0432\u043d\u043e\u0441\u044f\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 Open Source, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u044f \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e <a href=\"https:\/\/t.me\/etcd_operator\/\"><u>etcd-operator<\/u><\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e gohost \u0441 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0430 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u043c\u0441\u044f \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u0435\u0435 \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0443\u0441\u043b\u0443\u0433\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 Cozystack.<\/p>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043c\u0435\u043d\u044f \u043f\u043e\u0434\u0432\u0438\u0433\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u0435\u0439: \u044f \u0445\u043e\u0442\u0435\u043b \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Cozystack \u043d\u0430 Talos Linux, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b Kubernetes, \u0430 \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043d\u0430\u0439\u0434\u0443\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u2014 \u0432 \u043e\u0431\u0449\u0435\u043c, \u044d\u0442\u043e \u043c\u043e\u044f \u0441\u043a\u0440\u043e\u043c\u043d\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0447\u0442\u043e-\u0442\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443. \u0418\u0442\u0430\u043a, \u043d\u0430\u0447\u043d\u0435\u043c.\u00a0<\/p>\n<h3>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/h3>\n<p>\u0425\u043e\u0442\u044f Cozystack \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0436\u0435\u043b\u0435\u0437\u0435, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0438 \u0432 \u043b\u044e\u0431\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u2014 \u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0447\u0438\u043d\u0430\u043b \u0441 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Proxmox_Virtual_Environment\"><u>Proxmox<\/u><\/a> \u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/KVM\"><u>KVM<\/u><\/a>.<\/p>\n<p>\u041d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0441\u0435\u0442\u0430\u043f\u0430 \u2014 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435:<\/p>\n<ol>\n<li>\n<p>VPS 2G\/2CPU (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u041f\u041a) \u2014 1\u00a0\u0448\u0442.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440 \u2014 2\u00a0\u0448\u0442. (\u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212;\u00a0 \u0434\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0443.\u0420\u0438\u0441 1.) \u0438\u043b\u0438 1\u00a0\u0448\u0442. (\u0431\u0435\u0437 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0420\u0438\u0441 2.).<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440\u044b \u0441\u00a0 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u043d\u0430 NVMe-\u0434\u0438\u0441\u043a\u0430\u0445 (\u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432) \u0438 SSD-\u0434\u0438\u0441\u043a\u0438 (\u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b). \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u2014 3\u00a0\u0448\u0442.<\/p>\n<\/li>\n<\/ol>\n<p>\u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0421\u0425\u0414, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0441\u0432\u044f\u0437\u043a\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/DRBD\"><u>DRBD<\/u><\/a> + <a href=\"https:\/\/linbit.com\/linstor\/\"><u>Linstor<\/u><\/a> (\u0442\u0430\u043a\u0438\u0435 \u0421\u0425\u0414 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0443 \u0441\u0435\u0431\u044f \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 \u043f\u043e\u0434 VPS, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438).<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u0441\u0445\u0435\u043c\u0430 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f Cozystack \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0420\u0438\u0441 1. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0446\u0438\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0437\u0430 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438.\u00a0<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/78e\/ca0\/e54\/78eca0e54a75866ae165b69f91f211ee.png\" alt=\"\u0420\u0438\u0441. 1. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u0440\u0442\u043e\u0432\" title=\"\u0420\u0438\u0441. 1. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u0440\u0442\u043e\u0432\" width=\"816\" height=\"661\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/78e\/ca0\/e54\/78eca0e54a75866ae165b69f91f211ee.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 1. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u0440\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/27e\/b56\/e7b\/27eb56e7b88b88fb273df818a3817902.png\" alt=\"\u0420\u0438\u0441. 2. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0431\u0435\u0437 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\" title=\"\u0420\u0438\u0441. 2. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0431\u0435\u0437 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\" width=\"816\" height=\"661\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/27e\/b56\/e7b\/27eb56e7b88b88fb273df818a3817902.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 2. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0431\u0435\u0437 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 (SRV1, SRV2, SRV3). \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 management-\u0445\u043e\u0441\u0442. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0448\u043b\u044e\u0437\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e SRV1, SRV2, SRV3 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 management-\u0445\u043e\u0441\u0442. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430 management-\u0445\u043e\u0441\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u0430 iptables. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0448\u043b\u044e\u0437 \u2014 management-\u0445\u043e\u0441\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043b\u0438\u0448\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 management-\u0445\u043e\u0441\u0442\u0430\u00a0<\/h3>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c management-\u0445\u043e\u0441\u0442, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f\u00a0 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Cozystack. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e, \u0447\u0442\u043e \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0445\u043e\u0441\u0442 c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0443\u0449\u0443, \u2014 \u0441\u0430\u043c \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Ubuntu 22.04.\u00a0<\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e management-\u0445\u043e\u0441\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0438\u043c bash-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u0440\u0443\u0442\u0438\u043d\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0445\u043e\u0441\u0442\u0430. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432: talosctl v1.7.1 \u0438 kubectl v1.30.1.<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash  RED='\\033[0;31m' GREEN='\\033[0;32m' YELLOW='\\033[1;33m' NC='\\033[0m' # No Color  apt update apt upgrade -y apt -y install ntp bind9 curl jq nload  service ntp restart #service ntp status sed -i -r 's\/listen-on-v6\/listen-on\/g'  \/etc\/bind\/named.conf.options  sed -i '\/listen-on\/a \\\\tallow-query { any; };'  \/etc\/bind\/named.conf.options  apt -y  install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg  echo \"deb [arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null  apt update apt install  -y docker-ce snapd make dialog nmap  #systemctl status docker #curl -sL https:\/\/talos.dev\/install | sh  releases=$(curl -s https:\/\/api.github.com\/repos\/siderolabs\/talos\/releases | jq -r '.[].tag_name' | head -n 10) echo -e \"${YELLOW}\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f:${NC}\" select version in $releases; do     if [[ -n \"$version\" ]]; then         echo \"\u0412\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u044e $version\"         break     else         echo -e \"${RED}\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437. ${NC}\"     fi done url=\"https:\/\/github.com\/siderolabs\/talos\/releases\/download\/$version\/talosctl-linux-amd64\" wget $url -O talosctl chmod +x talosctl sudo mv talosctl \/usr\/local\/bin\/ #kubectl releases=$(curl -s https:\/\/api.github.com\/repos\/kubernetes\/kubernetes\/releases | jq -r '.[].tag_name' | grep -E '^v[0-9]+\\.[0-9]+\\.[0-9]+$' | head -n 10) echo -e \"${YELLOW}\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e kubectl \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f:${NC}\" select version in $releases; do     if [[ -n \"$version\" ]]; then         echo  \"\u0412\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u044e $version\"         break     else         echo -e \"${RED}\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437. ${NC}\"     fi done url=\"https:\/\/storage.googleapis.com\/kubernetes-release\/release\/$version\/bin\/linux\/amd64\/kubectl\" wget $url -O kubectl chmod +x kubectl sudo mv kubectl \/usr\/local\/bin\/  curl -fsSL -o get_helm.sh https:\/\/raw.githubusercontent.com\/helm\/helm\/main\/scripts\/get-helm-3 chmod 700 get_helm.sh .\/get_helm.sh  curl -LO https:\/\/github.com\/kvaps\/kubectl-node-shell\/raw\/master\/kubectl-node_shell chmod +x .\/kubectl-node_shell sudo mv .\/kubectl-node_shell \/usr\/local\/bin\/kubectl-node_shell  curl -LO https:\/\/github.com\/aenix-io\/talm\/releases\/download\/v0.5.7\/talm-linux-amd64 chmod +x .\/talm-linux-amd64 sudo mv .\/talm-linux-amd64 \/usr\/local\/bin\/talm   echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432,\" echo -e \"\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 ${GREEN}\/opt\/${NC}. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: ${GREEN}\/opt\/cozystack${NC}\" echo -e \"${YELLOW}\" read -p \"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438: \" cozystack echo -e \"${NC}\" if [ -z \"$cozystack\" ]; then       cozystack=\"cozystack\"  fi mkdir -p \/opt\/$cozystack curl -LO https:\/\/github.com\/aenix-io\/talos-bootstrap\/raw\/master\/talos-bootstrap mv talos-bootstrap \/opt\/$cozystack chmod +x \/opt\/$cozystack\/talos-bootstrap snap install  yq echo -e \"${YELLOW}\u0423\u043a\u0430\u0436\u0438\u0442\u0435 IP-\u0441\u0435\u0442\u044c \u0434\u043b\u044f  etcd \u0438 kubelet${NC}\" echo -e \"\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: ${GREEN} 192.168.100.0\/24 ${NC}\" read -p \"IP-\u0441\u0435\u0442\u044c (network\/mask): \" IPEK  if [ -z \"$IPEK\" ]; then       IPEK=\"192.168.100.0\/24\"  fi #ADD FORWARD (RELATED,ESTABLISHED) rule1=\"-d $IPEK -m state --state RELATED,ESTABLISHED -m comment --comment $cozystack -j ACCEPT\" if ! iptables-save | grep -q -- \"-A FORWARD $rule1\"; then     iptables -I FORWARD -d $IPEK -m state --state RELATED,ESTABLISHED -m comment --comment $cozystack -j ACCEPT fi # ADD FORWARD rule2=\"-s $IPEK -m comment --comment $cozystack -j ACCEPT\" if ! iptables-save | grep -q -- \"-A FORWARD $rule2\"; then     iptables -I FORWARD -s $IPEK -m comment --comment $cozystack -j ACCEPT fi # ADD NAT rule3=\"-s $IPEK -m comment --comment $cozystack -j MASQUERADE\" if ! iptables-save | grep -q -- \"-A POSTROUTING $rule3\"; then     iptables -t nat -I POSTROUTING -s $IPEK -m comment --comment $cozystack -j MASQUERADE fi #sysctl -w net.ipv4.ip_forward=1 if ! grep -qF \"$REQUIRED_SETTING\" \"$FILE\"; then   echo \"net.ipv4.ip_forward = 1\" | sudo tee -a \"\/etc\/sysctl.conf\" &gt; \/dev\/null  fi sysctl -p apt -y install iptables-persistent   cat &gt; \/opt\/$cozystack\/patch.yaml &lt;&lt;EOT machine:   kubelet:     nodeIP:       validSubnets:       - $IPEK     extraConfig:       maxPods: 512   kernel:     modules:     - name: openvswitch     - name: drbd       parameters:         - usermode_helper=disabled     - name: zfs     - name: spl   install:     image: ghcr.io\/aenix-io\/cozystack\/talos:v1.7.1   files:   - content: |       [plugins]         [plugins.\"io.containerd.grpc.v1.cri\"]           device_ownership_from_security_context = true           path: \/etc\/cri\/conf.d\/20-customization.part     op: create cluster:   network:     cni:       name: none     dnsDomain: cozy.local     podSubnets:     - 10.244.0.0\/16     serviceSubnets:     - 10.96.0.0\/16 EOT  cat &gt; \/opt\/$cozystack\/patch-controlplane.yaml &lt;&lt;EOT cluster:   allowSchedulingOnControlPlanes: true   controllerManager:     extraArgs:       bind-address: 0.0.0.0   scheduler:     extraArgs:       bind-address: 0.0.0.0   apiServer:     certSANs:     - 127.0.0.1   proxy:     disabled: true   discovery:     enabled: false   etcd:     advertisedSubnets:     - $IPEK EOT  echo -e \"${YELLOW}========== Installed binary ===========${NC}\" echo \"helm       in folder\" $(which helm) echo \"yq         in folder\" $(which yq) echo \"kubectl    in folder\" $(which kubectl) echo \"docker     in folder\" $(which  docker) echo \"talosctl   in folder\" $(which  talosctl) echo \"dialog     in folder\" $(which  dialog) echo \"nmap       in folder\" $(which  nmap) echo \"talm       in folder\" $(which  talm) echo \"node_shell       in folder\" $(which  kubectl-node_shell) echo -e \"${YELLOW}========== services runing ===========${NC}\" echo \"DNS Bind9\"; systemctl is-active bind9  echo \"NTP\"; systemctl is-active ntp echo -e \"${YELLOW}========== ADD Iptables Rule ===========${NC}\" iptables -S | grep $cozystack iptables -t nat -S | grep $cozystack echo -e \"${RED}!!!  Please change the catalog to work with talos-bootstrap !!!${NC}\" echo -e \"${GREEN}cd  \/opt\/$cozystack ${NC}\"<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442: \u043e\u043d \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 helm, yq, kubectl, docker, talosctl, dialog, nmap, make, kubectl-node-shell, <a href=\"https:\/\/github.com\/aenix-io\/talm\"><u>talm<\/u><\/a> (\u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u0430\u044f Open Source-\u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Cozy Stack \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Talos Linux \u2014 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 Helm \u0434\u043b\u044f Talos), \u0430 \u043f\u043e\u0442\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043f\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u043c. \u0412\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0438\u0430\u043b\u043e\u0433\u0430\u043c\u0438. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0443\u0436\u0431\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 NTP, \u0441\u043b\u0443\u0436\u0431\u0430 \u0434\u043e\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u043d bind9 \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 management-\u0445\u043e\u0441\u0442.\u00a0<\/p>\n<p>\u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u00a0 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>\/opt\/\u0432\u0430\u0448\u0435_\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>\/opt\/cozystack<\/code>) \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442 <a href=\"https:\/\/github.com\/aenix-io\/talos-bootstrap\"><u>talos-bootstrap<\/u><\/a> \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438: <code>patch-controlplane.yaml<\/code>, <code>patch.yaml<\/code>. \u0412 \u0444\u0430\u0439\u043b\u0430\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043c\u043e\u0434\u0443\u043b\u0438 \u044f\u0434\u0440\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0438 \u043e\u0431\u0440\u0430\u0437 \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/18a\/65b\/aed\/18a65baedf5cfeafd1d37a4efb374200.png\" alt=\"\u0420\u0438\u0441. 3. \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \/opt\/cozystack\" title=\"\u0420\u0438\u0441. 3. \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \/opt\/cozystack\" width=\"611\" height=\"72\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/18a\/65b\/aed\/18a65baedf5cfeafd1d37a4efb374200.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 3. \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \/opt\/cozystack<\/figcaption><\/div>\n<\/figure>\n<p>\u0423\u0440\u0430! Management-\u0445\u043e\u0441\u0442 \u0433\u043e\u0442\u043e\u0432 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.\u00a0<\/p>\n<h3>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441 \u043e\u0431\u0440\u0430\u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Talos Linux\u00a0<\/h3>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f Cozystack, \u2014 \u044d\u0442\u043e Talos Linux.<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Cozystack:<\/p>\n<blockquote>\n<p><strong>PXE<\/strong> \u2014 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 DHCP- \u0438 PXE-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0432 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445.<\/p>\n<p><strong>ISO<\/strong> \u2014 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c ISO-\u043e\u0431\u0440\u0430\u0437\u043e\u0432.<\/p>\n<p><strong>Hetzner<\/strong> \u2014 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u044b Hetzner.<\/p>\n<\/blockquote>\n<p>\u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 <a href=\"https:\/\/github.com\/aenix-io\/cozystack\/releases\"><u>ISO-\u0444\u0430\u0439\u043b<\/u><\/a>. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Cozystack \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0441\u043e \u0432\u0441\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u00a0 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c. \u0412\u0441\u0451 \u041f\u041e \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0438 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u043c Talos Linux.<\/p>\n<h3>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/h3>\n<p>\u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043a\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 \u043e\u0431\u0440\u0430\u0437\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2014 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c F3 (\u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c PXE-\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443, \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f \u043d\u0430 \u043d\u043e\u0434\u0430\u0445 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b6c\/16d\/0da\/b6c16d0da2661a1edbcf154e0adcb475.png\" alt=\"\u0420\u0438\u0441. 4. \u042d\u043a\u0440\u0430\u043d Talos Linux \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\" title=\"\u0420\u0438\u0441. 4. \u042d\u043a\u0440\u0430\u043d Talos Linux \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\" width=\"1293\" height=\"973\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b6c\/16d\/0da\/b6c16d0da2661a1edbcf154e0adcb475.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 4. \u042d\u043a\u0440\u0430\u043d Talos Linux \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0435\u0442\u0438 \u2014 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e DNS \u0438 Time Servers (\u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b \u0438\u043b\u0438 \u0437\u0430\u043f\u044f\u0442\u0443\u044e). \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abSave\u00bb.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fd8\/f3b\/efe\/fd8f3befe946e1f33351f77f20938665.png\" alt=\"\u0420\u0438\u0441. 5. \u042d\u043a\u0440\u0430\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00a0 Talos Linux\u00a0\" title=\"\u0420\u0438\u0441. 5. \u042d\u043a\u0440\u0430\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00a0 Talos Linux\u00a0\" width=\"1334\" height=\"980\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fd8\/f3b\/efe\/fd8f3befe946e1f33351f77f20938665.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 5. \u042d\u043a\u0440\u0430\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00a0 Talos Linux\u00a0<\/figcaption><\/div>\n<\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b. \u042f \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0441\u0432\u043e\u044e \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u0435-\u0433\u0434\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0431\u043b\u044e\u0440\u0435\u043d\u044b.<\/p>\n<h3>\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e talos-bootstrap<\/h3>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0444\u0430\u0439\u043b <code>.\/talos-bootstrap<\/code> \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0440\u0430\u0432\u043a\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b99\/6e8\/20d\/b996e820db5ce6cf733f560a43557716.png\" alt=\"\u0420\u0438\u0441. 6. talos-bootstrap (\u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a)\" title=\"\u0420\u0438\u0441. 6. talos-bootstrap (\u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a)\" width=\"586\" height=\"259\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b99\/6e8\/20d\/b996e820db5ce6cf733f560a43557716.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 6. talos-bootstrap (\u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a)<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <code>.\/talos-bootstrap install<\/code> \u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0436\u0435 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435 \u043e\u043d \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u2014 \u043e\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043b\u0435\u0436\u0438\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u043c\u044f \u0431\u0443\u0434\u0435\u0442 <code>cozystack<\/code>, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u043b\u0438 \u0441\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0fc\/9b4\/683\/0fc9b46831d6f5d242eebe1eff16e701.png\" alt=\"\u0420\u0438\u0441. 7. talos-bootstrap (\u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430)\" title=\"\u0420\u0438\u0441. 7. talos-bootstrap (\u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430)\" width=\"699\" height=\"249\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0fc\/9b4\/683\/0fc9b46831d6f5d242eebe1eff16e701.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 7. talos-bootstrap (\u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430)<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0434\u0430\u0435\u043c \u0441\u0435\u0442\u044c \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043d\u043e\u0434.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ed8\/15b\/056\/ed815b05605da0be64b2aff8f3c2f2d8.png\" alt=\"\u0420\u0438\u0441. 8. talos-bootstrap (\u043f\u043e\u0438\u0441\u043a \u043d\u043e\u0434 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438)\" title=\"\u0420\u0438\u0441. 8. talos-bootstrap (\u043f\u043e\u0438\u0441\u043a \u043d\u043e\u0434 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438)\" width=\"699\" height=\"249\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ed8\/15b\/056\/ed815b05605da0be64b2aff8f3c2f2d8.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 8. talos-bootstrap (\u043f\u043e\u0438\u0441\u043a \u043d\u043e\u0434 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438)<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0439\u0434\u0435\u0442 \u043d\u043e\u0434\u044b \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0438\u0445 \u2014\u00a0\u043a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u0448\u043b\u0438\u0441\u044c \u0432\u0441\u0435 \u0442\u0440\u0438 \u043d\u0430\u0448\u0438\u0445 \u043d\u043e\u0434\u044b. \u041d\u0430 management-\u0445\u043e\u0441\u0442\u0435 \u043f\u043e\u0434 \u041e\u0421 AlmaLinux \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0443 \u043c\u0435\u043d\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043d\u043e\u0434, \u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b \u043d\u0430 Ubuntu.<\/p>\n<p>\u041d\u043e\u0434\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">nmap -Pn -n -p 50000 \u0432\u0430\u0448\u0430_ip_\u0441\u0435\u0442\u044c  -vv|awk '\/Discovered open port\/ {print $NF}'<\/code><\/pre>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a IP.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/22d\/26e\/a39\/22d26ea39b7bce33f035ae13602bbad6.png\" alt=\"\u0420\u0438\u0441. 9. talos-bootstrap (\u0432\u044b\u0431\u043e\u0440 \u043d\u043e\u0434\u044b \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438)\" title=\"\u0420\u0438\u0441. 9. talos-bootstrap (\u0432\u044b\u0431\u043e\u0440 \u043d\u043e\u0434\u044b \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438)\" width=\"1111\" height=\"298\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/22d\/26e\/a39\/22d26ea39b7bce33f035ae13602bbad6.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 9. talos-bootstrap (\u0432\u044b\u0431\u043e\u0440 \u043d\u043e\u0434\u044b \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438)<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0443\u043d\u043a\u0442 \u00abControlPlane\u00bb \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c OK (\u0432\u0441\u0435 3 \u043d\u043e\u0434\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a Control Plane).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/807\/de0\/580\/807de0580332437bbe88492151990877.png\" alt=\"\u0420\u0438\u0441. 10. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u043e\u043b\u044c \u043d\u043e\u0434\u044b ControlPlane)\" title=\"\u0420\u0438\u0441. 10. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u043e\u043b\u044c \u043d\u043e\u0434\u044b ControlPlane)\" width=\"699\" height=\"249\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/807\/de0\/580\/807de0580332437bbe88492151990877.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 10. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u043e\u043b\u044c \u043d\u043e\u0434\u044b ControlPlane)<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0431\u0435\u0440\u0435\u0442 \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441 \u043d\u043e\u0434 (\u043c\u044b \u0438\u0445 \u0432\u043d\u0435\u0441\u043b\u0438 \u043d\u0430 \u043d\u043e\u0434\u044b, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 Talos Linux, \u0420\u0438\u0441. 5) \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0438\u0445 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0451 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cbb\/ada\/4d0\/cbbada4d06c47a68e0cadc4c4b307d5a.png\" alt=\"\u0420\u0438\u0441. 11. talos-bootstrap (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430)\" title=\"\u0420\u0438\u0441. 11. talos-bootstrap (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430)\" width=\"699\" height=\"249\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cbb\/ada\/4d0\/cbbada4d06c47a68e0cadc4c4b307d5a.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 11. talos-bootstrap (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430)<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0438\u0441\u043a, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u2014 \u0443 \u043c\u0435\u043d\u044f \u044d\u0442\u043e <code>sda<\/code>.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bab\/032\/499\/bab032499535a0f4fc6adc61494445cb.png\" alt=\"\u0420\u0438\u0441. 12. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0438\u0441\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)\" title=\"\u0420\u0438\u0441. 12. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0438\u0441\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)\" width=\"1600\" height=\"234\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bab\/032\/499\/bab032499535a0f4fc6adc61494445cb.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 12. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0438\u0441\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0448 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 c \u043f\u0440\u0435\u0434\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c IP-\u0430\u0434\u0440\u0435\u0441\u043e\u043c (\u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e <code>eno4<\/code>). \u0421\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abOK\u00bb.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c1e\/c48\/8c2\/c1ec488c27c9e6636708aebc9ebb9e45.png\" alt=\"\u0420\u0438\u0441. 13. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441)\" title=\"\u0420\u0438\u0441. 13. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441)\" width=\"706\" height=\"272\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c1e\/c48\/8c2\/c1ec488c27c9e6636708aebc9ebb9e45.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 13. talos-bootstrap (\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441)<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0448 \u0448\u043b\u044e\u0437, \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a08\/5b9\/0b1\/a085b90b1f5e0ddd5aaf70a36850e11c.png\" alt=\"\u0420\u0438\u0441. 14. talos-bootstrap (\u0448\u043b\u044e\u0437, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442)\" title=\"\u0420\u0438\u0441. 14. talos-bootstrap (\u0448\u043b\u044e\u0437, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442)\" width=\"451\" height=\"190\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a08\/5b9\/0b1\/a085b90b1f5e0ddd5aaf70a36850e11c.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 14. talos-bootstrap (\u0448\u043b\u044e\u0437, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442)<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043a\u043d\u043e \u0432\u0432\u043e\u0434\u0430 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 DNS-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abOK\u00bb.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2dc\/9aa\/c0e\/2dc9aac0eb201992f817128d747d1c1f.png\" alt=\"\u0420\u0438\u0441. 15. talos-bootstrap (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c DNS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438)\" title=\"\u0420\u0438\u0441. 15. talos-bootstrap (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c DNS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438)\" width=\"1124\" height=\"419\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2dc\/9aa\/c0e\/2dc9aac0eb201992f817128d747d1c1f.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 15. talos-bootstrap (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c DNS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438)<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u043a\u043e\u0448\u043a\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0439 IP (\u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432 Talos \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 VRRP, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f etcd-\u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 \u043d\u0430 Control Plane-\u043d\u043e\u0434\u0430\u0445. \u041f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0439 IP \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u00a0 \u0432 \u0441\u0435\u0442\u0438: \u043e\u043d \u043a\u0430\u043a \u0431\u044b \u00ab\u043f\u043b\u0430\u0432\u0430\u0435\u0442\u00bb \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0412\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u044e\u0434\u0430 \u043b\u044e\u0431\u043e\u0439 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 IP \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438 (\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0442 \u0436\u0435, \u0447\u0442\u043e \u0438 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c <code>192.168.100.10<\/code>) \u2014 \u044d\u0442\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 IP \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/883\/c44\/812\/883c448123309ee897deac10cae16d18.png\" alt=\"\u0420\u0438\u0441. 16. talos-bootstrap (\u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0439 IP)\" title=\"\u0420\u0438\u0441. 16. talos-bootstrap (\u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0439 IP)\" width=\"723\" height=\"225\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/883\/c44\/812\/883c448123309ee897deac10cae16d18.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 16. talos-bootstrap (\u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0439 IP)<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0435 \u043e\u043a\u043d\u043e \u0441 \u043d\u0430\u0448\u0438\u043c IP. \u0421\u043d\u043e\u0432\u0430 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u043c\u0441\u044f.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9a6\/259\/cbf\/9a6259cbff13a8d4a61019f3e6e27405.png\" alt=\"\u0420\u0438\u0441. 17. talos-bootstrap (API - \u043a\u0443\u0434\u0430 \u0445\u043e\u0434\u044f\u0442 kublet)\" title=\"\u0420\u0438\u0441. 17. talos-bootstrap (API - \u043a\u0443\u0434\u0430 \u0445\u043e\u0434\u044f\u0442 kublet)\" width=\"350\" height=\"175\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9a6\/259\/cbf\/9a6259cbff13a8d4a61019f3e6e27405.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 17. talos-bootstrap (API &#8212; \u043a\u0443\u0434\u0430 \u0445\u043e\u0434\u044f\u0442 kublet)<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043a \u043c\u0430\u0441\u0442\u0435\u0440-\u043d\u043e\u0434\u0435.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1b5\/972\/c12\/1b5972c126a43af584b84b7a54492b05.png\" alt=\"\u0420\u0438\u0441. 18. talos-bootstrap (\u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)\" title=\"\u0420\u0438\u0441. 18. talos-bootstrap (\u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)\" width=\"403\" height=\"416\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1b5\/972\/c12\/1b5972c126a43af584b84b7a54492b05.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 18. talos-bootstrap (\u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c OK \u0438 \u0436\u0434\u0435\u043c \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430. \u041d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043d\u043e\u0434\u0435 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c1c\/ba3\/b46\/c1cba3b467e59cffeb79f2ee754a7e05.png\" alt=\"\u0420\u0438\u0441. 19. talos-bootstrap (\u044d\u043a\u0440\u0430\u043d Talos Linux)\" title=\"\u0420\u0438\u0441. 19. talos-bootstrap (\u044d\u043a\u0440\u0430\u043d Talos Linux)\" width=\"811\" height=\"157\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c1c\/ba3\/b46\/c1cba3b467e59cffeb79f2ee754a7e05.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 19. talos-bootstrap (\u044d\u043a\u0440\u0430\u043d Talos Linux)<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442-\u0445\u043e\u0441\u0442\u0435 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 (\u0443\u0442\u0438\u043b\u0438\u0442\u0430 nload) \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0438\u0437 \u0441\u0435\u0442\u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0437.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b7\/02d\/0bb\/4b702d0bb314f0c7780884385392ef70.png\" alt=\"\u0420\u0438\u0441. 20. nload (\u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0435\u0442\u044c)\" title=\"\u0420\u0438\u0441. 20. nload (\u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0435\u0442\u044c)\" width=\"1388\" height=\"338\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4b7\/02d\/0bb\/4b702d0bb314f0c7780884385392ef70.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 20. nload (\u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0435\u0442\u044c)<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430, \u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441-\u0431\u0430\u0440 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 20%, \u043f\u043e\u0442\u043e\u043c 50%, \u043f\u043e\u0442\u043e\u043c 70%. \u0412\u043e\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430 70% \u043d\u043e\u0434\u0430 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f. \u0421\u043d\u043e\u0432\u0430 \u0436\u0434\u0435\u043c \u2014 \u0442\u0443\u0442 \u0432\u0441\u0451 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f: \u0447\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u0442\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5a2\/cec\/727\/5a2cec727a03e8b76a9ad558d5e6db2a.png\" alt=\"\u0420\u0438\u0441. 21. talos-bootstrap (\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)\" title=\"\u0420\u0438\u0441. 21. talos-bootstrap (\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)\" width=\"707\" height=\"349\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5a2\/cec\/727\/5a2cec727a03e8b76a9ad558d5e6db2a.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 21. talos-bootstrap (\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438)<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u043d\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c etcd, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abYes\u00bb.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/740\/3e8\/929\/7403e89299f815f16a0215b729dd069a.png\" alt=\"\u0420\u0438\u0441. 22. talos-bootstrap (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 etcd)\" title=\"\u0420\u0438\u0441. 22. talos-bootstrap (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 etcd)\" width=\"707\" height=\"349\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/740\/3e8\/929\/7403e89299f815f16a0215b729dd069a.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 22. talos-bootstrap (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 etcd)<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430. \u0418\u0442\u0430\u043a, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u043d\u043e\u0434\u044b.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9c9\/ea8\/d55\/9c9ea8d556cfdb606a8c5627fc4101f1.png\" alt=\"\u0420\u0438\u0441. 23. talos-bootstrap (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430)\" title=\"\u0420\u0438\u0441. 23. talos-bootstrap (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430)\" width=\"330\" height=\"195\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9c9\/ea8\/d55\/9c9ea8d556cfdb606a8c5627fc4101f1.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 23. talos-bootstrap (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430)<\/figcaption><\/div>\n<\/figure>\n<p>\u0423\u0440\u0430! \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f \u043d\u043e\u0434\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>\/opt\/\u0432\u0430\u0448\u0435_\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/code> \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u2014 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>ls<\/code> \u0434\u043e\u043b\u0436\u043d\u0430 \u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0432\u043e\u0434:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e45\/595\/e00\/e45595e00080eba9f241d7540cc2bda1.png\" alt=\"\u0420\u0438\u0441. 24. \u041d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\" title=\"\u0420\u0438\u0441. 24. \u041d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\" width=\"643\" height=\"167\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e45\/595\/e00\/e45595e00080eba9f241d7540cc2bda1.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 24. \u041d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u044f\u0434 \u043a\u043e\u043c\u0430\u043d\u0434 \u2014 \u043e\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0443\u0442 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u042d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b kubectl \u0438 talosctl.\u00a0<\/p>\n<pre><code class=\"bash\">mkdir $HOME\/.kube\/ mkdir $HOME\/.talos\/ cp -i kubeconfig $HOME\/.kube\/config cp -i talosconfig $HOME\/.talos\/config<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e: \u0434\u043b\u044f talosctl \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>talosctl --talosconfig=config_file<\/code>, \u0430 \u0434\u043b\u044f kubectl \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <code>KUBECONFIG=config_file<\/code> (\u0431\u0443\u0434\u0435\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0435\u0441\u0441\u0438\u0438), \u043b\u0438\u0431\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>kubectl --kubeconfig=config_file<\/code>.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<pre><code class=\"bash\">kubectl get node<\/code><\/pre>\n<p>\u0418 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u0432\u043e\u0434:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cbe\/d3a\/76c\/cbed3a76c94351deb7a3cf8330c436af.png\" alt=\"\u0420\u0438\u0441. 25. \u041d\u043e\u0434\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435\" title=\"\u0420\u0438\u0441. 25. \u041d\u043e\u0434\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435\" width=\"514\" height=\"89\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cbe\/d3a\/76c\/cbed3a76c94351deb7a3cf8330c436af.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 25. \u041d\u043e\u0434\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u043e\u0434. \u041c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430:<\/p>\n<p>\u0432 \u043d\u0435\u043c \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043a\u0440\u043e\u043c\u0435 \u043f\u0430\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043d\u043e\u0434\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 NotReady, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 CNI \u0438 kube-proxy \u0432 Talos-\u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u2014 \u0438\u0445 \u043f\u0440\u0438\u043d\u0435\u0441\u0451\u0442 \u043d\u0430\u043c Cozystack \u0438 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u0435\u0434\u0436\u0438\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Cozystack<\/h3>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>manifests<\/code> \u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0442\u0443\u0434\u0430 \u0444\u0430\u0439\u043b <code>cozystack-config.yaml<\/code>:<\/p>\n<pre><code class=\"yaml\">apiVersion: v1 kind: ConfigMap metadata:  name: cozystack  namespace: cozy-system data:  bundle-name: \"paas-full\"  ipv4-pod-cidr: \"10.244.0.0\/16\"  ipv4-pod-gateway: \"10.244.0.1\"  ipv4-svc-cidr: \"10.96.0.0\/16\"  ipv4-join-cidr: \"100.64.0.0\/16\"<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u0430\u043d\u0434:<\/p>\n<ol>\n<li>\n<p><code>kubectl create ns cozy-system<\/code> \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 namespace \u0432 Kubernetes \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>cozy-system<\/code>. \u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes.<\/p>\n<\/li>\n<li>\n<p><code>kubectl apply -f cozystack-config.yaml<\/code> \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0438\u0437 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>cozystack<\/code> \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d <code>cozy-system<\/code>. \u0422\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435.<\/p>\n<\/li>\n<li>\n<p><code>kubectl apply -f https:\/\/github.com\/aenix-io\/cozystack\/raw\/v0.7.0\/manifests\/cozystack-installer.yaml<\/code> \u2014 \u044d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e URL. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 URL \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0432 GitHub \u0444\u0430\u0439\u043b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Cozystack.\u00a0<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">kubectl create ns cozy-system  kubectl apply -f cozystack-config.yaml  kubectl apply -f https:\/\/github.com\/aenix-io\/cozystack\/raw\/v0.7.0\/manifests\/cozystack-installer.yaml<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c:<\/p>\n<pre><code class=\"bash\"> whatch -n1 kubectl get hr -A <\/code><\/pre>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0436\u0434\u0435\u043c, \u043a\u043e\u0433\u0434\u0430\u00a0 \u0432\u043e \u0432\u0441\u0435\u0445 <code>NAMESPACE<\/code> \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>READY<\/code> \u043f\u0440\u0438\u043c\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>True<\/code>.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/465\/899\/fc4\/465899fc43e2d1eb8b173270b3c8bf15.png\" alt=\"\u0420\u0438\u0441. 26. \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u0437\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\" title=\"\u0420\u0438\u0441. 26. \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u0437\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\" width=\"1600\" height=\"442\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/465\/899\/fc4\/465899fc43e2d1eb8b173270b3c8bf15.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441. 26. \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u0437\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c.<\/p>\n<h3>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0434\u0438\u0441\u043a\u043e\u0432\u0443\u044e \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0443\u00a0<\/h3>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">alias linstor='kubectl exec -n cozy-linstor deploy\/linstor-controller -- linstor' linstor node list<\/code><\/pre>\n<p>\u0423 \u043d\u0430\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0432\u043e\u0434:<\/p>\n<pre><code class=\"bash\">+-------------------------------------------------------+  | Node | NodeType  | Addresses                 | State  |  |=======================================================|  | srv1 | SATELLITE | 192.168.100.11:3367 (SSL) | Online |  | srv2 | SATELLITE | 192.168.100.12:3367 (SSL) | Online |  | srv3 | SATELLITE | 192.168.100.13:3367 (SSL) | Online |  +-------------------------------------------------------+ linstor physical-storage list +--------------------------------------------+  | Size         | Rotational | Nodes          |  |============================================|  | 107374182400 | True       | srv3[\/dev\/nvme1n1,\/dev\/nvme0n1 ] |  |              |            | srv1[\/dev\/nvme1n1,\/dev\/nvme0n1] |  |              |            | srv2[\/dev\/nvme1n1,\/dev\/nvme0n1] |  +--------------------------------------------+<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c storage pool. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0434\u0438\u0441\u043a\u0438 <code>\/dev\/nvme1n1<\/code> \u0438 <code>\/dev\/nvme0n1<\/code>, \u0443 \u0432\u0430\u0441 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435:<\/p>\n<pre><code class=\"bash\">linstor ps cdp zfs srv1 \/dev\/nvme1n1  \/dev\/nvme0n1  --pool-name data --storage-pool data  linstor ps cdp zfs srv2 \/dev\/nvme1n1  \/dev\/nvme0n1 --pool-name data --storage-pool data  linstor ps cdp zfs srv3 \/dev\/nvme1n1  \/dev\/nvme0n1 --pool-name data --storage-pool data<\/code><\/pre>\n<p>\u0412\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/p>\n<pre><code class=\"bash\">linstor sp l<\/code><\/pre>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a82\/91d\/f1b\/a8291df1b82e3d19b04133cee70982c7.png\" width=\"1186\" height=\"170\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a82\/91d\/f1b\/a8291df1b82e3d19b04133cee70982c7.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f: \u0441\u0430\u043c\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c Kubernetes, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432 \u043d\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u043c\u0430, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c <code>StorageClass<\/code>. \u0418\u0442\u0430\u043a, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430:<\/p>\n<ul>\n<li>\n<p><code>local<\/code> \u2014 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p><code>replicated<\/code> \u2014 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">kubectl create -f- &lt;&lt;EOT  --- apiVersion: storage.k8s.io\/v1 kind: StorageClass metadata:  name: local  annotations:    storageclass.kubernetes.io\/is-default-class: \"true\" provisioner: linstor.csi.linbit.com parameters:  linstor.csi.linbit.com\/storagePool: \"data\"  linstor.csi.linbit.com\/layerList: \"storage\"  linstor.csi.linbit.com\/allowRemoteVolumeAccess: \"false\" volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true --- apiVersion: storage.k8s.io\/v1 kind: StorageClass metadata:  name: replicated provisioner: linstor.csi.linbit.com parameters:  linstor.csi.linbit.com\/storagePool: \"data\"  linstor.csi.linbit.com\/autoPlace: \"3\"  linstor.csi.linbit.com\/layerList: \"drbd storage\"  linstor.csi.linbit.com\/allowRemoteVolumeAccess: \"true\"  property.linstor.csi.linbit.com\/DrbdOptions\/auto-quorum: suspend-io  property.linstor.csi.linbit.com\/DrbdOptions\/Resource\/on-no-data-accessible: suspend-io  property.linstor.csi.linbit.com\/DrbdOptions\/Resource\/on-suspended-primary-outdated: force-secondary  property.linstor.csi.linbit.com\/DrbdOptions\/Net\/rr-conflict: retry-connect volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true EOT<\/code><\/pre>\n<p>\u0412\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">kubectl get storageclasses<\/code><\/pre>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/40c\/ed2\/d19\/40ced2d1927009f90b84aa17153bd40c.png\" width=\"852\" height=\"54\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/40c\/ed2\/d19\/40ced2d1927009f90b84aa17153bd40c.png\"\/><\/figure>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438\u00a0<\/h3>\n<p>\u0417\u0430\u0434\u0430\u0435\u043c \u043f\u0443\u043b \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438\u0437 \u043f\u043e\u0434\u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0443\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 (\u0441\u043c. \u0420\u0438\u0441.\u00a01). \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0434\u0440\u0443\u0433\u043e\u0435 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e (<code>192.168.100.200\/192.168.100.250<\/code>), \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443, \u0431\u0435\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430. \u041d\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432 \u0444\u0430\u0439\u043b \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 \u0447\u0435\u0440\u0435\u0437 <code>kubectl apply -f \u043f\u0443\u0442\u044c_\u043a_\u0444\u0430\u0439\u043b\u0443<\/code>:<\/p>\n<pre><code class=\"bash\">kubectl create -f- &lt;&lt;EOT --- apiVersion: metallb.io\/v1beta1 kind: L2Advertisement metadata:  name: cozystack  namespace: cozy-metallb spec:  ipAddressPools:  - cozystack --- apiVersion: metallb.io\/v1beta1 kind: IPAddressPool metadata:  name: cozystack  namespace: cozy-metallb spec:  addresses:  - 192.168.100.200-192.168.100.250  autoAssign: true  avoidBuggyIPs: false EOT<\/code><\/pre>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Web UI \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u00a0<\/h4>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u043e\u043a\u0435\u043d:<\/p>\n<pre><code class=\"bash\">kubectl get secret -n tenant-root tenant-root -o go-template='{{ printf \"%s\\n\" (index .data \"token\" | base64decode) }}'<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u044d\u0442\u0443\u00a0 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 management-\u0445\u043e\u0441\u0442\u0435, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u043e\u043a\u0435\u043d, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0439\u0442\u0438 \u043d\u0430 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Cozystack \u0441 \u044d\u0442\u043e \u0436\u0435 management-\u0445\u043e\u0441\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0430 management-\u0445\u043e\u0441\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">kubectl port-forward -n cozy-dashboard svc\/dashboard 8000:80<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"http:\/\/localhost:8000\/\"><u>http:\/\/localhost:8000<\/u><\/a> \u0438 \u0432\u0432\u043e\u0434\u0438\u043c \u0442\u043e\u043a\u0435\u043d, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/851\/12a\/a8e\/85112aa8e0e165c6459ca7df6858a3c5.png\" alt=\"\u041e\u043a\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438\" title=\"\u041e\u043a\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438\" width=\"598\" height=\"350\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/851\/12a\/a8e\/85112aa8e0e165c6459ca7df6858a3c5.png\"\/><\/figure>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 \u00abtenant-root\u00bb:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cf3\/d21\/221\/cf3d21221a7dbc8ece355d1bfe49c657.png\" width=\"1600\" height=\"360\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cf3\/d21\/221\/cf3d21221a7dbc8ece355d1bfe49c657.png\"\/><\/figure>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 \u00abUpgrade\u00bb, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043d\u0430\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/95f\/8f9\/fb7\/95f8f9fb7e087b1b0436cd0e1e95905b.png\" width=\"1600\" height=\"605\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/95f\/8f9\/fb7\/95f8f9fb7e087b1b0436cd0e1e95905b.png\"\/><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c \u0441\u0440\u0430\u0437\u0443, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c F5.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/38b\/cb9\/291\/38bcb9291e0493a3e57c30ce030fbe4c.png\" width=\"1600\" height=\"611\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38b\/cb9\/291\/38bcb9291e0493a3e57c30ce030fbe4c.png\"\/><\/figure>\n<p>\u0412\u043d\u043e\u0441\u0438\u043c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043c\u044b \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u043f\u043e\u043b\u0435 <code>host kuber.gohost.kz<\/code> \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u043f\u043e\u043b\u0437\u0443\u043d\u043a\u0438 \u0438\u0437 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f <code>false<\/code> \u0432 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <code>true<\/code> \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abDEPLOY\u00bb.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/17a\/1fe\/3ed\/17a1fe3edadef788b3623dd7378a8434.png\" width=\"1600\" height=\"631\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/17a\/1fe\/3ed\/17a1fe3edadef788b3623dd7378a8434.png\"\/><\/figure>\n<p>\u041d\u0430\u0441 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u044f\u0442 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0433\u0434\u0435 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/949\/487\/48c\/94948748c9aaae4b4b5f55986cfe571d.png\" width=\"1600\" height=\"682\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/949\/487\/48c\/94948748c9aaae4b4b5f55986cfe571d.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432\u0441\u0435\u0445 <code>PersistentVolumeClaim<\/code> (PVC) \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d tenant-root \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435.<\/p>\n<pre><code class=\"bash\">kubectl get pvc -n tenant-root<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u0432\u044b\u0432\u043e\u0434 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u043c\u043e\u0435\u043c\u0443, \u0437\u043d\u0430\u0447\u0438\u0442, \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/415\/aae\/4b9\/415aae4b9101871e4f6baa185080b83f.png\" width=\"1318\" height=\"235\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/415\/aae\/4b9\/415aae4b9101871e4f6baa185080b83f.png\"\/><\/figure>\n<p>\u0412\u0435\u0440\u043d\u0443\u0432\u0448\u0438\u0441\u044c \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a2\/44b\/641\/1a244b641cd1e6c7dbdb3862b450868b.png\" width=\"1600\" height=\"374\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1a2\/44b\/641\/1a244b641cd1e6c7dbdb3862b450868b.png\"\/><\/figure>\n<h3>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u00a0 \u043f\u043e\u0434\u043e\u0432<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u044b, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">kubectl get pod -n tenant-root<\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0435\u0435 \u0432\u044b\u0432\u043e\u0434:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/741\/d3a\/4c3\/741d3a4c3a88e3ca3384e70a9dee806f.png\" width=\"774\" height=\"779\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/741\/d3a\/4c3\/741d3a4c3a88e3ca3384e70a9dee806f.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">kubectl get svc -n tenant-root root-ingress-controller<\/code><\/pre>\n<p>\u0412 \u0432\u044b\u0432\u043e\u0434\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0432\u0445\u043e\u0434\u0430:<\/p>\n<pre><code class=\"bash\">NAME                  TYPE       CLUSTER-IP EXTERNAL-IP   PORT(S)                  AGE root-ingress-controller   LoadBalancer   10.96.58.227   192.168.100.200   80:30149\/TCP,443:32152\/TCP   7d8h<\/code><\/pre>\n<h3>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Cozystack \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435 Grafana. \u041c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f tenant-root (\u0440\u0438\u0441\u0443\u043d\u043a\u0438 27-31). \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u043b\u0438\u0442\u043a\u0443 \u00abmonitoring\u00bb:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/736\/2b7\/f35\/7362b7f35ca84ba1615ba28743d5cf8f.png\" width=\"471\" height=\"298\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/736\/2b7\/f35\/7362b7f35ca84ba1615ba28743d5cf8f.png\"\/><\/figure>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 Upgrade. \u0412 \u043f\u043e\u043b\u0435 host \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u0443 \u043c\u0435\u043d\u044f \u044d\u0442\u043e <code>gafana.kuber.gohost.kz<\/code>). \u0423\u0447\u0435\u0442\u043d\u044b\u0435\u00a0 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u0438\u043b\u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0432 \u00a0<code>password<\/code> \u0438 <code>user<\/code>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/706\/42a\/8df\/70642a8df69ed3ac08b210a63ac079d2.png\" width=\"1600\" height=\"739\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/706\/42a\/8df\/70642a8df69ed3ac08b210a63ac079d2.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u2014 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043d\u0430 management-\u0445\u043e\u0441\u0442\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u0444\u0430\u0439\u043b <code>\/etc\/hosts<\/code> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p><code>192.168.100.200 gafana.kuber.gohost.kz<\/code>\u00a0<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0445\u043e\u0441\u0442\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0432\u0432\u043e\u0434\u0438\u043c <code>gafana.kuber.gohost.kz<\/code> \u0438 \u0443 \u043d\u0430\u0441 \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f Grafana.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5c\/010\/138\/c5c010138d9edb5520b8f11a137ac7d1.png\" width=\"855\" height=\"601\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c5c\/010\/138\/c5c010138d9edb5520b8f11a137ac7d1.png\"\/><\/figure>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ol>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u0437 \u0442\u0440\u0435\u0445 \u043d\u043e\u0434 \u043d\u0430 \u0431\u0430\u0437\u0435 \u041e\u0421 Talos Linux.<\/p>\n<\/li>\n<li>\n<p>\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u0433\u0434\u0435 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u0435\u0441\u0442\u044c LINSTOR \u0441 ZFS \u0438 DRBD.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0434\u043e\u0431\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433.<\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0446\u0438\u043a\u043b\u0430 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c Kubernetes in Kubernetes, \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f, \u043a\u0430\u043a \u0432 Cozystack \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 Kubernetes as a Service, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0443\u0447\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432 \u043f\u0430\u0440\u0443 \u043a\u043b\u0438\u043a\u043e\u0432 \u043c\u044b\u0448\u043a\u0438. \u0417\u0430\u0434\u0430\u0434\u0438\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 IP \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043c \u0435\u0433\u043e \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u0441\u0435\u0442\u044c.\u00a0<\/p>\n<p><strong>\u041d\u0443 \u0432\u043e\u0442 \u043c\u044b \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Cozystack:)) \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442\u2026<\/strong><\/p>\n<h3>P.S.<\/h3>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=4k9KtSL4YBc\"><u>Live Demo: \u0441\u0432\u043e\u0439 SaaS \u0437\u0430 \u043f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u043d\u0430 Kubernetes<\/u><\/a>, \u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u0432\u0430\u043f\u0438\u043b<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=NNh8e8vYZEI\"><u>Talos Linux: \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d Kubernetes<\/u><\/a>, \u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u0432\u0430\u043f\u0438\u043b<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/cozystack.io\/docs\/\"><u>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Cozystack<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/t.me\/cozystack\"><u>\u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Cozystack<\/u><\/a> \u0441 <a href=\"https:\/\/calendar.google.com\/calendar?cid=ZTQzZDIxZTVjOWI0NWE5NWYyOGM1ZDY0OWMyY2IxZTFmNDMzZTJlNjUzYjU2ZGJiZGE3NGNhMzA2ZjBkMGY2OEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t\"><u>\u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0438\u0442\u0430\u043c\u0438<\/u><\/a> (\u0432 \u0447\u0430\u0442\u0435 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b)<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/aenix\/articles\/501842\/\"><u>\u0422\u043e\u043d\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f MetalLB \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 L2<\/u><\/a>, \u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u0432\u0430\u043f\u0438\u043b<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/834682\/\"> https:\/\/habr.com\/ru\/articles\/834682\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u042f \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u041a\u0430\u0440\u0430\u0431\u0430\u0441\u043e\u0432, \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u043a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u043a\u043e\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 gohost. \u0421\u044e\u0434\u0430 \u044f \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0438\u0437 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u0434\u0430\u043b \u0431\u0435\u0437 \u043c\u0430\u043b\u043e\u0433\u043e 20 \u043b\u0435\u0442, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0431\u044b\u043b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0426\u0435\u043d\u0442\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439.<\/p>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 gohost.kz \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0430 \u0443\u0436\u0435 15 \u043b\u0435\u0442 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0443\u0441\u043b\u0443\u0433: VPS\/VDC, IaaS, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0438 \u0442.\u0434. \u041e\u0434\u043d\u0430\u043a\u043e \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Kubernetes as a Service.<\/p>\n<p>\u0422\u0430\u043a \u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u043c\u043e\u0435 \u00ab\u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e 2.0\u00bb \u0441 *nix-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 (\u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u2014 \u0441 <a href=\"https:\/\/www.talos.dev\"><u>Talos Linux<\/u><\/a>), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0438\u0440\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 (\u0447\u0435\u0440\u0435\u0437 Kubernetes). \u0420\u0435\u0448\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 Open Source-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 <a href=\"http:\/\/cozystack.io\"><u>Cozystack<\/u><\/a> \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u0435\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u2014 \u0410\u043d\u0434\u0440\u0435\u0435\u043c \u041a\u0432\u0430\u043f\u0438\u043b\u043e\u043c \u0438 \u0413\u0435\u043e\u0440\u0433\u0438\u0435\u043c \u0413\u0430\u0430\u043b\u043e\u043c. \u041c\u044b \u043f\u043e\u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0443 \u0441\u0435\u0431\u044f Kubenetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Cozystack, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 Talos Linux.\u00a0<\/p>\n<p>\u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u0435\u043d\u044f \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u043e \u0432 Cozystack:<\/p>\n<ul>\n<li>\n<p>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Kubernetes control-plane.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Kubernetes control-plane, \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044f \u0432\u043e\u0440\u043a\u0435\u0440\u044b \u043a\u0430\u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438 \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u044f \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>Talos Linux, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u2014 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0433\u043e <a href=\"https:\/\/t.me\/kubernetes_ru\"><u>\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 Kubernetes<\/u><\/a> \u0438 \u0432\u043d\u043e\u0441\u044f\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 Open Source, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u044f \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e <a href=\"https:\/\/t.me\/etcd_operator\/\"><u>etcd-operator<\/u><\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e gohost \u0441 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0430 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u043c\u0441\u044f \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u0435\u0435 \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0443\u0441\u043b\u0443\u0433\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 Cozystack.<\/p>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043c\u0435\u043d\u044f \u043f\u043e\u0434\u0432\u0438\u0433\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u0435\u0439: \u044f \u0445\u043e\u0442\u0435\u043b \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Cozystack \u043d\u0430 Talos Linux, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b Kubernetes, \u0430 \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043d\u0430\u0439\u0434\u0443\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u2014 \u0432 \u043e\u0431\u0449\u0435\u043c, \u044d\u0442\u043e \u043c\u043e\u044f \u0441\u043a\u0440\u043e\u043c\u043d\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0447\u0442\u043e-\u0442\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443. \u0418\u0442\u0430\u043a, \u043d\u0430\u0447\u043d\u0435\u043c.\u00a0<\/p>\n<h3>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/h3>\n<p>\u0425\u043e\u0442\u044f Cozystack \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0436\u0435\u043b\u0435\u0437\u0435, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0438 \u0432 \u043b\u044e\u0431\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u2014 \u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0447\u0438\u043d\u0430\u043b \u0441 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Proxmox_Virtual_Environment\"><u>Proxmox<\/u><\/a> \u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/KVM\"><u>KVM<\/u><\/a>.<\/p>\n<p>\u041d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0441\u0435\u0442\u0430\u043f\u0430 \u2014 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435:<\/p>\n<ol>\n<li>\n<p>VPS 2G\/2CPU (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u041f\u041a) \u2014 1\u00a0\u0448\u0442.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440 \u2014 2\u00a0\u0448\u0442. (\u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212;\u00a0 \u0434\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0443.\u0420\u0438\u0441 1.) \u0438\u043b\u0438 1\u00a0\u0448\u0442. (\u0431\u0435\u0437 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0420\u0438\u0441 2.).<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440\u044b \u0441\u00a0 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u043d\u0430 NVMe-\u0434\u0438\u0441\u043a\u0430\u0445 (\u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432) \u0438 SSD-\u0434\u0438\u0441\u043a\u0438 (\u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b). \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u2014 3\u00a0\u0448\u0442.<\/p>\n<\/li>\n<\/ol>\n<p>\u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0421\u0425\u0414, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0441\u0432\u044f\u0437\u043a\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/DRBD\"><u>DRBD<\/u><\/a> + <a href=\"https:\/\/linbit.com\/linstor\/\"><u>Linstor<\/u><\/a> (\u0442\u0430\u043a\u0438\u0435 \u0421\u0425\u0414 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0443 \u0441\u0435\u0431\u044f \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 \u043f\u043e\u0434 VPS, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438).<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u0441\u0445\u0435\u043c\u0430 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f Cozystack \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0420\u0438\u0441 1. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0446\u0438\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0437\u0430 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438.\u00a0<\/p>\n<figure class=\"bordered full-width\">\n<div><figcaption>\u0420\u0438\u0441. 1. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u0440\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<figure class=\"bordered full-width\">\n<div><figcaption>\u0420\u0438\u0441. 2. \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0431\u0435\u0437 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 (SRV1, SRV2, SRV3). \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 management-\u0445\u043e\u0441\u0442. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0448\u043b\u044e\u0437\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e SRV1, SRV2, SRV3 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 management-\u0445\u043e\u0441\u0442. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430 management-\u0445\u043e\u0441\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u0430 iptables. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0448\u043b\u044e\u0437 \u2014 management-\u0445\u043e\u0441\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043b\u0438\u0448\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 management-\u0445\u043e\u0441\u0442\u0430\u00a0<\/h3>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c management-\u0445\u043e\u0441\u0442, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f\u00a0 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Cozystack. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e, \u0447\u0442\u043e \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0445\u043e\u0441\u0442 c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0443\u0449\u0443, \u2014 \u0441\u0430\u043c \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Ubuntu 22.04.\u00a0<\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e management-\u0445\u043e\u0441\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0438\u043c bash-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u0440\u0443\u0442\u0438\u043d\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0445\u043e\u0441\u0442\u0430. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432: talosctl v1.7.1 \u0438 kubectl v1.30.1.<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash  RED='\\033[0;31m' GREEN='\\033[0;32m' YELLOW='\\033[1;33m' NC='\\033[0m' # No Color  apt update apt upgrade -y apt -y install ntp bind9 curl jq nload  service ntp restart #service ntp status sed -i -r 's\/listen-on-v6\/listen-on\/g'  \/etc\/bind\/named.conf.options  sed -i '\/listen-on\/a \\\\tallow-query { any; };'  \/etc\/bind\/named.conf.options  apt -y  install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg  echo \"deb [arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null  apt update apt install  -y docker-ce snapd make dialog nmap  #systemctl status docker #curl -sL https:\/\/talos.dev\/install | sh  releases=$(curl -s https:\/\/api.github.com\/repos\/siderolabs\/talos\/releases | jq -r '.[].tag_name' | head -n 10) echo -e \"${YELLOW}\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f:${NC}\" select version in $releases; do     if [[ -n \"$version\" ]]; then         echo \"\u0412\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u044e $version\"         break     else         echo -e \"${RED}\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437. ${NC}\"     fi done url=\"https:\/\/github.com\/siderolabs\/talos\/releases\/download\/$version\/talosctl-linux-amd64\" wget $url -O talosctl chmod +x talosctl sudo mv talosctl \/usr\/local\/bin\/ #kubectl releases=$(curl -s https:\/\/api.github.com\/repos\/kubernetes\/kubernetes\/releases | jq -r '.[].tag_name' | grep -E '^v[0-9]+\\.[0-9]+\\.[0-9]+$' | head -n 10) echo -e \"${YELLOW}\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e kubectl \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f:${NC}\" select version in $releases; do     if [[ -n \"$version\" ]]; then         echo  \"\u0412\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u044e $version\"         break     else         echo -e \"${RED}\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437. ${NC}\"     fi done url=\"https:\/\/storage.googleapis.com\/kubernetes-release\/release\/$version\/bin\/linux\/amd64\/kubectl\" wget $url -O kubectl chmod +x kubectl sudo mv kubectl \/usr\/local\/bin\/  curl -fsSL -o get_helm.sh https:\/\/raw.githubusercontent.com\/helm\/helm\/main\/scripts\/get-helm-3 chmod 700 get_helm.sh .\/get_helm.sh  curl -LO https:\/\/github.com\/kvaps\/kubectl-node-shell\/raw\/master\/kubectl-node_shell chmod +x .\/kubectl-node_shell sudo mv .\/kubectl-node_shell \/usr\/local\/bin\/kubectl-node_shell  curl -LO https:\/\/github.com\/aenix-io\/talm\/releases\/download\/v0.5.7\/talm-linux-amd64 chmod +x .\/talm-linux-amd64 sudo mv .\/talm-linux-amd64 \/usr\/local\/bin\/talm   echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432,\" echo -e \"\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 ${GREEN}\/opt\/${NC}. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: ${GREEN}\/opt\/cozystack${NC}\" echo -e \"${YELLOW}\" read -p \"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438: \" cozystack echo -e \"${NC}\" if [ -z \"$cozystack\" ]; then       cozystack=\"cozystack\"  fi mkdir -p \/opt\/$cozystack curl -LO https:\/\/github.com\/aenix-io\/talos-bootstrap\/raw\/master\/talos-bootstrap mv talos-bootstrap \/opt\/$cozystack chmod +x \/opt\/$cozystack\/talos-bootstrap snap install  yq echo -e \"${YELLOW}\u0423\u043a\u0430\u0436\u0438\u0442\u0435 IP-\u0441\u0435\u0442\u044c \u0434\u043b\u044f  etcd \u0438 kubelet${NC}\" echo -e \"\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: ${GREEN} 192.168.100.0\/24 ${NC}\" read -p \"IP-\u0441\u0435\u0442\u044c (network\/mask): \" IPEK  if [ -z \"$IPEK\" ]; then       IPEK=\"192.168.100.0\/24\"  fi #ADD FORWARD (RELATED,ESTABLISHED) rule1=\"-d $IPEK -m state --state RELATED,ESTABLISHED -m comment --comment $cozystack -j ACCEPT\" if ! iptables-save | grep -q -- \"-A FORWARD $rule1\"; then     iptables -I FORWARD -d $IPEK -m state --state RELATED,ESTABLISHED -m comment --comment $cozystack -j ACCEPT fi # ADD FORWARD rule2=\"-s $IPEK -m comment --comment $cozystack -j ACCEPT\" if ! iptables-save | grep -q -- \"-A FORWARD $rule2\"; then     iptables -I FORWARD -s $IPEK -m comment --comment $cozystack -j ACCEPT fi # ADD NAT rule3=\"-s $IPEK -m comment --comment $cozystack -j MASQUERADE\" if ! iptables-save | grep -q -- \"-A POSTROUTING $rule3\"; then     iptables -t nat -I POSTROUTING -s $IPEK -m comment --comment $cozystack -j MASQUERADE fi #sysctl -w net.ipv4.ip_forward=1 if ! grep -qF \"$REQUIRED_SETTING\" \"$FILE\"; then   echo \"net.ipv4.ip_forward = 1\" | sudo tee -a \"\/etc\/sysctl.conf\" &gt; \/dev\/null  fi sysctl -p apt -y install iptables-persistent   cat &gt; \/opt\/$cozystack\/patch.yaml &lt;&lt;EOT machine:   kubelet:     nodeIP:       validSubnets:       - $IPEK     extraConfig:       maxPods: 512   kernel:     modules:     - name: openvswitch     - name: drbd       parameters:         - usermode_helper=disabled     - name: zfs     - name: spl   install:     image: ghcr.io\/aenix-io\/cozystack\/talos:v1.7.1   files:   - content: |       [plugins]         [plugins.\"io.containerd.grpc.v1.cri\"]           device_ownership_from_security_context = true           path: \/etc\/cri\/conf.d\/20-customization.part     op: create cluster:   network:     cni:       name: none     dnsDomain: cozy.local     podSubnets:     - 10.244.0.0\/16     serviceSubnets:     - 10.96.0.0\/16 EOT  cat &gt; \/opt\/$cozystack\/patch-controlplane.yaml &lt;&lt;EOT cluster:   allowSchedulingOnControlPlanes: true   controllerManager:     extraArgs:       bind-address: 0.0.0.0   scheduler:     extraArgs:       bind-address: 0.0.0.0   apiServer:     certSANs:     - 127.0.0.1   proxy:     disabled: true   discovery:     enabled: false   etcd:     advertisedSubnets:     - <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-428645","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/428645","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=428645"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/428645\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=428645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=428645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=428645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}