EKS 클러스터에서 노드 자동 복구 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.

EKS 클러스터에서 노드 자동 복구

이 주제에서는 EKS 자동 노드 복구 동작과 요구 사항에 맞게 이 기능을 구성하는 방법을 자세히 설명합니다. EKS 자동 노드 복구는 EKS Auto Mode에서 기본적으로 활성화되며 EKS 관리형 노드 그룹 및 Karpenter와 함께 사용할 수 있습니다.

기본 EKS 자동 노드 복구 작업은 아래 표에 요약되어 있으며 EKS Auto Mode, EKS 관리형 노드 그룹 및 Karpenter의 동작에 적용됩니다. EKS Auto Mode 또는 Karpenter를 사용하는 경우 모든 AcceleratedHardwareReady 복구 작업은 Replace이며 EKS 관리형 노드 그룹만 복구 작업으로 Reboot를 지원합니다.

EKS 노드 모니터링 에이전트에서 감지한 노드 상태 문제 및 해당 노드 복구 작업의 상세 목록은 EKS 노드 모니터링 에이전트에서 노드 상태 문제 감지 섹션을 참조하세요.

노드 조건 설명 다음 이후에 복구 복구 작업

AcceleratedHardwareReady

AcceleratedHardwareReady는 노드의 가속 하드웨어(GPU, Neuron)가 올바르게 작동하는지를 나타냅니다.

10m

교체 또는 재부팅

ContainerRuntimeReady

ContainerRuntimeReady는 컨테이너 런타임(Containered 등)이 올바르게 작동하고 컨테이너를 실행할 수 있는지를 나타냅니다.

30m

Replace

DiskPressure

DiskPressure는 노드에서 디스크 압력(디스크 공간 부족 또는 높은 I/O)이 발생하고 있음을 나타내는 표준 Kubernetes 조건입니다.

해당 사항 없음

없음

KernelReady

KernelReady는 커널이 심각한 오류, 패닉 또는 리소스 소진 없이 올바르게 작동하는지를 나타냅니다.

30m

Replace

MemoryPressure

MemoryPressure는 노드에서 메모리 압력(사용 가능한 메모리 부족)이 발생하고 있음을 나타내는 표준 Kubernetes 조건입니다.

해당 사항 없음

없음

NetworkingReady

NetworkingReady는 노드의 네트워킹 스택이 올바르게 작동하는지(인터페이스, 라우팅, 연결)를 나타냅니다.

30m

Replace

StorageReady

StorageReady는 노드의 스토리지 하위 시스템이 올바르게 작동하는지(디스크, 파일 시스템, I/O)를 나타냅니다.

30m

Replace

준비됨

Ready는 노드가 정상이고 포드를 수락할 준비가 되었음을 나타내는 표준 Kubernetes 조건입니다.

30m

Replace

EKS 자동 노드 복구 작업은 기본적으로 다음 시나리오에서 비활성화됩니다. 진행 중인 노드 복구 작업은 각 시나리오에서 계속됩니다. 이러한 기본 설정을 재정의하는 방법은 자동 노드 복구 구성 섹션을 참조하세요.

EKS 관리형 노드 그룹

  • 노드 그룹에는 노드가 5개 넘게 있고 노드 그룹의 노드 중 20% 넘게 비정상 상태입니다.

  • 클러스터의 영역 전환은 Application Recovery Controller(ARC)를 통해 트리거됩니다.

EKS Auto Mode 및 Karpenter

  • NodePool의 노드 중 20% 넘게 비정상 상태입니다.

  • 독립 실행형 NodeClaims의 경우 클러스터의 노드 중 20%가 비정상 상태입니다.

자동 노드 복구 구성

EKS Auto Mode를 사용하는 경우 자동 노드 복구를 구성할 수 없으며, 항상 Karpenter와 동일한 기본 설정으로 활성화됩니다.

Karpenter

Karpenter에서 자동 노드 복구를 사용하려면 NodeRepair=true 기능 게이트를 활성화합니다. --feature-gates CLI 옵션 또는 Karpenter 배포의 FEATURE_GATES 환경 변수를 통해 기능 게이트를 활성화할 수 있습니다. 자세한 내용은 Karpenter 설명서를 참조하세요.

관리형 노드 그룹

새 EKS 관리형 노드 그룹을 생성하는 경우 또는 기존 EKS 관리형 노드 그룹을 업데이트하여 자동 노드 복구를 활성화할 수 있습니다.

EKS 관리형 노드 그룹을 사용하는 경우 다음 설정을 기반으로 노드 자동 복구 동작을 제어할 수 있습니다.

노드 자동 복구가 작업 수행을 중지하는 시점을 제어하려면 노드 그룹에서 비정상 노드 수를 기반으로 임계치를 설정합니다. 절대 수 또는 백분율을 설정합니다. 단, 둘 다 설정할 수는 없습니다.

설정 설명

maxUnhealthyNodeThresholdCount

노드 자동 복구가 중지되는 비정상 노드의 절대 수입니다. 이를 사용하여 복구 범위를 제한합니다.

maxUnhealthyNodeThresholdPercentage

노드 자동 복구가 중지되는 비정상 노드의 백분율(0~100)입니다.

동시에 복구되는 노드 수를 제어하기 위해 복구 병렬 처리를 구성할 수 있습니다. 비정상 노드 임계치와 마찬가지로 절대 수 또는 백분율을 설정합니다. 단, 둘 다 설정할 수는 없습니다.

설정 설명

maxParallelNodesRepairedCount

동시에 복구할 최대 노드 수입니다.

maxParallelNodesRepairedPercentage

동시에 복구할 비정상 노드의 최대 비율(0~100)입니다.

nodeRepairConfigOverrides를 사용하면 특정 조건에 맞게 복구 동작을 사용자 지정할 수 있습니다. 다른 문제 유형에 대해 다른 복구 작업 또는 대기 시간이 필요한 경우 이 옵션을 사용합니다.

재정의마다 다음 필드가 모두 필요합니다.

필드 설명

nodeMonitoringCondition

노드 모니터링 에이전트가 보고하는 비정상 조건입니다. 예: AcceleratedHardwareReady, NetworkingReady, StorageReady, KernelReady.

nodeUnhealthyReason

비정상 조건에 대한 특정 사유 코드입니다. 예시: NvidiaXID31Error, IPAMDNotRunning.

minRepairWaitTimeMins

노드가 복구에 적합한 자격을 갖추기 전에 조건을 지속해야 하는 최소 시간(분)입니다. 일시적인 문제로 노드를 복구하지 않으려면 이 옵션을 사용합니다.

repairAction

조건이 충족되면 수행할 작업입니다. 유효한 값: Replace(노드 종료 및 교체), Reboot(노드 재부팅) 또는 NoAction(복구 작업 없음).

다음 AWS CLI 예제에서는 사용자 지정 복구 설정을 사용하여 노드 그룹을 생성합니다.

aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --node-role arn:aws:iam::111122223333:role/NodeRole \ --subnets subnet-0123456789abcdef0 \ --node-repair-config '{ "enabled": true, "maxUnhealthyNodeThresholdPercentage": 10, "maxParallelNodesRepairedCount": 3, "nodeRepairConfigOverrides": [ { "nodeMonitoringCondition": "AcceleratedHardwareReady", "nodeUnhealthyReason": "NvidiaXID64Error", "minRepairWaitTimeMins": 5, "repairAction": "Replace" }, { "nodeMonitoringCondition": "AcceleratedHardwareReady", "nodeUnhealthyReason": "NvidiaXID31Error", "minRepairWaitTimeMins": 15, "repairAction": "NoAction" } ] }'

이 구성에서는 다음을 수행합니다.

  • 노드 자동 복구 활성화

  • 노드의 10% 넘게 비정상 상태일 때 복구 작업 중지

  • 한 번에 최대 3개의 노드 복구

  • 5분 후에 노드를 교체하도록 XID 64 오류(GPU 메모리 재매핑 실패)를 재정의합니다. 기본값은 10분 후 재부팅입니다.

  • 아무 작업도 수행하지 않도록 XID 31 오류(GPU 메모리 페이지 오류)를 재정의합니다. 기본값은 10분 후 재부팅입니다.