EKS - eksctl setting on my mac book
https://github.com/ndgndg91/eks-practice
eksctl 을 사용하기 위해서 필요한 것은 4가지이다.
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/getting-started-eksctl.html
1. aws cli 설치
- aws cli 기존에 설치되어 있어도 반드시 버전을 확인해야 한다. eksctl 을 사용하기 위해서는 aws cli 1 버전을 사용하는 경우 1.18.149 이상이여야 하며, aws cli 2 버전의 경우 2.0.52 이상이여야 한다.
기존에
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-mac.html#cliv2-mac-install-gui
2. aws cli 를 버전에 맞게 설치했다면, aws configure 를 통해서 올바른 role 을 가진 IAM user 의 access_key, secret_access_key 를 등록해주자.
3. 다음으로 중요한 k8s 클러스터를 제어하기 위한 kubectl 을 설치하자.
homebrew 패키지 매니저를 이용하면 간단하게 설치가 가능하다.
https://kubernetes.io/ko/docs/tasks/tools/install-kubectl/
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html
4. 마지막으로 eksctl
https://github.com/weaveworks/eksctl
- aws cli version
eksctl 명령어로 cluster 만들기
eksctl create cluster --name eksctl-test --nodegroup-name ng-default --node-type t3.micro --nodes 2
클러스터 이름은 eksctl-test 이고
노드그룹의 이름은 ng-default 이다. 노드그룹은 unmanaged 로 생성된다.
노드타입은 t3.micro 로 인스턴스 타입이다.
그리고 노드 수는 2로 ec2 instance 가 노드 그룹안에 존재하는 수이다.
노드그룹의 지원은 3가지로 unmanaged, managed, fargate 이다.
unmanaged, managed 는 k8s cluster worker node 들을 ec2 인스턴스로 만들어준다.
unmanaged 와 managed 의 차이점은 말 그대로 aws 에서 자동으로 관리해주느냐 아니면 사용자가 직접 관리해야 되느냐이다.
무엇을 관리하느냐?
worker node 의 lifecycle 과 provisioning 을 자동화 해준다.
node 생성과 업데이트 삭제를 손쉽게 관리할 수 있다.
또한 EKS 에 최적화된 Amazon linux AMI 2 및 사용자 정의 AMI 를 손쉽게 관리할 수 있다.
auto scaling group 안에서 자동으로 관리된다.
등등 이점이 많다.
특수하게 customizing 해야할 경우 unmanaged node group 을 사용하고, 웬만하면 unmanaged 보다 managed 로 관리하는 것이 이점이 많아 보인다.
log 에서 확일 할 수 있듯이, 가용영역을 알아서 2a, 2b, 2c 로 관리해주고, 각각 public, private subnet 을 생성해주었다.
또한 CloudFormation template 을 이용하여 code 로써 관리해주며, provisioning 해준다.
정상적으로 클러스터 생성이 완료되면, kubectl get nodes 명령어로 ec2 node 2개가 정상적으로 provisioning 된것을 확인할 수 있다.
이번에는 아래와 같이 yaml 파일로 managed node group 을 추가로 생성해보자.
eksctl create nodegroup --config-file=eksctl-create-ng.yaml
댓글
댓글 쓰기