▶ 영상: youtu.be/7saoGfHY4zQ
1. EKS란?
AWS 쿠버네티스 서비스로서 마스터(control plane) 노드를 직접 관리하고 기존 AWS리소스(예: IAM, EC2, VPC 등)와 연동하여 쿠버네티스를 관리합니다. 시간당 0.1$달러 요금이 부과되고 무중단 한달 운영하면 78달러가 부과됩니다. EKS이외의 요금은 별도로 계산됩니다.
워커노드는 EC2를 사용하고 네트워크는 VPC를 사용합니다. 워커노드는 워커노드 그룹으로 묶어서 eks가 관리합니다.
2. 설치 준비
eksctl명령어를 사용하기 위해 eksctl설치가 필요합니다. eskctl는 aws cli설치와 설정이 필요합니다.
kubctl은 eks를 설치하고 쿠버네티스를 제어하는 목적으로 사용합니다.
2.1 aws cli설치
공식문서에 aws cli설치 명령어를 소개하고 있습니다.
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
2.2 aws configure
aws cli가 명령어를 실행하기 위한 인증정보 설정입니다. 액세스 키 ID와 비밀 액세스 키가 필수로 필요합니다.
IAM을 사용해서 eks를 관리하는 유저를 생성하고 해당 엑세스 키를 사용합니다.
사용자 이름을 입력하고 프로그래밍 방식 액세스를 선택합니다. 프로그래밍 방식은 말 그대로 aws cli를 이용한다는 의미입니다.
태그는 생략합니다.
사용자가 생성되면 액세스 키 ID와 비밀 액세스 키가 자동으로 생성됩니다. 이후 부터는 비밀 액세스 액세스 키는 확인이 불가하므로 csv다운로드 버튼을 클릭해서 잘 관리합니다.
aws configure명령어를 입력하면 aws 인증정보를 설정하는 입력 프롬프트가 화면에 출력됩니다. 만들었던 사용자 액세스 키와 비밀 액세스 키를 차례대로 입력합니다. 리전은 서울에 해당하는 ap-northeast-2를 사용합니다.
$ aws configure
AWS Access Key ID [None]: <AKIAIOSFODNN7EXAMPLE>
AWS Secret Access Key [None]: <wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY>
Default region name [None]: <ap-northeast-2>
2.3 kubectl 설치
curl 명령어를 kubectl를 다운로드 받은 후 실행권한을 설정합니다. 그리고 /usr/local/bin으로 옮깁니다.
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.8/2020-09-18/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin
kubectl명령어가 실행되면 잘 설치되었습니다.
kubectl version --short --client
2.4 eksctl 설치
eksctl를 다운로드 받은 후 압축을 풀고 /usr/local/bin으로 옮깁니다.
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
eksctl명령어가 잘 실행되면 설치가 성공한 것입니다.
eksctl version
2.5 ssh 키 쌍 생성
워커노드에 원격접속하기 위한 ssh키 쌍을 생성합니다. eks는 워커노드를 ec2 인스턴스로 관리됩니다.
ssh-keygen
3. eks설치
eksctl 명령어를 사용해서 eks를 설치합니다. 내부적으로 aws cli를 사용하므로 aws configure이 잘 설정되어 있어야 합니다.
아래 명령어는 워커노드를 1개만 실행되고 원격접속시 ssh-keygen이 생성한 공개키를 사용합니다. 워커노드 ec2 타입은 t3.medium을 사용합니다.
eksctl create cluster \
--name eks-demo \
--version 1.18 \
--region ap-northeast-2 \
--nodegroup-name linux-nodes \
--nodes 1 \
--nodes-min 1 \
--nodes-max 1 \
--ssh-access \
--ssh-public-key eks-demo.pub \
--managed \
--node-type t3.medium
프리티어 ec2타입인 t2.micro를 사용하면 에러가 발생합니다. 현재 서울지역의 워커노드 ec2타입은 프리티어를 미지원합니다.
eks가 성공적으로 설치되면 [aws 콘솔 -> eks -> 클러스터]에서 생성된 클러스터가 보입니다.
현재 eks는 중지기능이 없고 실행, 삭제기능만 있습니다.
참고자료
[1] eskctl 설치 공식문서: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/getting-started-eksctl.html
[2] ec2 instance 요금 공식문서: https://aws.amazon.com/ko/ec2/spot/pricing/
[3] eks spot instance 공식문서: https://aws.amazon.com/ko/blogs/compute/cost-optimization-and-resilience-eks-with-spot-instances/
'전공영역 공부 기록' 카테고리의 다른 글
쿠버네티스 대시보드 설치 (0) | 2021.01.03 |
---|---|
EKS에서 워커노드 EXTERNAL-IP (0) | 2021.01.02 |
anti-affnity를 활용한 장애대비 전략 (0) | 2020.12.29 |
쿠버네티스 로그 수집 원리 (0) | 2020.12.28 |
EFK시스템에서 키바나 시각화 데이터 손실 주의 (0) | 2020.12.26 |