EKS Node Monitoring Agent
2025-08-26 작성2026-06-30 수정18분 읽기
개요
EKS Node Monitoring Agent(NMA)는 AWS가 제공하는 노드 상태 모니터링 도구입니 다. EKS 클러스터의 노드에서 발생하는 하드웨어 및 시스템 레벨 문제를 자동으로 감지하고 보고합니다. 2024년에 정식 출시된 이 서비스는 노드 자동 복구(Node Auto Repair) 기능과 함께 작동하여 클러스터의 안정성을 향상시킵니다.
문제 해결
전통적인 EKS 클러스터 운영에서는 다음의 문제들이 있었습니다:
- 하드웨어 장애의 조기 감지 부족
- 시스템 레벨 문제의 수동 모니터링 필요
- 노드 상태 변화에 대한 지연된 대응
- 문제 감지와 자동 복구의 통합 부재
NMA는 이러한 문제들을 해결하기 위해 설계되었습니다.
EKS Node Monitoring Agent란?
주요 특징
- 로그 기반 문제 감지: 시스템 로그를 실시간으로 분석하여 패턴 매칭
- 자동 이벤트 생성: 문제 감지 시 Kubernetes Events 및 Node Conditions 자동 생성
- CloudWatch 통합: 감지된 문제를 CloudWatch로 전송하여 중앙 집중식 모니터링
- EKS Add-on 지원: 간편한 설치 및 관 리
중요
NMA는 노드 상태 문제를 자동으로 감지하는 유용한 도구이지만, 단독으로는 완전한 모니터링 솔루션이 될 수 없습니다. 다음의 제한 사항을 고려한 적절한 기대치 설정과 보완 도구 활용이 필요합니다.
핵심 권장사항
✅ 권장하는 사용법
- NMA를 노드 상태 감지 레이어로 활용
- Container Insights나 Prometheus로 메트릭 수집 보완
- Node Auto Repair와 함께 사용하여 자동 복구 구현
- 환경별 특성에 맞게 임계값 조정
❌ 피해야 할 사용법
- NMA만으로 전체 모니터링 의존 불가
- 급격한 하드웨어 장애 대응 불가
1. 설계 목표
1.1 포괄적인 노드 상태 모니터링
NMA는 EKS 노드의 다양한 시스템 컴포넌트를 모니터링합니다:
- Container Runtime: Docker/containerd의 상태 확인
- Storage System: 디스크 공간 및 I/O 성능 모니터링
- Networking: 네트워크 연결성 및 구성 검증
- Kernel: 커널 모듈 및 시스템 상태 점검
- Accelerated Hardware: GPU(NVIDIA) 및 Neuron 칩 상태 (하드웨어 감지 시)
1.2 Kubernetes 네이티브 통합
NMA는 controller-runtime을 사용하여 Kubernetes와 긴밀하게 통합됩니다:
mgr, err := controllerruntime.NewManager(controllerruntime.GetConfigOrDie(), controllerruntime.Options{
Logger: log.FromContext(ctx),
Scheme: scheme.Scheme,
HealthProbeBindAddress: controllerHealthProbeAddress,
BaseContext: func() context.Context { return ctx },
Metrics: server.Options{BindAddress: controllerMetricsAddress},
})
1.3 다양한 EKS 환경 지원
REST 설정 로직에서 확인할 수 있듯이, NMA는 다양한 EKS 환경을 지원합니다:
- EKS Auto: 특별한 사용자 impersonation 플로우 사용
- Legacy RBAC: 기존 권한 모델 지원
- Standard: 표준 Pod 기반 인증
2. 아키텍처 및 동작 원리
2.1 Agent Startup 및 초기화 흐름
다음 다이어그램은 NMA의 시작 과정과 모니터링 루프의 전체 흐름을 보여줍니다.