EKS Anywhere (2/3) - EKS Anywhere Local Cluster 설치
2022. 1. 17. 17:46ㆍCloud Computing/AWS
지난 포스트에서는 AWS EKS Anywhere에 대해 간략하게 소개하였습니다. 이번 포스트에서는 개발 및 테스트의 목적으로 단일 VM위에 EKS Anywhere Local Cluster를 배포하는 방법에 대하여 설명합니다. (테스트는 플랫폼 Architect 그룹에서 제공하는 Private Cloud인 DigitalX에서 수행하였습니다.)
사전 VM 준비
Local Cluster 배포를 위한 VM 사양
- 도커 20.xx
- 우분투(20.04.2 LTS)
- 4 CPU 코어
- 16GB 메모리
- 30GB의 디스크 여유 공간
해당 사양에 맞게 VM을 생성하고 이후 Docker, eksctl, EKS Anywhere, kubectl 순으로 설치를 진행하였습니다.
EKS Anywhere 설치 과정
Docker 설치
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
#오류 발생시 아래 처럼 특정 버전을 지정
#sudo apt-get install docker-ce=5:20.10.11~3-0~ubuntu-focal docker-ce-cli=5:20.10.11~3-0~ubuntu-focal containerd.io
EKSCTL 설치
#eksctl Download
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
#move to /usr/local/bin
sudo mv /tmp/eksctl /usr/local/bin
#check eksctl version
eksctl version
#eks-anywhere plugin install
export EKSA_RELEASE="0.6.0" OS="$(uname -s | tr A-Z a-z)" RELEASE_NUMBER=2
curl "https://anywhere-assets.eks.amazonaws.com/releases/eks-a/${RELEASE_NUMBER}/artifacts/eks-a/v${EKSA_RELEASE}/${OS}/eksctl-anywhere-v${EKSA_RELEASE}-${OS}-amd64.tar.gz" \
--silent --location \
| tar xz ./eksctl-anywhere
sudo mv ./eksctl-anywhere /usr/local/bin/
#check eksctl anywhere version
eksctl anywhere version
EKS Anywhere 설치
#생성될 Cluster Name 지정
CLUSTER_NAME=digitalx-cluster
#Cluster 배포 yaml 생성
eksctl anywhere generate clusterconfig $CLUSTER_NAME \
--provider docker > $CLUSTER_NAME.yaml
#Cluster 생성
eksctl anywhere create cluster -f $CLUSTER_NAME.yaml
Kubectl 설치 및 Cluster 정보 등록
#kubectl 설치
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
apt-get update -y
apt-get install kubeadm kubectl -y
#kubeconfig 설정
export KUBECONFIG=${PWD}/${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig
설치 확인
kubectl get ns
배포 테스트
# 테스트 Pod 배포
kubectl apply -f "https://anywhere.eks.amazonaws.com/manifests/hello-eks-a.yaml"
# 테스트를 위한 Port-forwarding
kubectl port-forward deploy/hello-eks-a 8000:80
EKS Anywhere Local Cluster 배포는 CLI 몇 줄로 편리하게 배포가 가능했습니다. 아쉽게도 현재 테스트 목적으로는 단일 VM에 Local Cluster를 배포하는 것이 한계이지만 AWS는 22년에 EKS Anywhere가 베어메탈에 설치 가능하도록 지원할 계획이 있기 때문에 향후에는 다수의 Worknode를 기반으로 테스트 및 운영 환경 구축이 가능해질 것으로 생각됩니다.
다음 포스트에서는 EKS Connector를 사용하여 이번 포스트에서 배포된 Local Cluster와 GKE, Kubeadm으로 배포된 Cluster를 AWS Console에서 통합 조회하는 방법에 대하여 알아보겠습니다.
'Cloud Computing > AWS' 카테고리의 다른 글
Cloud Assessment Pack (Part 3) - AWS Migration HUB: 수집 데이터 확인 (0) | 2022.05.09 |
---|---|
Cloud Assessment Pack (Part 2) - AWS ADS: Agentless, Import방식 자원 수집 (0) | 2022.03.07 |
Cloud Assessment Pack (Part 1) - 소개 및 AWS ADS (0) | 2022.01.28 |
EKS Anywhere (3/3) - EKS Connector를 통한 Cluster 통합 조회 (0) | 2022.01.18 |
EKS Anywhere (1/3) - EKS Anywhere 소개 (0) | 2022.01.17 |