노드 상태 문제 감지 및 자동 노드 복구 활성화
노드 상태 문제 감지 및 자동 노드 복구 활성화
노드 모니터링 에이전트와 자동 노드 복구 기능을 사용하여 EKS 노드 상태를 유지하는 방법을 설명합니다.
출처: 문서
본문
노드 상태(Node health)는 Kubernetes 노드가 워크로드를 효과적으로 실행할 수 있는 운영 상태와 능력을 말합니다. 정상적인 노드는 예상된 네트워크 연결을 유지하고, 충분한 컴퓨팅 및 스토리지 자원을 가지며, 중단 없이 워크로드를 성공적으로 실행할 수 있습니다.
EKS 클러스터의 노드 상태를 유지하기 위해 EKS는 노드 모니터링 에이전트(node monitoring agent)와 자동 노드 복구(automatic node repair)를 제공합니다. 이러한 기능은 EKS Auto Mode 컴퓨팅에서 자동으로 활성화됩니다. 또한 자동 노드 복구를 EKS 관리형 노드 그룹과 Karpenter에서 사용할 수 있고, EKS 노드 모니터링 에이전트는 AWS Fargate를 제외한 모든 EKS 컴퓨팅 유형에서 사용할 수 있습니다. EKS 노드 모니터링 에이전트와 자동 노드 복구는 함께 사용할 때 가장 효과적이지만, EKS 클러스터에서 개별적으로도 사용할 수 있습니다.
중요
노드 모니터링 에이전트와 노드 자동 복구는 Linux에서만 사용할 수 있습니다. 이러한 기능은 Windows에서는 사용할 수 없습니다.
노드 모니터링 에이전트
EKS 노드 모니터링 에이전트는 노드 로그를 읽어 상태 문제를 감지합니다. 로그를 구문 분석하여 실패를 감지하고 노드의 건강 상태에 대한 상태 정보를 표시합니다. 감지된 각 문제 범주에 대해 에이전트는 워커 노드에 전용 NodeCondition을 적용합니다. EKS 노드 모니터링 에이전트가 감지한 노드 상태 문제에 대한 자세한 내용은 EKS 노드 모니터링 에이전트로 노드 상태 문제 감지를 참조하세요.
EKS Auto Mode 컴퓨팅에는 노드 모니터링 에이전트가 포함됩니다. 다른 EKS 컴퓨팅 유형에서는 EKS 애드온으로 노드 모니터링 에이전트를 추가하거나 Helm 같은 Kubernetes 도구로 관리할 수 있습니다. 자세한 내용은 노드 모니터링 에이전트 구성을 참조하세요.
EKS 노드 모니터링 에이전트를 사용하면 다음 범주의 노드 상태 문제가 노드 조건(node conditions)으로 표시됩니다. Ready, DiskPressure, MemoryPressure는 EKS 노드 모니터링 에이전트 없이도 표시되는 표준 Kubernetes 노드 조건입니다.
| 노드 조건 | 설명 |
|---|---|
| AcceleratedHardwareReady | 노드의 가속 하드웨어(GPU, Neuron)가 올바르게 작동하는지 여부를 나타냅니다. |
| ContainerRuntimeReady | 컨테이너 런타임(containerd 등)이 올바르게 작동하고 컨테이너를 실행할 수 있는지 여부를 나타냅니다. |
| DiskPressure | 노드가 디스크 압력(낮은 디스크 공간 또는 높은 I/O)을 겪고 있음을 나타내는 표준 Kubernetes 조건입니다. |
| KernelReady | 커널이 중대한 오류, 패닉, 자원 고갈 없이 올바르게 작동하는지 여부를 나타냅니다. |
| MemoryPressure | 노드가 메모리 압력(낮은 사용 가능 메모리)을 겪고 있음을 나타내는 표준 Kubernetes 조건입니다. |
| NetworkingReady | 노드의 네트워킹 스택(인터페이스, 라우팅, 연결)이 올바르게 작동하는지 여부를 나타냅니다. |
| StorageReady | 노드의 스토리지 하위 시스템(디스크, 파일 시스템, I/O)이 올바르게 작동하는지 여부를 나타냅니다. |
| Ready | 노드가 정상이고 Pod를 받을 준비가 되었음을 나타내는 표준 Kubernetes 조건입니다. |
자동 노드 복구
EKS 자동 노드 복구는 노드 상태를 지속적으로 모니터링하고, 감지된 문제에 반응하며, 가능할 때 노드를 교체하거나 재부팅합니다. 이는 최소한의 수동 개입으로 클러스터 안정성을 향상시키고 애플리케이션 가동 중단 시간을 줄이는 데 도움이 됩니다.
EKS 자동 노드 복구는 단독으로 kubelet의 Ready 조건, 수동으로 삭제된 노드 객체, 클러스터 조인에 실패한 EKS 관리형 노드 그룹 인스턴스에 반응합니다. 노드 모니터링 에이전트를 설치한 상태에서 EKS 자동 노드 복구가 활성화되면 추가 노드 조건(AcceleratedHardwareReady, ContainerRuntimeReady, KernelReady, NetworkingReady, StorageReady)에도 반응합니다.
EKS 자동 노드 복구는 표준 Kubernetes DiskPressure, MemoryPressure, PIDPressure 노드 조건에는 반응하지 않습니다. 이러한 조건은 노드 수준 실패보다는 애플리케이션 동작, 워크로드 구성 또는 자원 한도 문제를 나타내는 경우가 많아 적절한 기본 복구 작업을 결정하기 어렵습니다. 이러한 시나리오에서는 워크로드가 Kubernetes 노드 압력 축출(eviction) 동작의 적용을 받습니다.
EKS 자동 노드 복구에 대한 자세한 내용은 EKS 클러스터에서 노드 자동 복구를 참조하세요.