"04. [AWS EKS] AWS console에서 Node Group 생성" 글에서 'node_role=msa'으로 node group labelling을 했으면 이 글은 전체를 skip 해도 된다. 이 글은 그냥 부연 설명.
개요
처음에 node group 만들 때 설정해주었으면 아래 과정 skip.
이 글은 그냥 labelling에 대한 부연 설명이다.
경우에 따라서 ArgoCD와 같은 운영에 필요한 도구는 Management라는 이름을 붙인 Node Group을 따로 생성하여 설치하고,
application은 App이라는 이름의 node group에만 설치하는 방법도 있다.
이것을 구현하기 위해서는 각각 Node에 label을 붙이고 (예: node-role = msa)
배포시에 다음과 같이 yaml파일에 nodeSelector를 이용해 특정 node에만 배포할 수 있다.
nodeSelector:
node-role: msa
kubectl로 label
kubectl get nodes --show-labels
을 하면 각 worker node에 붙여진 모든 label을 조회할 수 있다.
우리가 생성한 VENUS-APP이라는 node group의 worker node 5개에 전부 node-role=msa라는 label을 붙일 수 있다.
kubectl label nodes ip-10-0-5-111.ap-northeast-2.compute.internal node-role=msa
kubectl label nodes ip-10-0-2-111.ap-northeast-2.compute.internal node-role=msa
kubectl label nodes ip-10-0-5-112.ap-northeast-2.compute.internal node-role=msa
kubectl label nodes ip-10-0-2-112.ap-northeast-2.compute.internal node-role=msa
kubectl label nodes ip-10-0-2-132.ap-northeast-2.compute.internal node-role=msa
AWS console에서도 이 labelling이 제대로 적용되었는지 확인이 가능하다.
AWS console에서 EKS 메뉴 > VENUS-X2BEE Cluster 선택 > Compute 탭 선택 > 특정 node 클릭해서
Labels 란에 보면 제대로 labelling이 된 것을 확인할 수 있다.
그러나 이렇게 EC2 하나씩 labelling을 하면 auto-scaling을 적용했을 때 자동으로 labelling하지 않는 문제점이 있다.
이를 위해서는 AWS console에서 Node Group > Compute > Edit으로 들어가서 아래처럼 node group 전체에
key: node-role
value: msa
를 적용해주면 된다.
'DevOps와 Infra > AWS EKS' 카테고리의 다른 글
09. [AWS EKS] istio와 istio gateway 설치 (0) | 2023.09.10 |
---|---|
08. [AWS EKS] metrics server 설치 / HPA autoscaling (0) | 2023.09.10 |
06. [AWS EKS] AWS CLI2와 kubectl (0) | 2023.09.09 |
05. Jenkins 설치 (0) | 2023.09.09 |
04. [AWS EKS] AWS console에서 Node Group 생성 (0) | 2023.08.08 |