AWS EKS 클러스터 구성하기 (실습)

EKS 클러스터 생성

이전에 VPC를 생성한 이후, EKS 클러스터를 생성하셔야 합니다. EKS 코드는 아래 레포지토리에 템플릿 형태로 있으며, terraform/eks/eksd_apnortheast2/eksdapne2-fvrr/terraform.tfvars 에 있는 값을 수정하시면 원하는 EKS Cluster 버전, Add-On으로 구성할 수 있습니다.

변수 설정

아래 내용에서 Cluster 버전에 따라 release version이 달라질 수 있습니다. release version은 AWS에서 공식으로 제공해주는 AMI 버전과 동일하게 가져갑니다.

그리고 그 아래 node group과 같은 경우에는, on-demand와 spot 두 가지 타입을 선언했지만 구성 이후 Karpenter를 활용하신다면 spot nodegroup은 필요 없어지게 됩니다.

master_role_arn, viewer_role_arn은 eks 생성 이후 eks/_module/aws_auth.tf 에서 config map으로 주입되는 값들입니다. 여기에 설정된 IAM User, Role Arn에 대해서만 EKS Cluster에 접근할 수 있게 됩니다. 이 기능은 EKS Access Entries로 대체될 예정입니다.

변수 값 중 제일 아래 3가지는 KMS, Parameter Store, SecretsManager에 접근할 수 있는 부분을 설정하게 됩니다. 이 부분은 추후 bootstrap 과정에서 External Sercets Operator에서 접근할 수 있는 ARN을 지정해주시면 됩니다.

배포 진행

먼저 로컬에서 terraform init & terraform plan 으로 정상적으로 생성되는지를 확인해봅니다. 만약 Public Access를 False로 하셨다면 Local 환경에서는 EKS에 접근할 수 없습니다.

terraform plan 결과 위와 같이 56개의 리소스가 생성되는 것을 확인할 수 있습니다. 이후 Apply를 통해서 EKS 클러스터와 관련된 리소스가 생성된 것을 확인하실 수 있고, 콘솔 창에서도 아래와 같이 지정한 이름대로 클러스터가 생성된 것을 확인할 수 있습니다.

생성한 EKS에 접근하기 위해서는 aws-auth에 접근 가능한 Role로 Assume한 상태이거나 User인 상태여야 합니다. 그 후, 아래 명령어를 실행해봅니다.

위와 같이 Kubenetes의 Context가 Local에 설정되었다면, Kubectl 명령어를 통해 접근해보도록 합니다.

이후 작업

이후에는 EKS 클러스터에서 아래의 Bootstrap 과정을 통해서 ArgoCD를 셋팅하고 기본적인 add-on(External Secrets, ALB Controller 등)을 설치하면 됩니다.

Last updated