Azure 상식

AKS Node Pool 이해와 운영 모범 가이드

ktzzang0601 2025. 8. 19. 10:44

1. Node Pool 개념

  • AKS에서 Node Pool은 동일한 VM 크기·구성·OS를 가진 노드 그룹을 의미합니다.
  • 클러스터에는 최소 하나의 System Node Pool이 필요하며, 애플리케이션 워크로드는 User Node Pool에서 실행하는 것이 권장됩니다.

2. Node Pool 유형

구분 설명 특징
System Node Pool Kubernetes 핵심 컴포넌트
(CoreDNS. kube-proxy. OMS Agent 등)가 실행되는 풀
- 최소 1개 필요
- 안정성과 가용성 우선
- VM 크기 변경·불필요한 Scale 조정 지양
User Node Pool 애플리케이션 워크로드(Pod)가 실행되는 풀 - 워크로드 특성별 Pool 구성 가능
- VM 크기·OS·GPU 여부 다양하게 설정 가능

 

3. 용도별 배치 가이드

조치/작업 권장 Node Pool 이유
CoreDNS, kube-proxy, 모니터링 에이전트 System 클러스터 필수 서비스
일반 애플리케이션 Pod User 시스템 리소스와 분리
GPU·고성능 연산 GPU 전용 User 특수 VM 필요
Canary·Blue/Green 배포 별도 User 운영 영향 최소화
CI/CD Job 실행 User 비즈니스 로직 처리 영역
업그레이드 테스트 임시 User System Pool 영향 차단

4. System Node Pool에서 하지 말아야 할 작업

  • 사용자 애플리케이션 Pod 배포
  • OS 업그레이드·VM 크기 변경 테스트
  • 불필요한 Add-on 설치
  • 대규모 리소스 사용 워크로드 실행

-> 이유: 시스템 리소스와 경쟁하면 클러스터 전체 안정성이 저하됩니다.

5. 멀티 Node Pool 생성시 유의사항

  • AKS 클러스터에 시스템 노드 풀을 대체할 다른 시스템 노드 풀이 있으면 시스템 노드 풀을 삭제해도 됩니다. 그렇지 않은 경우 시스템 노드 풀을 삭제할 수 없습니다.
  • 시스템 풀에 하나 이상의 노드가 포함되어야 하고, 사용자 노드 풀에는 0개 이상의 노드가 포함될 수 있습니다.
  • 여러 노드 풀을 사용하려면 AKS 클러스터에서 표준 SKU 부하 분산 장치를 사용해야 합니다. 기본 SKU 부하 분산 장치에서는 이 기능이 지원되지 않습니다.
  • AKS 클러스터는 노드에 대한 Virtual Machine Scale Sets를 사용해야 합니다.
  • 노드 풀의 이름은 영숫자 소문자만 포함할 수 있고 소문자 문자로 시작해야 합니다.
    • Linux 노드 풀의 경우 길이는 1~12자 사이여야 합니다.
    • Windows 노드 풀의 경우 길이는 1~6자 사이여야 합니다.
  • 모든 노드 풀은 동일한 가상 네트워크에 있어야 합니다.
  • 클러스터를 만들 때 여러 노드 풀을 만드는 경우 노드 풀의 모든 Kubernetes 버전은 컨트롤 플레인에 설정된 버전과 일치해야 합니다.

6. 운영 시 Best Practice 

  1. System Node Pool 최소 1개 유지
    • 권장 VM 크기: 최소 2 vCPU, 8 GB RAM
    • Availability Zone 분산 구성 가능
  2. User Node Pool은 워크로드 특성별로 분리
    • 예: API 전용 Pool, Batch 전용 Pool, GPU Pool
  3. 시스템과 워크로드 분리로 안정성 확보
    • 운영 중 문제 발생 시 User Pool만 Scale 조정 가능
  4. 업그레이드·테스트는 임시 Pool 활용
    • 기존 Pool에 영향 없이 새 버전 검증 가능

7. 참고 문서