07. [AWS EKS] 특정 node에 선택적으로 배포하기 위한 labelling

"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

를 적용해주면 된다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유