Infra/Kubernetes & EKS

AWS EKS 클러스터 생성 방법 정리(eksctl 사용)

jimmy_AI 2023. 12. 5. 23:25
반응형

EKS 클러스터를 eksctl 명령어를 통하여 셋업하는 방법을

간략하게 정리해보도록 하겠습니다.

 

AWS console 페이지에서도 EKS를 직접 생성할 수 있지만,

eksctl을 활용하는 경우 쿠버네티스 업데이트 내역과의 호환성이 더 좋아

명령어를 통하여 EKS 클러스터를 생성하는 방법을 권장드립니다.

 

 

1. AWS CLI 인증

우선, 사용할 AWS 계정의 CLI 인증이 되어 있어야 합니다.

만일, STS 인증을 사용할 경우 작업 자동화 관련 글이 있으니 참고해보시면 좋습니다.

 

AWS STS 인증 과정 자동화 방법(리눅스 기준)

AWS에서 보안 강화를 위하여 MFA를 적용한 STS 인증을 다음과 같이 사용하는 경우가 있습니다. aws sts get-session-token --serial-number --token-code 위와 같이 입력하면 Credentials 정보가 아래와 같은 json 양식

jimmy-ai.tistory.com

 

 

2. eksctl 설치

만일, eksctl이 설치되어있지 않은 경우라면, 먼저 설치 과정이 필요합니다.

 

설치 과정은 운영체제에 따라 다른데, 아래의 공식 페이지에 확인이 가능합니다.

 

Installation - eksctl

The official CLI for Amazon EKS

eksctl.io

 

 

3. 쿠버네티스 최신 버전 확인

쿠버네티스의 최신 버전이 몇 버전인지를 미리 확인하면,

추후 설치 과정에서 도움이 됩니다.

 

가장 좋은 방법은 AWS의 EKS 페이지 내에서 Add Cluster 메뉴로 들어가시면,

최신 버전이 몇 버전인지 확인이 가능합니다.

 

반응형

 

4. 클러스터 생성

eksctl로 EKS 클러스터를 생성하는 명령어를 정리해보도록 하겠습니다.

여기서는 노드 그룹은 추후에 따로 생성하는 과정을 가정하겠습니다.

 

public-subnet과 private-subnet에 해당하는 subnet id를 포함하여

아래와 같이 적어주시면 됩니다.

eksctl create cluster \
--name eks-cluster-name \ # 클러스터 이름
--version 1.28 \ # 최신 버전 권장
--vpc-private-subnets subnet-aaaaaa01234567890,subnet-bbbbbb01234567890,subnet-cccccc01234567890 \
--vpc-public-subnets subnet-dddddd01234567890,subnet-eeeeee01234567890,subnet-ffffff01234567890 \
--without-nodegroup

 

 

5. 노드 그룹 생성

이제 클러스터 내에 노드 그룹을 생성해주어야 합니다.

 

생성을 위한 명령어의 예시는 아래와 같습니다.

eksctl create nodegroup \
--cluster eks-cluster-name \ # 위에서 생성했던 클러스터 이름
--name nodegroup-name \ # 노드 그룹 이름
--node-type t3.medium \
--nodes 1 \
--nodes-min 1 \
--nodes-max 2 \
--node-private-networking

여기서, node-private-networking 옵션은 꼭 넣어주는 것이 private-subnet 통신 과정에서

유리하게 작용할 수 있습니다.

 

여러 개의 노드 그룹을 생성하고 싶은 경우에도

마찬가지로 노드 그룹 이름을 다르게 하여 명령어를 여러 번 입력해주시면 됩니다.

 

 

6. 기타 설정

위의 노드 그룹 생성까지 완료되었다면, 기본적인 EKS 사용 준비는 완료된 것입니다.

 

이후, 노드 그룹 Taint 설정 등을 원하시는대로 진행해주시면 되며,

GPU를 활용하는 경우에는 nvidia device plugin을 꼭 설치해주셔야 합니다.

 

설치 방법과 관련된 글의 링크를 하나 참고로 남기도록 하겠습니다.

 

[kubernetes] k8s gpu - nvidia device plugin 설치, 예제 테스트 (Docker)

Nvidia GPU가 장착된 서버/PC 환경의 Kubernetes 에서 GPU 인식, 사용Kubernetes 에서 Nvidia GPU 를 사용하는 Application yaml 테스트https://github.com/NVIDIA/nvidia-dockernvid

velog.io

 

이상으로 eksctl을 통한 EKS 클러스터 셋업 방법에 관한 글을 마무리하도록 하겠습니다.

감사합니다.