eksctl을 사용하여 EKS 클러스터 생성하기 (1.15 ver)

Jay·2022년 4월 2일
1

본문 작성일은 2020년 7월 14일로, 현 시점에서의 생성 방법과 다를 수 있음.

개요

eksctl은 Amazon EKS에서 Kubernetes 클러스터를 생성하고 관리하기 위한 명령줄 유틸리티이다. 본 문서에서는 eksctl을 실행할 수 있는 환경을 구성하고, 클러스터 및 노드 그룹을 생성하는 과정을 설명한다.

사전 구성

IAM User 생성

EKS 클러스터 생성을 위한 IAM User를 생성한다.

  • 액세스 유형: 프로그래밍 방식 액세스
  • 연결 정책: AdministratorAccess

User 생성 후 액세스 키와 비밀 키를 저장한다.

AWS CLI 업데이트 및 자격 증명 구성

EKS 클러스터에 kubectl를 사용하여 접근하기 위해, AWS CLI를 버전 1.18.17 이상으로 업데이트한다.
다음 명령을 사용하여 AWS CLI를 최신 버전으로 업데이트한다.

$ pip install awscli --upgrade --user

위에서 생성한 IAM User의 자격 증명을 구성한다.

$ aws configure

eksctl 설치

eksctl을 설치한다.

$ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl$(uname -s)_amd64.tar.gz" | tar xz -C .tmp
$ sudo mv /tmp/eksctl /usr/local/bin

Kubernetes 클러스터에 인증할 수 있도록 aws-iam-authenticator를 설치한다.

$ curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.16.8/2020-04-16/bin/linux/amd64/aws-iam-authenticator
$ chmod +x ./aws-iam-authenticator
$ mkdir -p $HOME/bin && cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$PATH:$HOME/bin
$ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrd
$ aws-iam-authenticator help

kubectl을 설치한다.

$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt` /bin/linux/amd63/kubectl
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl
$ kubectl version --client

EKS 클러스터 및 노드 그룹 생성

EKS 클러스터 생성을 위한 Config File을 작성한다.
아래 설정 파일은 기존에 구성된 VPC 내에 EKS 클러스터를 생성하고, 노드가 2개인 노드그룹을 생성한다.
그 외의 설정에 대해서는 다음 링크를 참고한다.

https://eksctl.io/usage/creating-and-managing-clusters

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: eks-an2-cnl-birdbox-0
  region: ap-northeast-2
  
vpc:
  subnets:
    private:
      ap-northeast-2a: {id: [subnet-id]}
      ap-northeast-2b: {id: [subnet-id]}

nodeGroups:
  - name: ng-1-workers
    labels: {role: worker}
    instanceType: t2.micro
    desiredCapacity: 2
    privateNetworking: true
    ssh:
      allow:true

작성한 config 파일을 기반으로 클러스터를 생성하기 위해 eksctl crate cluster 명령을 사용한다.

$ eksctl create cluster -f cluster.yaml

kubectl 명령으로 생성된 노드를 확인할 수 있다.

$ kubectl get nodes
profile
공부 하고 싶은 직장인의 기록장

0개의 댓글