{"id":831,"date":"2020-05-03T21:52:13","date_gmt":"2020-05-03T12:52:13","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=831"},"modified":"2020-05-04T09:13:33","modified_gmt":"2020-05-04T00:13:33","slug":"terraform-%ec%9c%bc%eb%a1%9c-eks-%ed%81%b4%eb%9f%ac%ec%8a%a4%ed%84%b0-%ec%83%9d%ec%84%b1%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=831","title":{"rendered":"Terraform \uc73c\ub85c EKS \ud074\ub7ec\uc2a4\ud130 \uc0dd\uc131\ud558\uae30"},"content":{"rendered":"<h1>Terraform \uc73c\ub85c EKS \ud074\ub7ec\uc2a4\ud130 \uc0dd\uc131\ud558\uae30<\/h1>\n<p><strong>\uc791\uc5c5\uc911<\/strong><\/p>\n<p><a href=\"https:\/\/aws.amazon.com\/ko\/blogs\/startups\/from-zero-to-eks-with-terraform-and-helm\/\">\ucc38\uc870<\/a><\/p>\n<h2>\uc0ac\uc804\uc900\ube44<\/h2>\n<ul>\n<li>\n<p>AWS \uacc4\uc815<\/p>\n<\/li>\n<li>\n<p>AWS CLI<\/p>\n<p><a href=\"\/wordpress\/?p=371\">\uc5ec\uae30<\/a> \ub97c \ucc38\uc870\ud574\uc11c \uc124\uc815\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>terraform<\/p>\n<p><a href=\"\/wordpress\/?p=784\">\uc5ec\uae30<\/a> \ub97c \ucc38\uc870\ud574 \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>kubectl<\/p>\n<p><a href=\"\/wordpress\/?p=640\">\uc5ec\uae30<\/a> \ub97c \ucc38\uc870\ud574 \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>aws-iam-authenticator<\/p>\n<p><a href=\"\/wordpress\/?p=782\">\uc5ec\uae30<\/a> \ub97c \ucc38\uc870\ud574 \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>helm<\/p>\n<pre><code class=\"language-bash\">curl https:\/\/raw.githubusercontent.com\/helm\/helm\/master\/scripts\/get &gt; get_helm.sh\nchmod 700 get_helm.sh\n.\/get_helm.sh<\/code><\/pre>\n<\/li>\n<\/ul>\n<h2>EKS \ub9ac\ud3ec \ud074\ub860\ubc1b\uae30<\/h2>\n<p><code>EKS<\/code> \ud15c\ud50c\ub9bf\uc744 \uc704\ud55c \ub9ac\ud3ec\ub97c \ud074\ub860\ubc1b\uc2b5\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/github.com\/terraform-providers\/terraform-provider-aws.git\ncd terraform-provider-aws\/examples\/eks-getting-started<\/code><\/pre>\n<p>\ub9ac\uc804\uc744 <code>ap-northeast-2<\/code> \ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi providers.tf<\/code><\/pre>\n<p><code>map_public_ip_on_launch = true<\/code> \ub97c \ucd94\uac00\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi vpc.tf\n\n......\nresource &quot;aws_subnet&quot; &quot;demo&quot; {\n  count = 2\n\n  availability_zone = data.aws_availability_zones.available.names[count.index]\n  cidr_block              = &quot;10.0.${count.index}.0\/24&quot;\n  map_public_ip_on_launch = true\n  vpc_id                  = aws_vpc.demo.id\n......<\/code><\/pre>\n<h2>EKS \ud074\ub7ec\uc2a4\ud130 \uc0dd\uc131<\/h2>\n<pre><code class=\"language-bash\">terraform init\nterraform plan\nterraform apply<\/code><\/pre>\n<p><code>yes<\/code> \ub97c \uc785\ub825\ud574\uc57c \uc2e4\uc81c\ub85c \ud074\ub7ec\uc2a4\ud130\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">Do you want to perform these actions?\nTerraform will perform the actions described above.\nOnly &#039;yes&#039; will be accepted to approve.\n\nEnter a value: yes<\/code><\/pre>\n<p>\ud074\ub7ec\uc2a4\ud130\uc758 \uc0dd\uc131\uc774 \uc644\ub8cc\ub418\ub824\uba74 10-20\ubd84 \uc815\ub3c4\uac00 \uc18c\uc694\ub429\ub2c8\ub2e4.<\/p>\n<h2>kubectl \uc124\uc815\ud558\uae30<\/h2>\n<pre><code class=\"language-bash\">mkdir ~\/.kube\/\nterraform output kubeconfig&gt;~\/.kube\/config<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl version\n\nClient Version: version.Info{Major:&quot;1&quot;, Minor:&quot;18&quot;, GitVersion:&quot;v1.18.2&quot;, GitCommit:&quot;52c56ce7a8272c798dbc29846288d7cd9fbae032&quot;, GitTreeState:&quot;clean&quot;, BuildDate:&quot;2020-04-16T11:56:40Z&quot;, GoVersion:&quot;go1.13.9&quot;, Compiler:&quot;gc&quot;, Platform:&quot;linux\/amd64&quot;}\nServer Version: version.Info{Major:&quot;1&quot;, Minor:&quot;15+&quot;, GitVersion:&quot;v1.15.11-eks-af3caf&quot;, GitCommit:&quot;af3caf6136cd355f467083651cc1010a499f59b1&quot;, GitTreeState:&quot;clean&quot;, BuildDate:&quot;2020-03-27T21:51:36Z&quot;, GoVersion:&quot;go1.12.17&quot;, Compiler:&quot;gc&quot;, Platform:&quot;linux\/amd64&quot;}<\/code><\/pre>\n<pre><code class=\"language-bash\">terraform output config_map_aws_auth &gt; configmap.yml\nkubectl apply -f configmap.yml<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl get nodes -o wide<\/code><\/pre>\n<pre><code class=\"language-bash\">vi tiller-user.yaml<\/code><\/pre>\n<pre><code class=\"language-yaml\">apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: tiller\n  namespace: kube-system\n---\napiVersion: rbac.authorization.k8s.io\/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: tiller\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: cluster-admin\nsubjects:\n  - kind: ServiceAccount\n    name: tiller\n    namespace: kube-system<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl apply -f tiller-user.yaml\nhelm init --service-account tiller<\/code><\/pre>\n<pre><code class=\"language-bash\">helm install \\\n  stable\/nginx-ingress \\\n  --name my-nginx \\\n  --set rbac.create=true<\/code><\/pre>\n<h2>\ud074\ub7ec\uc2a4\ud130 \uc0ad\uc81c\ud558\uae30<\/h2>\n<pre><code class=\"language-bash\">terraform destroy<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Terraform \uc73c\ub85c EKS \ud074\ub7ec\uc2a4\ud130 \uc0dd\uc131\ud558\uae30 \uc791\uc5c5\uc911 \ucc38\uc870 \uc0ac\uc804\uc900\ube44 AWS \uacc4\uc815 AWS CLI \uc5ec\uae30 \ub97c \ucc38\uc870\ud574\uc11c \uc124\uc815\ud569\ub2c8\ub2e4. terraform \uc5ec\uae30 \ub97c \ucc38\uc870\ud574 \uc124\uce58\ud569\ub2c8\ub2e4. kubectl \uc5ec\uae30 \ub97c \ucc38\uc870\ud574 \uc124\uce58\ud569\ub2c8\ub2e4. aws-iam-authenticator \uc5ec\uae30 \ub97c \ucc38\uc870\ud574 \uc124\uce58\ud569\ub2c8\ub2e4. helm curl https:\/\/raw.githubusercontent.com\/helm\/helm\/master\/scripts\/get &gt; get_helm.sh chmod 700 get_helm.sh .\/get_helm.sh EKS \ub9ac\ud3ec \ud074\ub860\ubc1b\uae30 EKS \ud15c\ud50c\ub9bf\uc744 \uc704\ud55c \ub9ac\ud3ec\ub97c \ud074\ub860\ubc1b\uc2b5\ub2c8\ub2e4. git clone https:\/\/github.com\/terraform-providers\/terraform-provider-aws.git cd terraform-provider-aws\/examples\/eks-getting-started \ub9ac\uc804\uc744 ap-northeast-2\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=831\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,17],"tags":[],"class_list":["post-831","post","type-post","status-publish","format-standard","hentry","category-aws","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=831"}],"version-history":[{"count":5,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/831\/revisions"}],"predecessor-version":[{"id":839,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/831\/revisions\/839"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}