💡 NodeGroup
- 노드 그룹이란 같은 역할을 하기 위해 모인 여러 개의 노드를 묶어서 부르는 용어이다
- 노드(서버)들의 묶음을 의미하며, 주로 클라우드 환경에서 관리되는 노드 집합을 말한다
- 노드 그룹은 쿠버네티스의 오브젝트가 아니고, 편의를 위해 만든 개념이다 (쿠버네티스는 이 존재를 모른다)
- AWS, GCP, Azure와 같은 클라우드에서 노드 그룹(Node Group)이라는 개념은 자동 스케일링, 업데이트, 관리 등을 쉽게 하기 위해 사용된다
- 쿠버네티스 클러스터 안에는 실제로 다양한 사양의 노드가 존재할 수 있다
=> 여러 노드를 용도별로 분류해놓아 관리의 편의성을 높인다
- 실제 대규모 환경에서는 노드의 개수도 매우 많기 때문에 이를 그룹화하여 노드 그룹으로 관리하는 경우가 대부분이다
Node : 쿠버네티스 클러스터에서 컨테이너(Pod)를 실행하는 물리 또는 가상 머신
NodeGroup : 비슷한 설정을 가진 노드들의 묶음 (예: 같은 인스턴스 타입, 같은 리전 등)
예)
| 클라우드 | NodeGroup 개념 |
| AWS | EKS Node Group, 또는 Auto Scaling Group (ASG) |
| GCP | GKE Node Pool |
| Azure | AKS Node Pool |
- 동일한 설정(인스턴스 타입, OS, 태그 등)을 공유한다
- 스케일 업/다운을 하나의 단위로 처리한다
- 롤링 업데이트가 가능하다
- 관리 및 모니터링 효율화
- 운영 편의성 : 그룹 단위로 노드를 관리해서 운영이 쉽다
- 확장성 : 부하에 따라 노드 수 자동 증가/감소 가능하다
- 격리성 : 목적별로 노드를 나누어 리소스 분리가 가능하다 (예: GPU 전용 노드그룹)
⚠️ 이전에 해야할 것
2025.04.19 - [IT/Cloud & DevOps] - 클라우드 환경에서 쿠버네티스 클러스터 만들기
2025.04.21 - [IT/Cloud & DevOps] - Pod : 쿠버네티스에서 컨테이너 실행하는 방법
2025.04.21 - [IT/Cloud & DevOps] - ReplicaSet : 정해진 수의 Pod을 유지시켜주는 관리자
🔶 GCP GKE 클러스터의 노드풀 설정
- GKE에서는 ‘노드 그룹’이라는 말 대신 ‘노드 풀’이라는 용어를 사용한다
✅ GCP 콘솔 접속 => Kubernetes Engine => 클러스터 상세 화면에서 ‘노드 풀 추가’ 버튼을 클릭한다

✅ 노드 풀 세부정보 입력
- '클러스터 자동 확장 처리 사용 설정'을 체크하면 노드 오토스케일링이 적용된다

✅ 노드 상세 설정 후 생성 완료하기
- 기존 노드 풀 보다 고사양의 머신을 설정해주어 비교할 것이다

✅ 클러스터 상세 화면에서 ‘노드’ 탭으로 진입하여 설정 할 노드 풀을 클릭한다

✅ 노드 풀 상세 화면에서 ‘수정’ 버튼을 클릭하여 설정 화면으로 진입한다

✅ Kubernetes 라벨 항목에서 라벨 추가 버튼을 클릭 후, 설정할 Label 내용을 입력하고 저장한다


✅ yaml 파일에 nodeSelector 옵션 추가
📁 sample-replicaset.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: sample-replicaset
namespace: default
spec:
replicas: 8
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.27.0
ports:
- containerPort: 80
nodeSelector:
optimized_type: memory
kubectl get replicasets
kubectl delete replicaset sample-replicaset
kubectl apply -f sample-replicaset.yaml
kubectl get pods


✅ 설정하지 않은 레이블로 바꿔보기
- optimized_type:cpu 로 변경하고 다시 적용해본다.


=> 계속 pending 상태인 것을 알 수 있다
✅ 기존의 노드그룹에서 레이블을 변경해서 확인하기
- `kubectl get pods` 해보면 running 상태로 바뀐 것을 볼 수 있다


💡 클러스터 오토스케일러 (CA)
- 많은 Pod가 필요한 경우 현재 존재하는 노드가 부족할 수 있는데, 이럴 때 클라우드 서비스의 오토스케일링 기능을 이용하면 부족한 만큼 노드가 알아서 증가되게 할 수 있다
- 노드가 부족할 때 알아서 필요한 만큼 노드를 증설(Scale-out)(Scale-up) 하고, 노드가 너무 과하게 많은 경우 노드를 감설(Scale-in)(Scale-down) 하는 역할을 하는 기능을 ‘클러스터 오토스케일러’라고 한다
- 쿠버네티스의 기능이 아니라 AWS나 GCP와 같은 클라우드 서비스가 제공하는 기능이다
- GCP의 GKE는 별다른 설정 없이도, 노드 풀에서 ‘클러스터 자동 확장 처리 사용 설정’ 기능을 활성화하면 자동으로 노드 오토 스케일링이 작동한다
'IT > Cloud & DevOps' 카테고리의 다른 글
| Docker 명령어 (0) | 2025.06.17 |
|---|---|
| Kubernetes ConfigMap과 Secret을 사용한 환경변수 관리 (0) | 2025.04.25 |
| Kubernetes의 Node와 Pod, Pod의 리소스 설정 (Request, Limit) (0) | 2025.04.24 |
| ReplicaSet : 정해진 수의 Pod을 유지시켜주는 관리자 (0) | 2025.04.21 |
| Pod : 쿠버네티스에서 컨테이너 실행하는 방법 (0) | 2025.04.21 |