본문 바로가기

AWS

[AWS] EKS Cluster 생성

Yaml 파일을 이용한 EKS Clutser 생성 방법 입니다.
 
 

AWS CLI Upgrade

  • AWS CLI Upgrade
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

 
 

Kubectl 설치

  • kubectl 설치
# kubectl 설치
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.30.0/2024-05-12/bin/linux/amd64/kubectl

# 바이너리에 실행 권한 적용
chmod +x ./kubectl

# 바이너리 PATH 설정
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bash_profile

# kubectl 버전 확인
kubectl version --client

 
 

eksctl 설치

  • eksctl 설치
# for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7`
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH

curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"

# (Optional) Verify checksum
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check

tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz

sudo mv /tmp/eksctl /usr/local/bin

 
 

AWS Configure 등록

  • AWS Configure 등록
aws configure
AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: 
Default output format [None]:

 
 

EKS Cluster 생성

  • yaml 파일 생성
vi cluster.yaml

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: ydy-eks # 클러스터 이름 
  region: ap-northeast-2
  version: "1.30" # K8s 버전 지정
vpc:
  subnets:
    private:
      ap-northeast-2a: # 서브넷 필드 이름 지정 (임의의 이름 지정 가능)
        id: subnet-00eb92a5007e3---- # 서브넷 ID
      ap-northeast-2c:
        id: subnet-0580f040bef65----
    public:
      subnet-pub-ap-northeast-2a:
        id: subnet-0e3b82a26c19c----
      subnet-pub-ap-northeast-2c:
        id: subnet-01f2f26c10544----
managedNodeGroups:
- name: ydy-eks-ng # 노드그룹 이름 지정
  tags: {
    "Name": "ydy-eks-ng"
  }
  labels:
    project: ydytest
  privateNetworking: true # Private 서브넷 사용시 필수 필드 (NAT필요)
  instanceType: t3.medium # 인스턴스 유형 선택
  desiredCapacity: 3 # WorkerNode 원하는 용량
  maxSize: 4
  volumeSize: 30
  volumeType: gp3
  subnets: # WorkerNode에서 사용할 위 VPC 필드에 명시한 서브넷 지정
    - ap-northeast-2a
    - ap-northeast-2c
  ssh:
    publicKeyName: ydy-seoul

  iam:
    withAddonPolicies:
      imageBuilder: true
      autoScaler: true
      cloudWatch: true
  • eksctl 명령어로 cluster 생성
eksctl create cluster -f cluster.yaml