{"id":94416,"date":"2025-01-24T19:20:57","date_gmt":"2025-01-24T15:50:57","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/"},"modified":"2025-01-24T19:20:57","modified_gmt":"2025-01-24T15:50:57","slug":"%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/","title":{"rendered":"\u0686\u06af\u0648\u0646\u0647 \u0648 \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0627\u0632 Terraform \u0628\u0627 Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645"},"content":{"rendered":"<div data-article-id=\"2238704\" id=\"article-body\">\n<p><em>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062a\u0648\u0633\u0637 \u06a9\u0648\u0648\u06cc\u062f \u0631\u0627\u062a\u06cc \u062f\u0631 \u0648\u0628\u0644\u0627\u06af mogenius \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/em><\/p>\n<p>Terraform \u06cc\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0628\u0632\u0627\u0631 \u06a9\u062f \u0627\u0633\u062a \u06a9\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0631\u0648\u0634 ClickOps \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641\u060c \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc\u060c \u062f\u0631\u0648\u0646 \u0645\u062d\u0644 \u06cc\u0627 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0627\u0628\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0631\u0648\u0634 \u0627\u0639\u0644\u0627\u0646\u06cc \u0622\u0646 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0628\u0631 \u0631\u0648\u06cc \u0648\u0636\u0639\u06cc\u062a \u0647\u062f\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0631\u0627\u062d\u0644 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0622\u0646 \u0648\u0636\u0639\u06cc\u062a\u060c \u06a9\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>Terraform \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0634\u0645\u0627 \u0632\u0628\u0627\u0646 \u0627\u0639\u0644\u0627\u0646\u06cc \u062e\u0648\u062f \u0628\u0647 \u0646\u0627\u0645 \u0632\u0628\u0627\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Hashicorp (\u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0632\u0628\u0627\u0646 Terraform \u0646\u06cc\u0632 \u0645\u06cc\u200c\u06af\u0648\u06cc\u0646\u062f) \u062f\u0627\u0631\u062f \u0648 \u0627\u0628\u0632\u0627\u0631 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0622\u0646 \u0627\u0646\u062c\u0627\u0645 \u0639\u0645\u0644\u06cc\u0627\u062a \u0631\u0648\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0634\u0645\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0646\u062d\u0648\u0647 \u0648 \u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0628\u0627 Kubernetes \u0631\u0627 \u0628\u0627 \u0645\u062b\u0627\u0644\u06cc \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u062d\u0644\u06cc nginx \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%DA%86%D9%87_%D8%B2%D9%85%D8%A7%D9%86%DB%8C_%D8%A7%D8%B2_Terraform_%D8%A8%D8%A7_Kubernetes_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D9%85\" >\u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0627\u0632 Terraform \u0628\u0627 Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Terraform_%D8%A8%D8%A7_Kubernetes\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0628\u0627 Kubernetes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D9%85%D8%AD%DB%8C%D8%B7\" >\u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u06cc\u0637<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A7%D8%B1%D8%A7%D8%A6%D9%87_%D8%AF%D9%87%D9%86%D8%AF%D9%87_Terraform_Kubernetes\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 Terraform Kubernetes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%88_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DB%8C%DA%A9_%D9%85%D8%A7%DA%98%D9%88%D9%84_Terraform_nginx\" >\u0627\u06cc\u062c\u0627\u062f \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 Terraform nginx<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%81%D8%B6%D8%A7%DB%8C_%D9%86%D8%A7%D9%85_Kubernetes_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D9%85%D9%86%D8%A7%D8%A8%D8%B9\" >\u0627\u06cc\u062c\u0627\u062f \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 Kubernetes \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0646\u0627\u0628\u0639<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_nginx\" >\u062a\u0639\u0631\u06cc\u0641 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%B3%D8%B1%D9%88%DB%8C%D8%B3_Kubernetes_%D8%A8%D8%B1%D8%A7%DB%8C_nginx\" >\u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633 Kubernetes \u0628\u0631\u0627\u06cc nginx<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D9%88_%D8%A7%D8%B9%D9%85%D8%A7%D9%84_%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA\" >\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0627\u0698\u0648\u0644 \u0648 \u0627\u0639\u0645\u0627\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D9%85%D9%82%DB%8C%D8%A7%D8%B3_%D8%A8%D9%86%D8%AF%DB%8C_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_nginx\" >\u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D9%85%D9%86%D8%A7%D8%A8%D8%B9_Kubernetes_%D8%A8%D8%A7_Terraform\" >\u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0627\u0628\u0639 Kubernetes \u0628\u0627 Terraform<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/%da%86%da%af%d9%88%d9%86%d9%87-%d9%88-%da%86%d9%87-%d8%b2%d9%85%d8%a7%d9%86%db%8c-%d8%a7%d8%b2-terraform-%d8%a8%d8%a7-kubernetes-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D9%87_%D8%B2%D9%85%D8%A7%D9%86%DB%8C_%D8%A7%D8%B2_Terraform_%D8%A8%D8%A7_Kubernetes_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D9%85\"><\/span>\n<p>  \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0627\u0632 Terraform \u0628\u0627 Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Terraform \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0644\u062a\u0641\u0631\u0645 \u0627\u0633\u062a\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0644 \u067e\u0634\u062a\u0647 \u062e\u0648\u062f \u0635\u0631\u0641 \u0646\u0638\u0631 \u0627\u0632 \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627\u060c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u060c \u067e\u0644\u062a\u0641\u0631\u0645\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0628\u0627 \u0622\u0648\u0631\u062f\u0646 \u062a\u0645\u0627\u0645 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062e\u0648\u062f \u062f\u0631 \u06cc\u06a9 \u0645\u06a9\u0627\u0646\u060c \u062a\u0648\u0633\u0639\u0647 \u0686\u0646\u062f \u0627\u0628\u0631\u06cc \u0648 \u0627\u0628\u0631\u06cc \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0631\u0627 \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627\u060c \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627 \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062a\u0631\u06a9\u06cc\u0628 Terraform \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0646\u0633\u062e\u0647 \u0648 \u062e\u0637 \u0644\u0648\u0644\u0647 CI\/CD \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u067e\u0631\u0648\u0698\u0647 Terraform \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062e\u0632\u0646 Git \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0647\u0631 \u06af\u0648\u0646\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0628\u0627 \u062e\u0631\u0648\u062c\u06cc \u0637\u0631\u062d Terraform \u0647\u0645\u0631\u0627\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u06cc \u0631\u0627 \u06a9\u0647 \u0631\u0648\u0627\u0628\u0637 \u0639\u0645\u0648\u0645\u06cc \u062f\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc \u062f\u0647\u062f. \u0633\u067e\u0633 \u0628\u0627\u0632\u0628\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062f \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u062f \u0648 a \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u062f <strong>terraform application -auto-approve<\/strong> \u0641\u0631\u0645\u0627\u0646<\/p>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Kubernetes \u0628\u0627 Terraform \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062a\u0645\u0627\u0645 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 &#8211; \u0645\u0627\u0646\u0646\u062f \u0634\u0628\u06a9\u0647\u060c \u062d\u062c\u0645 \u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc\u060c \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647\u060c \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc\u060c \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0647\u0627\u060c DNS \u0648 \u063a\u06cc\u0631\u0647 &#8211; \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 Terraform \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u0648\u0642\u062a\u06cc \u0628\u0627 \u062a\u0645\u0627\u0645 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0686\u0646\u062f \u0627\u0628\u0631\u06cc \u0648 \u062a\u0631\u06a9\u06cc\u0628\u06cc-\u0627\u0628\u0631 \u0633\u0631\u0648\u06a9\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f\u060c Terraform \u0628\u0647 \u06a9\u0627\u0631\u062a\u0627\u0646 \u0645\u06cc\u200c\u0622\u06cc\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u0628\u06cc\u0646 \u0627\u0634\u06cc\u0627\u0621 \u0645\u062e\u062a\u0644\u0641 Kubernetes \u0648 \u0645\u0646\u0627\u0628\u0639 \u0627\u0628\u0631\u06cc \u0647\u0633\u062a\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Terraform_%D8%A8%D8%A7_Kubernetes\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0628\u0627 Kubernetes<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0628\u0627 Kubernetes \u0631\u0627 \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u062f\u0648 \u062e\u0648\u0634\u0647 nginx \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u06af\u06cc\u060c \u0634\u0645\u0627 \u062e\u0648\u0634\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0645\u0627\u0634\u06cc\u0646 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0645\u0633\u062a\u0642\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f\u060c \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u062f\u0631 \u06cc\u06a9 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u062f\u0646\u06cc\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc\u060c \u062e\u0648\u0634\u0647 \u0647\u0627 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u062f\u0631 \u0641\u0636\u0627\u06cc \u0627\u0628\u0631\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D9%85%D8%AD%DB%8C%D8%B7\"><\/span>\n<p>  \u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u06cc\u0637<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0628\u0627 Kubernetes\u060c \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u062e\u0648\u062f \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<ul>\n<li>\n<p>Docker Engine: \u067e\u0627\u06cc\u0647 \u0648 \u0627\u0633\u0627\u0633 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Minikube \u062f\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<li>\n<p>Minikube: \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062e\u0648\u0634\u0647 \u0645\u062d\u0644\u06cc Kubernetes \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0647\u0627\u06cc nginx \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/li>\n<li>\n<p>kubectl: \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0632 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u062e\u0648\u062f \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 Kubernetes &#8211; \u0645\u0627\u0646\u0646\u062f pods\u060c \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 &#8211; \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\n<p>Terraform CLI: \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0628\u0627 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 Terraform \u0627\u0632 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u062e\u0648\u062f \u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f (\u06cc\u0639\u0646\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc\u060c \u0627\u0639\u0645\u0627\u0644 \u0648 \u062a\u062e\u0631\u06cc\u0628 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f)<\/li>\n<li>Git: \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0646\u062a\u0631\u0644 \u0646\u0633\u062e\u0647 \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u062f \u0645\u0646\u0628\u0639 \u0645\u0627\u0698\u0648\u0644\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0627 \u0622\u0646 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 Docker Engine \u0648 Minikube \u0641\u0639\u0627\u0644 \u0647\u0633\u062a\u0646\u062f. \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 Minikube \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>minikube start\nminikube dashboard\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\u279c  ~ minikube dashboard\n\ud83e\udd14  Verifying dashboard health ...\n\ud83d\ude80  Launching proxy ...\n\ud83e\udd14  Verifying proxy health ...\n\ud83c\udf89  Opening http:\/\/127.0.0.1:57560\/api\/v1\/namespaces\/kubernetes-dashboard\/services\/http:kubernetes-dashboard:\/proxy\/ in your default browser...\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>URL http:\/\/127.0.0.1:57560 \u0631\u0627 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u06a9\u0646\u06cc\u062f \u0632\u06cc\u0631\u0627 \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p>\u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u062f\u0633\u062a\u06af\u0627\u0647 Docker \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>docker info\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0627\u06cc\u0646 \u0645\u062e\u0632\u0646 GitHub \u0631\u0627 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0645\u0627\u0698\u0648\u0644 Terraform nginx \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u060c \u06a9\u0644\u0648\u0646 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>git clone https:\/\/github.com\/kovid-r\/terraform-nginx-k8s.git\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u0627\u06af\u0631\u0686\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0645\u0627\u0645 \u06a9\u062f\u0647\u0627\u06cc Terraform \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0648\u0627\u062d\u062f \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f <strong>.tf<\/strong> \u0641\u0627\u06cc\u0644\u060c \u0639\u0645\u0644 \u0628\u062f\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u062f \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f. \u062f\u0631 \u0645\u062e\u0632\u0646\u060c \u06a9\u062f\u06cc \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0633\u0647 \u0641\u0627\u06cc\u0644 \u0632\u06cc\u0631 \u062f\u0631 \u0645\u062e\u0632\u0646 GitHub \u062a\u0642\u0633\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<ul>\n<li>main.tf: \u0634\u0627\u0645\u0644 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0641\u0636\u0627\u06cc \u0646\u0627\u0645\u060c \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0633\u0631\u0648\u06cc\u0633 Kubernetes \u0627\u0633\u062a<\/li>\n<li>variables.tf: \u0634\u0627\u0645\u0644 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc Terraform \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Minikube \u0627\u0631\u0627\u0626\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/li>\n<li>versions.tf: \u0634\u0627\u0645\u0644 \u062a\u0639\u0631\u06cc\u0641 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 Kubernetes \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0645\u0646\u0628\u0639 \u0648 \u0646\u0633\u062e\u0647 \u0622\u0646 \u0627\u0633\u062a<\/li>\n<\/ul>\n<p>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a\u0627\u0631\u062f\u0647\u06cc \u0641\u0627\u06cc\u0644 \u0647\u0627 \u0648 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0647\u0627 \u062f\u0631 \u0645\u062e\u0632\u0646 GitHub \u0628\u06cc\u0627\u0628\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd0cujtowfyothdmpieg3.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"388\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A7%D8%B1%D8%A7%D8%A6%D9%87_%D8%AF%D9%87%D9%86%D8%AF%D9%87_Terraform_Kubernetes\"><\/span>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 Terraform Kubernetes<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0631\u0633\u0645\u06cc Kubernetes Hashicorp \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062f\u0648 \u062e\u0648\u0634\u0647 \u0645\u062d\u0644\u06cc Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062f\u0633\u062a\u0648\u0631 terraform init \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0642\u0637\u0639\u0647 \u0632\u06cc\u0631 \u0627\u0632 \u0641\u0627\u06cc\u0644 versions.tf \u062f\u0631 \u0645\u062e\u0632\u0646 GitHub \u0645\u0627\u0698\u0648\u0644 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0631\u0627 \u0628\u0647 \u067e\u0631\u0648\u0698\u0647 \u0645\u062d\u0644\u06cc Terraform \u0634\u0645\u0627 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>terraform {\n  required_providers {\n    kubernetes = {\n      source  = \"hashicorp\/kubernetes\"\n      version = \"~&gt; 2.11\" # Update based on latest stable version\n    }\n  }\n\n  required_version = \"&gt;= 1.0.0\"\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%88_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DB%8C%DA%A9_%D9%85%D8%A7%DA%98%D9%88%D9%84_Terraform_nginx\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 Terraform nginx<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Kubernetes \u0648 Terraform\u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 Terraform nginx \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. Terraform \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u0645\u0646\u0627\u0628\u0639 \u062c\u062f\u06cc\u062f \u062f\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062e\u0648\u062f\u060c \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631\u0686\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u0627\u0698\u0648\u0644 \u0647\u0627 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a\u060c Terraform \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0627\u0632 \u0622\u0646\u0647\u0627 \u062f\u0631 \u062d\u062f \u0627\u0639\u062a\u062f\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u0646\u062a\u0632\u0627\u0639 \u062c\u062f\u06cc\u062f\u06cc \u062f\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0645\u0648\u0632\u0634 \u0631\u0633\u0645\u06cc Terraform \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0627\u0698\u0648\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f\u060c \u0627\u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0627\u0632 \u067e\u06cc\u0634 \u0633\u0627\u062e\u062a\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. <strong>terraform-nginx-k8s<\/strong> \u0645\u0627\u0698\u0648\u0644 \u0627\u0632 \u0645\u062e\u0632\u0646 GitHub. \u0627\u06cc\u0646 \u0645\u0627\u0698\u0648\u0644 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0631\u0633\u0645\u06cc Kubernetes \u0627\u0632 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc Terraform \u0627\u0633\u062a.<\/p>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 <strong>terraform-nginx-k8s<\/strong> \u0645\u0627\u0698\u0648\u0644\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0646\u062d\u0648\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u062c\u0632\u0627\u06cc \u0627\u0635\u0644\u06cc \u0622\u0646 \u0648 \u0646\u062d\u0648\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0645\u0646\u0627\u0628\u0639 \u0645\u062e\u062a\u0644\u0641 Kubernetes \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%81%D8%B6%D8%A7%DB%8C_%D9%86%D8%A7%D9%85_Kubernetes_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D9%85%D9%86%D8%A7%D8%A8%D8%B9\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 Kubernetes \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0646\u0627\u0628\u0639<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0641\u0636\u0627\u0647\u0627\u06cc \u0646\u0627\u0645 Kubernetes \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0648\u0634\u0647 \u0647\u0627 \u0648 \u0632\u06cc\u0631\u062e\u0648\u0634\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0645\u0627\u0698\u0648\u0644 \u0627\u0632 \u06a9\u062f \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 \u062c\u062f\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>## resource \"kubernetes_namespace\" \"nginx\" {\n  metadata {\n    name = var.namespace\n  }\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u0627\u06cc\u0646 \u06cc\u06a9 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f <strong>kubernetes_namespace<\/strong> \u0628\u0627 \u0646\u0627\u0645 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 nginx\u060c \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u0644\u063a\u0648 \u06a9\u0646\u06cc\u062f <strong>\u0645\u062a\u063a\u06cc\u0631\u0647\u0627.tf<\/strong> \u0641\u0627\u06cc\u0644 \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u0622\u0645\u0648\u0632\u0634\u060c \u0627\u0632 \u0627\u06cc\u0646 \u06a9\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062f\u0648 \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. <strong>nginx-cluster-one-ns<\/strong> \u0648 <strong>nginx-cluster-two-ns<\/strong>\u060c \u06cc\u06a9\u06cc \u0628\u0631\u0627\u06cc \u0647\u0631 \u062e\u0648\u0634\u0647 Kubernetes. \u062f\u0631 \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0622\u0646 \u062e\u0648\u0634\u0647 \u0647\u0627\u060c \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0647\u0627\u06cc nginx \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_nginx\"><\/span>\n<p>  \u062a\u0639\u0631\u06cc\u0641 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0639\u062f\u060c \u0645\u0627\u0698\u0648\u0644 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0646\u0628\u0639 kubernetes_deployment \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>resource \"kubernetes_deployment\" \"nginx\" {\n  metadata {\n    name      = \"nginx-deployment\"\n    namespace = kubernetes_namespace.nginx.metadata[0].name\n    labels = {\n      app = \"nginx\"\n    }\n  }\n\n  spec {\n    replicas = var.replicas\n\n    selector {\n      match_labels = {\n        app = \"nginx\"\n      }\n    }\n\n    template {\n      metadata {\n        labels = {\n          app = \"nginx\"\n        }\n      }\n\n      spec {\n        container {\n          name  = \"nginx\"\n          image = \"nginx:${var.nginx_version}\"\n\n          port {\n            container_port = 80\n          }\n\n          resources {\n            limits = {\n              cpu    = var.cpu_limit\n              memory = var.memory_limit\n            }\n          }\n        }\n      }\n    }\n  }\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0645\u0646\u0628\u0639 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0641\u0636\u0627\u06cc \u0646\u0627\u0645\u060c \u062a\u0639\u062f\u0627\u062f \u0646\u0633\u062e\u0647 \u0647\u0627\u060c \u0646\u0633\u062e\u0647 nginx\u060c \u0645\u062d\u062f\u0648\u062f\u06cc\u062a CPU \u0648 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u062d\u0627\u0641\u0638\u0647 \u0631\u0627 \u0627\u0632 <strong>\u0645\u062a\u063a\u06cc\u0631\u0647\u0627.tf<\/strong> \u0641\u0627\u06cc\u0644 \u0647\u0646\u06af\u0627\u0645 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u0627\u0698\u0648\u0644 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0639\u0627\u0631\u06cc\u0641 \u0645\u062a\u063a\u06cc\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0631\u0627 \u0644\u063a\u0648 \u06a9\u0646\u06cc\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0648\u0642\u062a\u06cc \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 Kubernetes \u062f\u0631 \u0642\u0633\u0645\u062a \u0628\u0639\u062f\u06cc \u0622\u0645\u0648\u0632\u0634 \u0648\u0627\u0631\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0628\u0631\u062e\u06cc \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>namespace                         = \"nginx-cluster-one-ns\"\nnginx_version                     = \"1.21.1\"\nreplicas                          = 2\ncpu_limit                         = \"250\"\nmemory_limit                      = \"128Mi\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u0627\u06cc\u0646 \u0646\u0633\u062e\u0647 nginx \u0648 \u0645\u0646\u0627\u0628\u0639\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u06cc\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%B3%D8%B1%D9%88%DB%8C%D8%B3_Kubernetes_%D8%A8%D8%B1%D8%A7%DB%8C_nginx\"><\/span>\n<p>  \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633 Kubernetes \u0628\u0631\u0627\u06cc nginx<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0645\u0627\u0698\u0648\u0644 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 Kubernetes \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u06a9\u0647 \u062f\u0631 \u062e\u0648\u0634\u0647 Kubernetes \u0634\u0645\u0627 \u062f\u0631 \u067e\u0634\u062a \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0645\u0646\u0641\u0631\u062f \u0631\u0648 \u0628\u0647 \u0628\u06cc\u0631\u0648\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>resource \"kubernetes_service\" \"nginx\" {\n  metadata {\n    name      = \"nginx-service\"\n    namespace = kubernetes_namespace.nginx.metadata[0].name\n  }\n\n  spec {\n    selector = {\n      app = \"nginx\"\n    }\n\n    port {\n      port        = 80\n      target_port = 80\n    }\n\n    type = var.service_type\n  }\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D9%88_%D8%A7%D8%B9%D9%85%D8%A7%D9%84_%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA\"><\/span>\n<p>  \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0627\u0698\u0648\u0644 \u0648 \u0627\u0639\u0645\u0627\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0627\u062c\u0632\u0627\u06cc \u0627\u0635\u0644\u06cc \u0645\u0627\u0698\u0648\u0644 Kubernetes nginx \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0645\u0633\u062a\u0642\u0631 \u06a9\u0631\u062f\u0647 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u062f\u0648 \u062e\u0648\u0634\u0647 \u0645\u062c\u0632\u0627\u06cc nginx \u0631\u0627 \u0628\u0627 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0642\u0637\u0639\u0647 \u0632\u06cc\u0631 \u062f\u0631 a \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f <strong>.tf<\/strong> \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062c\u062f\u06cc\u062f\u06cc \u06a9\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>module \"nginx_cluster_one\" {\n  source = \"\/path\/to\/nginx-module\/\"\n  kubernetes_host                   = \"http:\/\/127.0.0.1:57560\/\" # replace with your minikube dashboard address\n  kubernetes_client_certificate     = \"\/path\/to\/.minikube\/profiles\/minikube\/client.crt\"\n  kubernetes_client_key             = \"\/path\/to\/.minikube\/profiles\/minikube\/client.key\"\n  kubernetes_cluster_ca_certificate = \"\/path\/to\/.minikube\/ca.crt\"\n  namespace                         = \"nginx-cluster-one-ns\"\n  nginx_version                     = \"1.21.1\"\n  replicas                          = 2\n  cpu_limit                         = \"250m\"\n  memory_limit                      = \"128Mi\"\n  service_type                      = \"ClusterIP\"\n}\n\nmodule \"nginx_cluster_two\" {\n  source = \"\/path\/to\/nginx-module\/\"\n  kubernetes_host                   = \"http:\/\/127.0.0.1:57560\/\" # replace with your minikube dashboard address\n  kubernetes_client_certificate     = \"\/path\/to\/.minikube\/profiles\/minikube\/client.crt\"\n  kubernetes_client_key             = \"\/path\/to\/.minikube\/profiles\/minikube\/client.key\"\n  kubernetes_cluster_ca_certificate = \"\/path\/to\/.minikube\/ca.crt\"\n  namespace                         = \"nginx-cluster-two-ns\"\n  nginx_version                     = \"1.21.1\"\n  replicas                          = 3\n  cpu_limit                         = \"250m\"\n  memory_limit                      = \"128Mi\"\n  service_type                      = \"ClusterIP\"\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0648 \u062e\u0648\u0634\u0647 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u062f \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062e\u0627\u0635 \u062e\u0648\u0634\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 Kubernetes\u060c \u0646\u0633\u062e\u0647 nginx\u060c \u0645\u062d\u062f\u0648\u062f\u06cc\u062a CPU\u060c \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u062d\u0627\u0641\u0638\u0647 \u0648 \u0646\u0648\u0639 \u0633\u0631\u0648\u06cc\u0633 \u0648 \u0645\u0648\u0627\u0631\u062f \u062f\u06cc\u06af\u0631 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u062f. \u062d\u062a\u0645\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f <strong>kubernetes_client_certificate<\/strong>\u060c <strong>kubernetes_client_key<\/strong>\u060c \u0648 <strong>kubernetes_cluster_ca_certificate<\/strong> \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0635\u062d\u06cc\u062d \u0627\u0632 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Minikube \u0634\u0645\u0627\u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f <strong>.minikube<\/strong> \u067e\u0648\u0634\u0647 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u0627\u0635\u0644\u06cc \u06a9\u0647 Minikube \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0631\u062f\u06cc\u062f\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u062a Terraform \u0632\u06cc\u0631 \u0631\u0627 \u06cc\u06a9\u06cc \u067e\u0633 \u0627\u0632 \u062f\u06cc\u06af\u0631\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>terraform init\nterraform plan \nterraform apply\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f <strong>terraform \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u062f<\/strong> \u062f\u0633\u062a\u0648\u0631\u060c \u0627\u0632 \u0634\u0645\u0627 \u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f. \u0628\u0644\u0647 \u0631\u0627 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0627\u06cc\u0646\u062a\u0631 \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f\u060c \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Plan: 6 to add, 0 to change, 0 to destroy.\n\nDo you want to perform these actions?\n  Terraform will perform the actions described above.\n  Only 'yes' will be accepted to approve.\n\n  Enter a value: yes\n\nmodule.nginx_cluster_one.kubernetes_namespace.nginx: Creating...\nmodule.nginx_cluster_one.kubernetes_namespace.nginx: Creation complete after 0s [id=nginx-cluster-one-ns]\nmodule.nginx_cluster_one.kubernetes_service.nginx: Creating...\nmodule.nginx_cluster_one.kubernetes_deployment.nginx: Creating...\nmodule.nginx_cluster_two.kubernetes_namespace.nginx: Creating...\nmodule.nginx_cluster_two.kubernetes_namespace.nginx: Creation complete after 0s [id=nginx-cluster-two-ns]\nmodule.nginx_cluster_one.kubernetes_service.nginx: Creation complete after 0s [id=nginx-cluster-one-ns\/nginx-service]\nmodule.nginx_cluster_two.kubernetes_service.nginx: Creating...\nmodule.nginx_cluster_two.kubernetes_deployment.nginx: Creating...\nmodule.nginx_cluster_two.kubernetes_service.nginx: Creation complete after 0s [id=nginx-cluster-two-ns\/nginx-service]\nmodule.nginx_cluster_one.kubernetes_deployment.nginx: Creation complete after 4s [id=nginx-cluster-one-ns\/nginx-deployment]\nmodule.nginx_cluster_two.kubernetes_deployment.nginx: Creation complete after 4s [id=nginx-cluster-two-ns\/nginx-deployment]\n\nApply complete! Resources: 6 added, 0 changed, 0 destroyed.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u067e\u0633 \u0627\u0632 \u062a\u06a9\u0645\u06cc\u0644 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 terraform show \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062e\u0648\u062f\u062a\u0627\u0646 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0645\u0633\u062a\u0642\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631. \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062e\u0631\u0648\u062c\u06cc \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 terraform show \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 GitHub Gist \u06cc\u0627\u0641\u062a.<\/p>\n<p>\u0645\u062a\u0646\u0627\u0648\u0628\u0627\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <strong>kubectl CLI<\/strong> \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0631 \u0645\u0648\u0631\u062f \u062e\u0648\u0634\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0648 \u0645\u0646\u0627\u0628\u0639 \u0645\u0633\u062a\u0642\u0631 \u062f\u0631 \u0622\u0646\u0647\u0627. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u062d\u0648\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u0647\u0645\u0647 \u0645\u0646\u0627\u0628\u0639 \u0645\u0633\u062a\u0642\u0631 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a <strong>nginx-cluster-one-ns<\/strong>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\u279c kubectl get all -n nginx-cluster-one-ns\nNAME                                    READY   STATUS    RESTARTS   AGE\npod\/nginx-deployment-7d85df7dbc-ff2wz   1\/1     Running   0          101m\npod\/nginx-deployment-7d85df7dbc-g8xqh   1\/1     Running   0          101m\n\nNAME                    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE\nservice\/nginx-service   ClusterIP   10.109.36.68   <none>        80\/TCP    128m\n\nNAME                               READY   UP-TO-DATE   AVAILABLE   AGE\ndeployment.apps\/nginx-deployment   2\/2     2            2           128m\n\nNAME                                          DESIRED   CURRENT   READY   AGE\nreplicaset.apps\/nginx-deployment-7d85df7dbc   2         2         2       128m\nreplicaset.apps\/nginx-deployment-d55b49455    0         0         0       116m\n<\/none><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u0627\u06af\u0631 \u062e\u0648\u0634\u0647 \u062f\u0648\u0645 nginx \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0645\u0633\u062a\u0642\u0631 \u0634\u062f\u060c \u0628\u0627\u06cc\u062f \u0647\u0645\u0627\u0646 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f <strong>nginx-cluster-two-ns<\/strong>.<\/p>\n<p>\u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u062f\u0631 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Kubernetes \u0646\u06cc\u0632 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9q4gya2aygneis5xgkt1.png\" alt=\"\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Kubernetes \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u0646\u0627\u0628\u0639 \u062f\u0631 \u06cc\u06a9\u06cc \u0627\u0632 \u062e\u0648\u0634\u0647 \u0647\u0627 \u0645\u0633\u062a\u0642\u0631 \u0634\u062f\u0647 \u0627\u0646\u062f\" loading=\"lazy\" width=\"800\" height=\"446\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%82%DB%8C%D8%A7%D8%B3_%D8%A8%D9%86%D8%AF%DB%8C_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1_nginx\"><\/span>\n<p>  \u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx \u0634\u0645\u0627 \u062f\u0631 Terraform \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u0642\u06cc\u0627\u0633 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a \u0628\u0647 \u0641\u0627\u06cc\u0644 **.tf ** \u0628\u0631\u0648\u06cc\u062f \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f:<br \/>\u200c<\/p>\n<ul>\n<li>\u062f\u0631 nginx_cluster_one \u062a\u0639\u062f\u0627\u062f \u06a9\u067e\u06cc \u0647\u0627 \u0631\u0627 \u0627\u0632 2 \u0628\u0647 4 \u0648 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a CPU \u0631\u0627 \u0627\u0632 250 \u0645\u062a\u0631 \u0628\u0647 450 \u0645\u062a\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/li>\n<li>\u062f\u0631 nginx_cluster_two \u062a\u0639\u062f\u0627\u062f \u06a9\u067e\u06cc \u0647\u0627 \u0631\u0627 \u0627\u0632 3 \u0628\u0647 5 \u0648 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a CPU \u0631\u0627 \u0627\u0632 250 \u0645\u062a\u0631 \u0628\u0647 450 \u0645\u062a\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/li>\n<\/ul>\n<p>\u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u0646\u0627\u0628\u0639\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0628\u0631\u0637\u0631\u0641 \u06a9\u0646\u062f. \u067e\u0633 \u0627\u0632 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0634\u0645\u0627 <strong>.tf<\/strong> \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>module \"nginx_cluster_one\" {\n  source = \"\/path\/to\/nginx-module\/\"\n  kubernetes_host                   = \"http:\/\/127.0.0.1:57560\/\" # replace with your minikube dashboard address\n  kubernetes_client_certificate     = \"\/path\/to\/.minikube\/profiles\/minikube\/client.crt\"\n  kubernetes_client_key             = \"\/path\/to\/.minikube\/profiles\/minikube\/client.key\"\n  kubernetes_cluster_ca_certificate = \"\/path\/to\/.minikube\/ca.crt\"\n  namespace                         = \"nginx-cluster-one-ns\"\n  nginx_version                     = \"1.21.1\"\n  replicas                          = 4\n  cpu_limit                         = \"450m\"\n  memory_limit                      = \"128Mi\"\n  service_type                      = \"ClusterIP\"\n}\n\nmodule \"nginx_cluster_two\" {\n  source = \"\/path\/to\/nginx-module\/\"\n  kubernetes_host                   = \"http:\/\/127.0.0.1:57560\/\" # replace with your minikube dashboard address\n  kubernetes_client_certificate     = \"\/path\/to\/.minikube\/profiles\/minikube\/client.crt\"\n  kubernetes_client_key             = \"\/path\/to\/.minikube\/profiles\/minikube\/client.key\"\n  kubernetes_cluster_ca_certificate = \"\/path\/to\/.minikube\/ca.crt\"\n  namespace                         = \"nginx-cluster-two-ns\"\n  nginx_version                     = \"1.21.1\"\n  replicas                          = 5\n  cpu_limit                         = \"450m\"\n  memory_limit                      = \"128Mi\"\n  service_type                      = \"ClusterIP\"\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong>terraform \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u062f<\/strong> \u062f\u0633\u062a\u0648\u0631:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Plan: 0 to add, 2 to change, 0 to destroy.\n\nDo you want to perform these actions?\n  Terraform will perform the actions described above.\n  Only 'yes' will be accepted to approve.\n\n  Enter a value: yes\n\nmodule.nginx_cluster_two.kubernetes_deployment.nginx: Modifying... [id=nginx-cluster-two-ns\/nginx-deployment]\nmodule.nginx_cluster_one.kubernetes_deployment.nginx: Modifying... [id=nginx-cluster-one-ns\/nginx-deployment]\nmodule.nginx_cluster_two.kubernetes_deployment.nginx: Still modifying... [id=nginx-cluster-two-ns\/nginx-deployment, 10s elapsed]\nmodule.nginx_cluster_one.kubernetes_deployment.nginx: Still modifying... [id=nginx-cluster-one-ns\/nginx-deployment, 10s elapsed]\nmodule.nginx_cluster_two.kubernetes_deployment.nginx: Modifications complete after 15s [id=nginx-cluster-two-ns\/nginx-deployment]\nmodule.nginx_cluster_one.kubernetes_deployment.nginx: Modifications complete after 15s [id=nginx-cluster-one-ns\/nginx-deployment]\n\nApply complete! Resources: 0 added, 2 changed, 0 destroyed.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqh4xca9ah33k5ej6ipfl.png\" alt=\"\u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx\" loading=\"lazy\" width=\"800\" height=\"317\" title=\"\"><\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u060c \u0622\u0646 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f <strong>kubectl \u0647\u0645\u0647 -n nginx-cluster-one-ns \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u062f<\/strong> \u0641\u0631\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0627\u06cc\u0646\u06a9\u0647 \u0634\u0645\u0627 \u0628\u0647 \u062c\u0627\u06cc \u062f\u0648 \u067e\u0627\u062f \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631 \u062e\u0648\u062f \u0686\u0647\u0627\u0631 \u067e\u0627\u062f \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\u279c kubectl get all -n nginx-cluster-one-ns\nNAME                                   READY   STATUS    RESTARTS   AGE\npod\/nginx-deployment-d55b49455-2sqwg   1\/1     Running   0          33s\npod\/nginx-deployment-d55b49455-n87wf   1\/1     Running   0          33s\npod\/nginx-deployment-d55b49455-ww6l8   1\/1     Running   0          25s\npod\/nginx-deployment-d55b49455-zlntp   1\/1     Running   0          26s\n\nNAME                    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE\nservice\/nginx-service   ClusterIP   10.109.36.68   <none>        80\/TCP    141m\n\nNAME                               READY   UP-TO-DATE   AVAILABLE   AGE\ndeployment.apps\/nginx-deployment   4\/4     4            4           141m\n\nNAME                                          DESIRED   CURRENT   READY   AGE\nreplicaset.apps\/nginx-deployment-7d85df7dbc   0         0         0       141m\nreplicaset.apps\/nginx-deployment-d55b49455    4         4         4       128m\n\u200d\n<\/none><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D9%85%D9%86%D8%A7%D8%A8%D8%B9_Kubernetes_%D8%A8%D8%A7_Terraform\"><\/span>\n<p>  \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0627\u0628\u0639 Kubernetes \u0628\u0627 Terraform<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062f\u0627\u0646\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 nginx \u0631\u0627 \u062f\u0631 \u062f\u0648 \u062e\u0648\u0634\u0647 \u0645\u062e\u062a\u0644\u0641 Kubernetes \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f\u060c \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0634\u0631\u0648\u0639 \u0628\u0647 \u06a9\u0627\u0648\u0634 \u0645\u0646\u0627\u0628\u0639 \u0627\u0636\u0627\u0641\u06cc Kubernetes \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0647\u062a\u0631 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0647\u0627\u06cc \u0686\u0646\u062f\u06af\u0627\u0646\u0647 \u06cc\u06a9 \u0645\u0646\u0628\u0639\u060c \u0627\u0632 \u06cc\u06a9 ConfigMap \u0628\u0631\u0627\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0628\u0647 \u067e\u0627\u062f\u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 nginx \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u062d\u06cc\u0646 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u062e\u0648\u0627\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u062a\u0639\u0631\u06cc\u0641 \u0645\u0646\u0628\u0639 Kubernetes ConfigMap \u0641\u0627\u06cc\u0644 nginx.conf \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc nginx \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>resource \"kubernetes_config_map\" \"nginx_configmap\" {\n  metadata {\n    name      = \"nginx-configmap\"\n    namespace = var.namespace\n  }\n\n  data = {\n    \"nginx.conf\" = &lt;&lt;-EOF\n      server {\n        listen 80;\n        server_name localhost;\n\n        location \/ {\n          root \/usr\/share\/nginx\/html;\n          index index.html index.htm;\n        }\n\n        error_page 500 502 503 504 \/50x.html;\n        location = \/50x.html {\n          root \/usr\/share\/nginx\/html;\n        }\n      }\n    EOF\n  }\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u0645\u0647\u0645 Kubernetes \u0627\u06cc\u0646 \u0627\u0633\u062a <strong>kubernetes_ingress<\/strong>\u060c \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0642\u0648\u0627\u0646\u06cc\u0646\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0627\u0637\u0646 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0631\u0633\u0645\u06cc Terraform \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u062a\u0648\u0635\u06cc\u0641 \u0627\u06cc\u0646 \u0645\u0646\u0628\u0639 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 Terraform \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>resource \"kubernetes_ingress\" \"example_ingress\" {\n  metadata {\n    name = \"example-ingress\"\n  }\n\n  spec {\n    backend {\n      service_name = \"myapp-1\"\n      service_port = 8080\n    }\n\n    rule {\n      http {\n        path {\n          backend {\n            service_name = \"myapp-1\"\n            service_port = 8080\n          }\n\n          path = \"\/app1\/*\"\n        }\n\n        path {\n          backend {\n            service_name = \"myapp-2\"\n            service_port = 8080\n          }\n\n          path = \"\/app2\/*\"\n        }\n      }\n    }\n\n    tls {\n      secret_name = \"tls-secret\"\n    }\n  }\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u200c<br \/>\u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0645\u0646\u0627\u0628\u0639 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0645\u062e\u0632\u0646 GitHub \u0646\u06cc\u0633\u062a\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u06cc \u0622\u0645\u0648\u0632\u0634 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0645\u0646\u0627\u0628\u0639 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u06cc\u0627\u0632 \u062e\u0648\u062f \u0628\u0647 \u0645\u0627\u0698\u0648\u0644 \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0641\u06cc\u062f Terraform \u0648 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 nginx \u062f\u0631 Kubernetes \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0628\u0627 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0631\u0633\u0645\u06cc Kubernetes \u0627\u0632 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc Terraform \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>\u0645\u062f\u06cc\u0631\u06cc\u062a Kubernetes \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0634\u0648\u0627\u0631 \u0628\u0627\u0634\u062f\u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0631\u0627 \u0628\u0647 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u0631\u0633\u0627\u0646\u06cc\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0646\u0639\u06a9\u0627\u0633 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648\u0627\u0642\u0639\u06cc \u062a\u0648\u0644\u06cc\u062f \u062f\u0634\u0648\u0627\u0631 \u0627\u0633\u062a\u060c \u062a\u06cc\u0645 \u0647\u0627 \u0627\u063a\u0644\u0628 \u0628\u0627 \u0645\u0639\u0636\u0644 \u0628\u062f\u0646\u0627\u0645 \u00ab\u0631\u0648\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0645\u0646 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u00bb \u0645\u0648\u0627\u062c\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>mogenius \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0633\u0644\u0641\u200c\u0633\u0631\u0648\u06cc\u0633 Kubernetes \u0628\u0627 \u062f\u06cc\u062f \u0628\u0647\u062a\u0631\u060c \u0628\u0627 \u0627\u06cc\u0646 \u0686\u0627\u0644\u0634 \u0645\u0642\u0627\u0628\u0644\u0647 \u06a9\u0646\u06cc\u062f. mogenius \u0628\u0627 \u062f\u06cc\u062f \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u060c \u062a\u0639\u0627\u0645\u0644 \u0633\u0627\u062f\u0647 Kubernetes \u0648 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0647\u062f\u0627\u06cc\u062a\u200c\u0634\u062f\u0647\u060c \u0627\u0632 \u062a\u0633\u062a \u0645\u062d\u0644\u06cc \u0628\u0647\u062a\u0631 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0627 \u062e\u0637\u0648\u0637 \u0644\u0648\u0644\u0647 CI\/CD \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u06cc\u062f\u060c \u062f\u0627\u0645\u0646\u0647 \u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f\u060c SSL \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06af\u0648\u0627\u0647\u06cc \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u06cc\u0627 \u0686\u0646\u062f \u0627\u0628\u0631\u06cc.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062a\u0648\u0633\u0637 \u06a9\u0648\u0648\u06cc\u062f \u0631\u0627\u062a\u06cc \u062f\u0631 \u0648\u0628\u0644\u0627\u06af mogenius \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. Terraform \u06cc\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0628\u0632\u0627\u0631 \u06a9\u062f \u0627\u0633\u062a \u06a9\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0631\u0648\u0634 ClickOps \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641\u060c \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc\u060c \u062f\u0631\u0648\u0646 \u0645\u062d\u0644 \u06cc\u0627 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0627\u0628\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0631\u0648\u0634 \u0627\u0639\u0644\u0627\u0646\u06cc \u0622\u0646 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0628\u0631 \u0631\u0648\u06cc \u0648\u0636\u0639\u06cc\u062a &hellip;<\/p>\n","protected":false},"author":2,"featured_media":94417,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi60jjiqo07ig5tk9xq6r.jpg","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-94416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/94416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=94416"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/94416\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/94417"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=94416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=94416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=94416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}