[AWS] EKS 설치

1. Cloud9 실행 ( eksworkshop )

1.1 EKS 테스트를 위한 VPC 및 Subnet 생성

VPC생성 후 DNS 이름 확인 활성화,
서브넷 생성 후 자동IP 할당 활성화

1.2 Cloud9 실행하기

– AWS Console에서 Cloud9 서비스 검색
– Create environment 선택
– 이름을 입력하고, 미리 생성해둔 VPC 및 Subnet을 선택합니다. 나머지 설정은 기본값으로 진행.
– 실행이 완료되면, welcome tab과 하단 작업 영역을 닫고 새로운 터미널 화면을 메인 작업 영역에 열어둡니다.

2. Cloud9 주요 툴 설치 ( eksworkshop )

2.1 SSH 키 생성

ssh-keygen

2.2 공개 키를 사용중인 EC2 리전에 업로드

aws ec2 import-key-pair --key-name "eks-shin" --public-key-material file://~/.ssh/id_rsa.pub

2.3 kubectl 설정을 저장하기 위한 기본 ~/.kube 디렉토리 생성

mkdir -p ~/.kube

2.4 kubectl 설치 및 확인

- 확인 :
kubectl version --short --client
Client Version: v1.17.11-eks-cfdc40

2.5 AWS IAM Authenticator 설치(linux)

- 확인 :
aws-iam-authenticator help

2.6 JQ 설치

sudo yum -y install jq

2.7 Cloud9 IAM Role 생성 및 할당

- AWS Console에서 IAM 서비스 검색
- 액세스관리에서 역할선택
- 역할만들기 선택
- 생성한 역할을 Cloud9 서버에 할당

2.8 Cloud9 AWS Credential OFF

AWS Settings > AWS Managed Temporary credentials OFF

2.9 임시 자격증명 파일 제거

rm -vf ${HOME}/.aws/credentials

2.10 현재 리전을 기준으로 aws-cli를 구성

2.11 aws cli version 2 설치

- 확인 :
Cloud9콘솔에서 터미널을 닫고 다시 터미널 열기
aws --version
aws-cli/2.1.25 Python/3.7.3 Linux/4.14.214-160.339.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off

2.12 GetCallerIdentity CLI 명령을 사용하여 Cloud9 IDE가 올바른 IAM 역할을 사용하는지 확인

- 결과 예시 : eksworkshop-admin

2.13 위에 결과와 아래 역할 비교

aws sts get-caller-identity

- 결과 예시 :
"Arn": "arn:aws:sts::511914651445:assumed-role/eksworkshop-admin/i-045d83808a61a22e1"

2.14 EKSCTL 다운로드

- 확인 : 
eksctl version0.38.0

3. Cluster 배포(기존 VPC에 생성)

3.1 Cluster yaml 파일 작성

3.2 Cluster yaml 파일 배포 및 노드 확인

eksctl create cluster -f 1.cluster.yaml
[✔] EKS cluster "eksctl" in "ap-northeast-2" region is ready

- 노드 생성 확인 :
kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-10-20-2-195.ap-northeast-2.compute.internal Ready <none> 13m v1.17.12-eks-7684af

3.3 cluster 삭제(옵션)

eksctl delete cluster --name=eksctl

3.4 AWS EKS 콘솔에서 클러스터 정보 보기(옵션)

3.4.1 Cloud9에서 클러스터를 구축 한 경우 환경 내에서 다음을 호출하여 IAM 역할 또는 사용자 ARN을 확인합니다.

- 결과 확인 : 
Role ARN: arn:aws:iam::853305886524:user/hanamiya80@comtec.co.kr

3.4.2 ARN을 사용하면 명령을 실행하여 클러스터 내에서 자격 증명 매핑을 생성 할 수 있습니다.

eksctl create iamidentitymapping --cluster eksctl --arn ${rolearn} --group system:masters --username admin

3.4.3 콘솔 자격 증명을 관리자로 추가합니다.

kubectl describe configmap -n kube-system aws-auth

- 확인 :
AWS 콘솔 -> EKS -> 클러스터 -> 클러스터 선택 -> 노드 및 워크로드 현황이 보이는지 확인

3.4.4 Cluster내 노드 그룹 보기

eksctl get nodegroup --cluster=eksctl
CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME
eksctl nodegroup CREATE_COMPLETE 2021-02-16T06:59:20Z 1 1 1 t3.small eks-2abbd4d1-e433-2d9d-4467-ed8726875501

3.4.5 노드수 조정(Scale MAX수 1=>3, NODE수 1=>2)

eksctl scale nodegroup --cluster=eksctl --name=nodegroup --nodes-min=1 --nodes-max=3 --nodes=2
- 확인 :
eksctl get nodegroup --cluster=eksctl
CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME
eksctl nodegroup CREATE_COMPLETE 2021-02-16T06:59:20Z 1 3 2 t3.small eks-2abbd4d1-e433-2d9d-4467-ed8726875501

kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-10-20-2-195.ap-northeast-2.compute.internal Ready <none> 13m v1.17.12-eks-7684af
ip-10-20-4-128.ap-northeast-2.compute.internal Ready <none> 74s v1.17.12-eks-7684af






4. Docker Version Upgrade(옵션)

4.1 Docker 현재 버전 보기
docker --version
Docker version 19.03.13-ce, build 4484c46

4.2 Old Version Uninstall
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

4.3 Docker Repository 설치
sudo yum install -y yum-utils

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

4.4 Docker Engine 설치
sudo yum install docker-ce docker-ce-cli containerd.io

4.5 Docker 시작
sudo systemctl start docker
sudo systemctl enable docker

docker --version
Docker version 20.10.3, build 48d30b5

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다