{"id":372998,"date":"2024-05-21T05:25:47","date_gmt":"2024-05-21T05:25:47","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=372998"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=372998","title":{"rendered":"<span>\u041a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0430\u0439\u0442 c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Terraform<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/yu\/yw\/73\/yuyw73vma1iva6orib-td5bi4cc.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/yu\/yw\/73\/yuyw73vma1iva6orib-td5bi4cc.jpeg\" data-blurred=\"true\"\/><\/div>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0412 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0430\u0439\u0442 \u0432 Kubernetes c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Terraform. \u0420\u0430\u0437\u0431\u0435\u0440\u0443 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e CRaaS \u0441 <a href=\"https:\/\/selectel.ru\/services\/cloud\/kubernetes\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=cloud_article_kubernetescraas_080424_content\">Managed Kubernetes<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442 \u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u043a\u043e\u0432.<\/p>\n<p>  <b>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440:<\/b> \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c c \u043d\u0443\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Terraform. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u044d\u0442\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0438\u0437\u0443\u0447\u0438\u0442\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u00ab<a href=\"https:\/\/selectel.ru\/blog\/tutorials\/how-to-deploy-your-application-to-kubernetes\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=loud_article_kubernetescraas_080424\">\u041a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 Kubernetes<\/a>\u00bb.<a name=\"habracut\"><\/a><\/p>\n<p>  \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.selectel.ru\/cloud\/managed-kubernetes\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=loud_article_kubernetescraas_080424\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Managed Kubernetes<\/a>,<\/li>\n<li><a href=\"https:\/\/docs.docker.com\/get-docker\">Docker<\/a>,<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/%23kubectl\">Kubectl<\/a>,<\/li>\n<li><a href=\"https:\/\/www.terraform.io\/downloads\">Terraform<\/a>,<\/li>\n<li><a href=\"https:\/\/registry.terraform.io\/providers\/selectel\/selectel\/latest\/docs\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Terraform<\/a>,<\/li>\n<li><a href=\"https:\/\/github.com\/selectel\/terraform-examples\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430\u043c\u0438<\/a>.<\/li>\n<\/ul>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <\/h2>\n<p><\/font><br \/>  \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <a href=\"http:\/\/my.selectel.ru\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=loud_article_kubernetescraas_080424\">my.selectel.ru<\/a>.<\/p>\n<p>  \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c\u0441\u044f \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u0435\u0440\u0445\u0443 \u043d\u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0438 \u0432\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <b>\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/b>. \u0414\u0430\u043b\u0435\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <b>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438<\/b> \u2192 <b>\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438<\/b>.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u0440\u043e\u043b\u044f\u043c\u0438 <b>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/b> \u0438 <b>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/b>:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/na\/fm\/-d\/nafm-dotauzn2n0eipdympmu7fy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/na\/fm\/-d\/nafm-dotauzn2n0eipdympmu7fy.png\"\/><\/div>\n<p>  \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Terraform \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432: Selectel \u0438 OpenStack. \u042d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u043b\u044f Selectel. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 OpenStack \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0447\u0435\u0440\u0435\u0437 Terraform.<\/p>\n<p>  \u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 Terraform:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/selectel\/terraform-examples <\/code><\/pre>\n<p>  \u0418 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e:<\/p>\n<pre><code class=\"bash\">cd terraform-examples\/examples\/mks\/cluster_one_nodegroup_with_net_infra <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f: \u043d\u043e\u043c\u0435\u0440 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430, \u0438\u043c\u0435\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0438\u0445 \u043f\u0430\u0440\u043e\u043b\u0435\u0439.<\/p>\n<pre><code class=\"bash\">nano secrets.tfvars <\/code><\/pre>\n<p>  <b>\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/b> \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0438 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430! \u0412\u043d\u043e\u0441\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e):<\/p>\n<pre><code class=\"bash\"># \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 Selectel # \u0417\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043b\u0438\u0447\u043d\u043e\u043c \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0435 my.selectel.ru domain_name = \"163638\" username = \"webinar21\" password = \"MJ77FsFE\" # \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 OpenStack # \u041c\u043e\u0434\u0443\u043b\u044c Terraform \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f project_name = \"demo11\" project_user_name = \"webinar22\" user_password = \"lVNH1v+w\" cluster_name = \"Demo\" taints = [] labels = {} <\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>domain_name \u2014 \u043d\u043e\u043c\u0435\u0440 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 (\u0438\u043b\u0438 \u043d\u043e\u043c\u0435\u0440 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0430) \u0432 my.selectel.ru;<\/li>\n<li>username \u2014 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u043d\u0435\u0435 \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 my.selectel.ru;<\/li>\n<li>project_name \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 Terraform;<\/li>\n<li>project_user_name \u2014 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 Terraform.<\/li>\n<\/ul>\n<p>  \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 \u043d\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043b\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0437\u0430\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e, \u0432\u0438\u0434\u043d\u043e \u0432\u0441\u0435 \u0438 \u0441\u0440\u0430\u0437\u0443. <\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445:  <\/p>\n<ul>\n<li><a href=\"https:\/\/registry.terraform.io\/providers\/terraform-provider-openstack\/openstack\/latest\/docs\">OpenStack<\/a>,<\/li>\n<li><a href=\"https:\/\/docs.selectel.ru\/terraform\/selectel-provider-reference\/authentication\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=loud_article_kubernetescraas_080424\">Selectel<\/a>.<\/li>\n<\/ul>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 Terraform<\/h2>\n<p><\/font><br \/>  \u0412 \u0444\u0430\u0439\u043b\u0435 vars.tf \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u0432 vars.tf, \u0442\u0430\u043a \u0438 \u0432 secrets.tfvars.<\/p>\n<p>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441 \u0434\u0432\u0443\u043c\u044f worker-\u043d\u043e\u0434\u0430\u043c\u0438 (nodes_count=2). \u0422\u0430\u043a\u0436\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u0441\u0430\u043c\u0438\u0445 worker-\u043d\u043e\u0434: cpus=2, ram_mb=4096, volume_gb=32.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/cr\/mp\/lp\/crmplpsrnwoy6arxv8xkwz3vo5m.png\" data-src=\"https:\/\/habrastorage.org\/webt\/cr\/mp\/lp\/crmplpsrnwoy6arxv8xkwz3vo5m.png\"\/><\/div>\n<p>  \u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Hashicorp \u043c\u043e\u0433\u0443\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438\u0437 \u0420\u043e\u0441\u0441\u0438\u0438. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0437\u0435\u0440\u043a\u0430\u043b\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"bash\">nano .terraformrc <\/code><\/pre>\n<p>  \u0418 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u043a \u0437\u0435\u0440\u043a\u0430\u043b\u043e:<\/p>\n<pre><code class=\"bash\">provider_installation {   network_mirror {     url = \"https:\/\/mirror.selectel.ru\/3rd-party\/terraform-registry\/\"     include = [\"registry.terraform.io\/*\/*\"]   }   direct {     exclude = [\"registry.terraform.io\/*\/*\"]   } } <\/code><\/pre>\n<p>  \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c Terraform \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438:<\/p>\n<pre><code class=\"bash\">terraform init <\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/9o\/bk\/gz\/9obkgzz4qiqsd2tccjpyrnbl1-0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/9o\/bk\/gz\/9obkgzz4qiqsd2tccjpyrnbl1-0.png\"\/><\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0444\u0430\u0439\u043b\u0430 \u0441 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438:<\/p>\n<pre><code class=\"bash\">terraform apply -var-file=\"secrets.tfvars\" <\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hz\/tv\/rb\/hztvrbfgbigodg_dspxzsu1onqw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hz\/tv\/rb\/hztvrbfgbigodg_dspxzsu1onqw.png\"\/><\/div>\n<p>  \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c Terraform. \u041f\u043e\u0441\u043b\u0435 \u043f\u0438\u0448\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 yes \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <b>Enter<\/b>.<\/p>\n<p>  \u0416\u0434\u0435\u043c, \u043f\u043e\u043a\u0430 Terraform \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u044b:<\/p>\n<p>  <a href=\"https:\/\/selectel.ru\/services\/cloud\/kubernetes\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=cloud_article_kubernetescraas_080424_banner_005_02_ord\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/kf\/x6\/ve\/kfx6vexfs0kke50j3sz53ddlxug.png\" data-src=\"https:\/\/habrastorage.org\/webt\/kf\/x6\/ve\/kfx6vexfs0kke50j3sz53ddlxug.png\"\/><\/div>\n<p><\/a><\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0435\u043c Container Registry<\/h2>\n<p><\/font><br \/>  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <b>\u041e\u0431\u043b\u0430\u0447\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430<\/b> \u2192 <b>\u0421ontainer Registry<\/b> \u2192 <b>\u0420\u0435\u0435\u0441\u0442\u0440\u044b<\/b>. \u0417\u0434\u0435\u0441\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u043b\u0435\u0436\u0430\u0442\u044c \u0432\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442. \u041c\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c coffee-shop \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043b\u0435\u043d\u0434\u0438\u043d\u0433 \u043a\u043e\u0444\u0435\u0439\u043d\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ho\/ie\/6x\/hoie6xti447radrnkl5uqvd1488.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ho\/ie\/6x\/hoie6xti447radrnkl5uqvd1488.png\"\/><\/div>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0437, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 Container Registry \u2014 \u0437\u0430\u0442\u0435\u043c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u043c\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0435\u043c \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0438 \u0437\u0430\u043f\u0443\u0448\u0438\u0442\u044c \u0432 Container Registry, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <b>Container Registry<\/b>, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 <b>\u0422\u043e\u043a\u0435\u043d\u044b<\/b> \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <b>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043a\u0435\u043d<\/b>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/42\/dl\/oa\/42dloa19mqcqknxglvhkkcc8yvm.png\" data-src=\"https:\/\/habrastorage.org\/webt\/42\/dl\/oa\/42dloa19mqcqknxglvhkkcc8yvm.png\"\/><\/div>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mk\/jd\/5x\/mkjd5xjmrf--vy8ssy_az2af0_g.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mk\/jd\/5x\/mkjd5xjmrf--vy8ssy_az2af0_g.png\"\/><\/div>\n<p>  \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0442\u043e\u043a\u0435\u043d, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0438 \u0432\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\"> docker login cr.selcloud.ru -u token -p &lt;\u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439_\u0438\u0437_\u043f\u0430\u043d\u0435\u043b\u0438_\u0442\u043e\u043a\u0435\u043d> <\/code><\/pre>\n<p>  \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <b>Enter <\/b>\u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e Docker-\u0444\u0430\u0439\u043b\u0430. \u0412\u0432\u043e\u0434\u0438\u043c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">docker build -t cr.selcloud.ru\/&lt;\u0440\u0435\u0435\u0441\u0442\u0440>\/&lt;\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439> . <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"bash\">docker push  cr.selcloud.ru\/&lt;\u0440\u0435\u0435\u0441\u0442\u0440>\/&lt;\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439> <\/code><\/pre>\n<p>  \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u043f\u0443\u0448\u0438\u043c \u043e\u0431\u0440\u0430\u0437 \u0432 Container Registry:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/4b\/rt\/xw\/4brtxwtkvdceznjj3zxeo5xarw8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/4b\/rt\/xw\/4brtxwtkvdceznjj3zxeo5xarw8.png\"\/><\/div>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/a6\/yy\/ci\/a6yyciabhgmyrfg4otigkhdnk1k.png\" data-src=\"https:\/\/habrastorage.org\/webt\/a6\/yy\/ci\/a6yyciabhgmyrfg4otigkhdnk1k.png\"\/><\/div>\n<p>  \u041a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes \u0438 \u0440\u0435\u0435\u0441\u0442\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u044b.<\/p>\n<p>  \u041c\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0440\u0435\u0435\u0441\u0442\u0440: \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0437, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 MKS \u2014 Managed Kubernetes.<\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u043c\u0435\u0436\u0434\u0443 MKS \u0438 Container Registry<\/h2>\n<p><\/font><br \/>  \u041e\u0431\u044b\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 Registry \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0437\u044f\u0442\u044c \u0435\u0433\u043e \u043a\u0440\u0435\u0434\u044b \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438\u0445 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u043c \u0432 \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u0412 \u044d\u0442\u043e\u043c \u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f: \u043c\u044b \u0438\u0434\u0435\u043c \u0432 Container Registry, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u043e\u043a\u0435\u043d \u0438 \u0437\u0430\u0442\u0435\u043c \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u043c \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u0427\u0442\u043e \u043c\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430\u0435\u043c?<\/p>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 Active:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zm\/he\/d7\/zmhed7qmkq89fgig-mglmhxohki.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zm\/he\/d7\/zmhed7qmkq89fgig-mglmhxohki.png\"\/><\/div>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c Container Registry \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0440\u0435\u0435\u0441\u0442\u0440 coffee-shop. \u0416\u043c\u0435\u043c <b>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0435\u0435\u0441\u0442\u0440\u0443<\/b>, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <b>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Kubernetes<\/b>:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/yc\/-b\/pl\/yc-bpld6sqgx4_zemrtsyoekqlo.png\" data-src=\"https:\/\/habrastorage.org\/webt\/yc\/-b\/pl\/yc-bpld6sqgx4_zemrtsyoekqlo.png\"\/><\/div>\n<p>  \u041c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0442\u043e\u043c \u0436\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0433\u0434\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442 \u0440\u0435\u0435\u0441\u0442\u0440:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ex\/bw\/bk\/exbwbk6-igmfntj1z7_atstw2-u.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ex\/bw\/bk\/exbwbk6-igmfntj1z7_atstw2-u.png\"\/><\/div>\n<p>  \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 <b>\u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/b>. \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u00ab\u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0441 Kubernetes\u00bb:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gq\/mp\/a3\/gqmpa3mogqzakyspqc8h98zfhje.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gq\/mp\/a3\/gqmpa3mogqzakyspqc8h98zfhje.png\"\/><\/div>\n<p>  \u0411\u0435\u0440\u0435\u043c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438 \u043a\u0430\u0447\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/4q\/ih\/to\/4qihtoocgoydv2rd9u3jx1ox29c.png\" data-src=\"https:\/\/habrastorage.org\/webt\/4q\/ih\/to\/4qihtoocgoydv2rd9u3jx1ox29c.png\"\/><\/div>\n<p>  \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u0443\u0442\u044c \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442:<\/p>\n<pre><code class=\"bash\">export KUBECONFIG=&lt;\u043f\u043e\u043b\u043d\u044b\u0439_\u043f\u0443\u0442\u044c_\u0434\u043e_\u0444\u0430\u0439\u043b\u0430> <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438. \u0421\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u043d\u043e\u0434\u044b \u0435\u0441\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435:<\/p>\n<pre><code class=\"bash\">kubectl get nodes <\/code><\/pre>\n<p>  \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 kubectl \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl-linux\/\">\u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435<\/a>.<\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 Kubernetes<\/h2>\n<p><\/font><br \/>  \u041e\u043f\u0438\u0448\u0435\u043c, \u043a\u0430\u043a \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes.<\/p>\n<p>  \u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/gitlab.com\/cr-mks-webinar\/infra.git <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430\u043c\u0438 Kubernetes:<\/p>\n<pre><code class=\"bash\">cd infra\/k8s\/coffee-shop\/ <\/code><\/pre>\n<p>  \u0412 \u0444\u0430\u0439\u043b\u0435 deployment.yaml \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"bash\">imagePullSecrets:   - name: craas-auth <\/code><\/pre>\n<p>  \u0418 \u043c\u0435\u043d\u044f\u0435\u043c URL \u043e\u0431\u0440\u0430\u0437\u0430 \u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439:<\/p>\n<pre><code class=\"bash\">containers:   - name: coffee-shop   image: cr.selcloud.ru\/coffee-shop\/coffee-shop:latest  <\/code><\/pre>\n<p>  \u0412 \u0444\u0430\u0439\u043b\u0435 ingress.yaml \u043c\u0435\u043d\u044f\u0435\u043c \u0434\u043e\u043c\u0435\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043b\u0435\u043d\u0434\u0438\u043d\u0433:<\/p>\n<pre><code class=\"bash\">  ingressClassName: nginx   rules:     - host: coffee-shop.yourname11.ru <\/code><\/pre>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432\u0430\u043c\u0438 \u0434\u043e\u043c\u0435\u043d.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0435\u0439\u043c\u0441\u043f\u0435\u0439\u0441, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 Kubernetes:<\/p>\n<pre><code class=\"bash\">kubectl create namespace webinar <\/code><\/pre>\n<p>  \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435:<\/p>\n<pre><code class=\"bash\">kubectl apply -f . <\/code><\/pre>\n<p>  \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u043e\u0432. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 Running:<\/p>\n<pre><code class=\"bash\">kubectl get pods -n webinar <\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/1t\/bx\/7g\/1tbx7ggq1jfhhg2srnpdgs9orsy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/1t\/bx\/7g\/1tbx7ggq1jfhhg2srnpdgs9orsy.png\"\/><\/div>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/h2>\n<p><\/font>  <\/p>\n<h2>\u0412\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442<\/h2>\n<p>  \u0412\u044b\u043f\u0443\u0441\u0442\u0438\u043c \u0434\u043b\u044f \u0434\u043e\u043c\u0435\u043d\u0430 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <b>\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432<\/b> \u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/jo\/rb\/82\/jorb82u9s1v6fqrdazvan_evcpg.png\" data-src=\"https:\/\/habrastorage.org\/webt\/jo\/rb\/82\/jorb82u9s1v6fqrdazvan_evcpg.png\"\/><\/div>\n<p>  \u0415\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043e\u0442 Let\u2019s Encrypt. \u0412\u0432\u043e\u0434\u0438\u043c \u0438\u043c\u044f \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u043e\u043c\u0435\u043d:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hw\/2i\/0r\/hw2i0r3cqfs3awfufx7bvmm_yra.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hw\/2i\/0r\/hw2i0r3cqfs3awfufx7bvmm_yra.png\"\/><\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c yourname11.ru \u2014 \u0438\u043c\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u0432 ingress.yaml.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/f2\/dy\/id\/f2dyidde2yu0pdmbwtxxx8jk9ig.png\" data-src=\"https:\/\/habrastorage.org\/webt\/f2\/dy\/id\/f2dyidde2yu0pdmbwtxxx8jk9ig.png\"\/><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0442\u0430\u043b \u0430\u043a\u0442\u0438\u0432\u0435\u043d, \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e uuid, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043c \u0432 Helm-\u0447\u0430\u0440\u0442\u0435 ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ph\/dp\/bu\/phdpbumnatemdgnl3icbrndh27u.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ph\/dp\/bu\/phdpbumnatemdgnl3icbrndh27u.png\"\/><\/div>\n<p>  <b>\u0412\u0430\u0436\u043d\u043e:<\/b> \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u044f\u0442\u0438 \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0439 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0438 Ingress-controller<\/h3>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440. \u041f\u0440\u0438 \u0435\u0433\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u043c\u044b \u0443\u043a\u0430\u0436\u0435\u043c uuid \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0431\u044b\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0439 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <a href=\"https:\/\/docs.selectel.ru\/cloud\/managed-kubernetes\/networks\/set-up-ingress\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=loud_article_kubernetescraas_080424\">\u0432 \u043d\u0430\u0448\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<p>  \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u043a\u043b\u0430\u0434\u043a\u0443 c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p>  \u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f values.yaml \u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"bash\">helm inspect values ingress-nginx\/ingress-nginx > values.yaml <\/code><\/pre>\n<p>  \u0412 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432\u044b\u0448\u0435 \u0438\u0437 \u043f\u0443\u043d\u043a\u0442\u0430 4 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 values.yaml.<\/p>\n<p>  \u0418 \u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c uuid \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430:<\/p>\n<pre><code class=\"bash\">    annotations: {       loadbalancer.openstack.org\/default-tls-container-ref: \"&lt;certificate_uuid>\"     } <\/code><\/pre>\n<p>  values.yaml. &lt;certificate_uuid><b> \u2014 <\/b>\u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 uuid \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0438\u0437 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hi\/a-\/32\/hia-32ojb7d2tifmca0bhubco-s.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hi\/a-\/32\/hia-32ojb7d2tifmca0bhubco-s.png\"\/><\/div>\n<p>  <b>\u0412\u0430\u0436\u043d\u043e:<\/b> \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u0431\u043b\u043e\u043a\u0435, service, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0438\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441 HTTPS \u043d\u0430 HTTP:<\/p>\n<pre><code class=\"bash\">        targetPorts:           # -- Port of the ingress controller the external HTTP listener is mapped to.           http: http           # -- Port of the ingress controller the external HTTPS listener is mapped to.           https: http # \u0417\u0434\u0435\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0443 https -> http <\/code><\/pre>\n<p>  \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438\u043d\u0433\u0440\u0435\u0441\u0441-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u043f\u0438\u0448\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438:<\/p>\n<pre><code class=\"bash\">helm install ingress-nginx\/ingress-nginx --generate-name -f values.yaml <\/code><\/pre>\n<p>  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b <b>\u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438<\/b>. \u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f, \u0430 \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/5g\/og\/-j\/5gog-j_gzuzggscdqdl3mhafwos.png\" data-src=\"https:\/\/habrastorage.org\/webt\/5g\/og\/-j\/5gog-j_gzuzggscdqdl3mhafwos.png\"\/><\/div>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u0442 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 Active, \u043e\u0431\u043d\u043e\u0432\u0438\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 IP-\u0430\u0434\u0440\u0435\u0441:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/y-\/6d\/2m\/y-6d2mdyezixm4ln5k56ilipz-a.png\" data-src=\"https:\/\/habrastorage.org\/webt\/y-\/6d\/2m\/y-6d2mdyezixm4ln5k56ilipz-a.png\"\/><\/div>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e\u0442 IP-\u0430\u0434\u0440\u0435\u0441 \u0432 \u0410-\u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043e\u043c\u0435\u043d\u0430: <b>\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b<\/b> \u2192 <b>\u0414\u041d\u0421-\u0445\u043e\u0441\u0442\u0438\u043d\u0433<\/b> \u2192 <b>\u0414\u043e\u043c\u0435\u043d\u044b<\/b> \u2192 <b>\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c<\/b> \u2192 <b>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c<\/b>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/h2\/l0\/ss\/h2l0sscom_fywsosqd0c5rgt-y0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/h2\/l0\/ss\/h2l0sscom_fywsosqd0c5rgt-y0.png\"\/><\/div>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0443\u0441\u043b\u0443\u0433\u043e\u0439 DNS-\u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 <a href=\"https:\/\/docs.selectel.ru\/networks-services\/dns\/records\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=loud_article_kubernetescraas_080424\">\u0432 \u043d\u0430\u0448\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u0413\u043e\u0442\u043e\u0432\u043e!<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/8f\/nz\/ur\/8fnzurrfryiowjhamwdxn3wi8_e.png\" data-src=\"https:\/\/habrastorage.org\/webt\/8f\/nz\/ur\/8fnzurrfryiowjhamwdxn3wi8_e.png\"\/><\/div>\n<p>  <\/p>\n<blockquote><p><b>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044d\u0442\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0442\u043e\u0436\u0435 \u0432\u0430\u0441 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442:<\/b><\/p>\n<p>  \u2192 <a href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/804155\">\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Intellifusion \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 14-\u043d\u043c \u0418\u0418-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440. \u0427\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0447\u0438\u043f \u0438 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043e\u043d \u043d\u0443\u0436\u0435\u043d?<\/a><br \/>  \u2192 <a href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/801765\">Python, JavaScript \u0438\u043b\u0438 C++? \u0420\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0432 2024 \u0433\u043e\u0434\u0443<\/a><br \/>  \u2192 <a href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/804183\">\u0411\u044d\u043a\u0430\u043f\u044b \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0438 \u043c\u0430\u0442\u0435\u0440\u044b\u0445<\/a><\/p><\/blockquote>\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\/806091\/\"> https:\/\/habr.com\/ru\/articles\/806091\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/yu\/yw\/73\/yuyw73vma1iva6orib-td5bi4cc.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/yu\/yw\/73\/yuyw73vma1iva6orib-td5bi4cc.jpeg\" data-blurred=\"true\"\/><\/div>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0412 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0430\u0439\u0442 \u0432 Kubernetes c \u043f\u043e\u043c\u043e\u0449\u044c\u044e Terraform. \u0420\u0430\u0437\u0431\u0435\u0440\u0443 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e CRaaS \u0441 <a href=\"https:\/\/selectel.ru\/services\/cloud\/kubernetes\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=cloud_article_kubernetescraas_080424_content\">Managed Kubernetes<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442 \u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u043a\u043e\u0432.<\/p>\n<p>  <b>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440:<\/b> \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c c \u043d\u0443\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Terraform. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u044d\u0442\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0438\u0437\u0443\u0447\u0438\u0442\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u00ab<a href=\"https:\/\/selectel.ru\/blog\/tutorials\/how-to-deploy-your-application-to-kubernetes\/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=loud_article_kubernetescraas_080424\">\u041a\u0430\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 Kubernetes<\/a>\u00bb.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-372998","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/372998","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=372998"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/372998\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=372998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=372998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=372998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}