이번 글에서는 AWS 콘솔을 통해서 EKS를 세팅하는 방법에 대해서 알아보도록 하겠다.
EKS에서 사용할 IAM Role들이 필요한데, 아래의 과정에 따라서 Role들을 생성해주면 된다.
EKS 클러스터에서 사용할 Role을 위와 같이 정책들을 연결해서 생성해준다.
EKS 노드에서 사용할 Role을 위와 같은 정책들을 연결해서 생성해준다.
클러스터 생성 버튼을 누르며 본격적으로 EKS 클러스터를 만들어보자.
먼저, '사용자 지정 구성'을 선택하고 적당히 클러스터의 이름을 지어준다.
그리고, 클러스터에서 사용할 IAM Role에 위에서 만든 Role을 할당해준다.
(EKS 자율 모드는 최근에 추가된 기능인데, 나는 비활성화하도록 하겠다.)
k8s의 버전은 특별한 목적이 없다면, 최신 버전으로 선택해주고, 액세스 설정은 위와 같이 해준다.
EKS 클러스터를 띄울 VPC와 서브넷은 원하는 바에 맞게 띄워주면 된다.
개발용 클러스터라면, 편리하게 Public 서브넷을 할당해도 되고, 실서비스용 클러스터라면 Private 서브넷에 위치시키면 된다.
Security group은 공식문서에서 가이드하는 대로 설정하거나 각자의 상황에 맞게 설정해주면 될 것 같다.
클러스터를 모니터링하고 로깅하기 위해서 AWS Managed 서비스들을 활성화해줄 수 있다. 개발용이라면 딱히 사용할 것은 없을 순 있으나, Prod 환경이라면 원하는 기능들을 활성화해주자.
이 또한 각자의 상황에 맞게 선택해주면 되는데, 아래의 것들은 기본적인 기능들을 포함하고 있어서, 활성화하는 것을 권장한다.
kube-proxy
CoreDNS
Amazon VPC CNI
Amazon EKS Pod Identity 에이전트
이전 단계에서 선택한 플러그인들의 버전을 선택하는 단계인데 이 부분은 딱히 손대지 않고 넘어가면 된다.
EKS 클러스터 생성은 10분에서 15분 정도 소요되고, 잘 생성됐다면 위와 같이 Active
상태로 되어 있는 클러스터를 확인할 수 있다.
EKS 클러스터 상세 페이지로 이동 후, '컴퓨팅'탭에서 '노드 그룹 추가'버튼을 누른다.
노드 그룹의 이름을 적당히 지어주고, 위에서 만든 IAM Role을 할당해준다.
Node는 EC2로 구동되게 되는데, EC2 한대의 스펙을 원하는대로 설정해준다.
노드 수는 Autoscaling이 되므로, 이 또한 원하는대로 설정해주면 된다.
서브넷은 클러스터와 동일하게 맞춰주면 된다.
노드 그룹도 클러스터처럼 생성하는 데에 시간이 좀 소요된다.
잠시 기다리면 이렇게 노드 그룹이 정상적으로 생성된 것을 확인할 수 있다.
이제 EKS 클러스터 생성이 완료됐으니, 원격에서 EKS 클러스터에 접속하는 방법에 대해서 알아보자.
내가 이전에 작성한 AWS CLI 세팅 글을 참고해서 AWS CLI 설치 및 설정을 완료한다.
aws eks update-kubeconfig --region ap-northeast-2 --name test-cluster
위와 같이 EKS 클러스터가 존재하는 리전과 클러스터 명을 매개변수로 하여 명령어를 실행하면, 로컬에서 활용되는 Kubeconfig가 EKS를 바라보게 된다.