지난 글에선 EKS 클러스터를 구성하는데까지만 작성을 했지만 이제 그에 이어서 Node Group을 구성하는 방법에 대해서 진행하고자 합니다.
방식은 2가지로 나눠서 작성 예정입니다.
하나는 EKS Cluster에서 Add NodeGroup을 통해서 Worker Node를 구성하는 방법, 나머지 하나는 CloudFormation을 통해서 스택을 구성하여 배포하는 방식으로 작성하고자 합니다.
먼저, EKS Cluster에서 직접 배포하는 방식에 대해서 작성하도록 하겠습니다.
먼저 EKS Cluster의 홈으로 이동 후 만들어 놓은 EKS Cluster를 선택합니다.
그리고 바로 이어서 Worker Node를 생성하러 가보겠습니다.
이 화면에서 Compute라고 되어있는 탭을 누르시면
노드 그룹을 생성할 수 있는 화면이 나오고 여기서 Add NodeGroup을 누르시면 Worker Node들의 생성을 시작할 수 있습니다.
처음 화면에서 만들 노드 그룹의 이름 및 Role(앞서 생성한 eksWorkerNodeRole)을 선택해주시고, "다음"을 눌러줍니다.
그러시면 세부적으로 worker node Instance의 OS는 무엇으로 할껀지, 그리고 몇대를 생성할껀지, 인스턴스 타입은 무엇을 할껀지 등을 선택해주시고 "다음"을 눌러줍니다.
그러시면 이제 Worker Node가 사용할 키 및 서브넷을 선택할 수 있게 되는데 여기서 서브넷을 선택하실 때 퍼블릭 서브넷을 빼주시고 프라이빗 서브넷만 선택해주시고, SG에 대한 내용 선택 후 "다음"을 눌러줍니다.
그러시면 앞서 선택하신 것에 대한 Review를 보실 수 있게 되고 여기서 선택에 실순 없으셨는지 확인하시고 없으시면 생성을 눌러주시면 Worker Node들이 생성되게 됩니다.
Node Group을 생성하는데 별다른 문제 요소가 없다고 하시면 2~3분이내로 빠르게 생성되는 것을 확인할 수 있습니다.
이렇게 생성된 Node Group은 EC2 홈에서도 확인이 가능합니다.
이러한 과정을 거치면 비교적 손쉽게 Cluster 및 Worker Node를 구성하실 수 있습니다. 그럼 이어서 AWS에서 제공하는 Yaml(https://amazon-eks-s3.us-west-2.amazonaws.com/cloudformation/2020-08-12/amazon-eks-nodegroup.yaml)을 통해서 CloudFormation에 Stack을 생성하여 구성하는 방법에 대해서 설명하도록 하겠습니다.
Stack을 만들어 주기 위해서 CloudFormation 홈으로 이동을 해주고, Create Stack을 눌러줍니다.
그럼 거기에 지난번과는 다르게 이번엔 nodegroup에 대한 yaml URL을 기입해주고 Next를 눌러줍니다. 그러시면 이제 NodeGroup 생성에 대한 Stack을 정의하게 되는데요
순서대로 Stack의 이름을 적어주시고, 앞으로 생성할 Worker Node들을 붙일 Cluster의 이름을 적어주시고, 그 Cluster에 대한 control Plane SG를 붙여줍니다.
그리고 순서대로 nodegroup에 대한 명칭을 적어 줍니다. 그리고 인스턴스 타입, 운영할 Worker Node 수에 대한 Min/MAX 값을 차례차례 입력을 해줍니다.
여기서 보이는 NodeImageSSMParam의 경우 AWS에서 제공하는 EKS에 최적화된 AMI에 대한 파라미터 값을 말합니다.
그리고 VPC를 선택해주시고, Subnet에는 Private Subnet으로 구성을 해주시고, Next를 누르시고,
추가적인 옵션을 설정하시고 Next를 눌러주시면, 리뷰를 확인하실 수 있고, 앞서 기입한 것에 대해 다른 것이 없으시다면 생성을 눌러주시면, Stack이 생성이 되게 됩니다.
위의 화면은 Stack이 생성이 되었을 때의 화면이고, 해당 Stack을 통해 생성된 WorkerNode들은 EC2 Home에서 확인을 하실 수 있습니다.
하지만 Stack을 통해서 Worker Node들을 만들었다고 해서 바로 Cluster에 이 Worker Node들이 Join되어 있는건 아닌데요.
이제 이 생성된 Worker Node들을 Join 하는 과정을 진행하겠습니다.
먼저, 작업을 진행할 EC2 하나를 준비해주시고, 거기에 AWS Credential을 구성해줍니다.
그 후에 아래의 스크린 샷 처럼 aws-auth-cm.yaml 파일을 다운받아줍니다.
그 후에 다운 받은 파일을 열고 rolearn 부분에 Stack을 통해서 생성된 Worker Node에 대한 Role Arn을 기입을 해줍니다.
그 후에 해당 yaml 파일을 적용시켜 주시면 아래와 같이 생성되었던 Node들이 Join 되어 있는 것을 확인하실 수 있습니다.
이렇게 Worker Node를 생성하는 것까지 진행했는데요. 이 것 말고도 쿠버네티스 서비스를 올리기 위해선 Cluster 인증을 진행해야되는데요. 이 글에서 CloudFormation을 통해 구성하는 마지막 부분은 그런 Cluster의 인증 부분이 생략되어 있는데요. 다음 글에선 그런 Cluster의 인증에 대한 글을 이어서 적도록 하겠습니다.
긴 글 읽어 주셔서 감사합니다.
참고사이트
(AWS)DataSync 구성하기 (0) | 2021.01.03 |
---|---|
(AWS)VM Import (0) | 2021.01.02 |
(AWS)EKS 구성하기-3 (0) | 2021.01.02 |
(AWS)EKS 구성하기-1 (0) | 2021.01.02 |
(AWS)EFS 구성하기 (0) | 2020.12.23 |