적용 대상: ✔️ AKS 자동 ✔️ AKS 표준
AKS(Azure Kubernetes Service)는 작업자 노드의 상태를 지속적으로 모니터링하고 비정상 상태가 되면 자동 노드 복구를 수행합니다. Azure VM(가상 머신) 플랫폼은 문제가 발생한 VM에서 유지 관리를 수행합니다. AKS와 Azure VM은 함께 작동하여 클러스터에 대한 서비스 중단을 최소화합니다.
대부분의 프로덕션 워크로드에서 AKS Automatic은 AKS에 권장되는 프로덕션 준비 기본 환경입니다. AKS 자동 및 AKS 표준 클러스터는 모두 노드 자동 복구를 사용하여 미리 구성됩니다.
이 문서에서는 노드 자동 복구의 작동 방식, 복구 작업 트리거 시, 적용되는 제한 사항 및 복구 이벤트를 모니터링하는 방법을 알아봅니다.
클러스터 모드별 노드 자동 복구 동작
두 AKS 클러스터 모드는 모두 노드 자동 복구를 사용하여 미리 구성됩니다.
- AKS 자동: AKS 자동 프로덕션 준비 기본값의 일부로 미리 구성됩니다.
- AKS 표준: 추가 설정 없이 AKS 표준 클러스터에서 미리 구성됩니다.
두 모드 모두 이 문서에 설명된 것과 동일한 노드 상태 검사 및 동일한 복구 시퀀스를 사용합니다.
AKS Automatic 플랫폼 기본값에 대한 자세한 내용은 Azure Kubernetes Service(AKS) Automatic이란?을 참조하세요.
AKS에서 NotReady 노드를 확인하는 방법
AKS는 다음 규칙을 사용하여 노드가 비정상이고 복구가 필요한지 여부를 확인합니다.
- 노드가 10분 이내에 연속 확인하여 NotReady 상태를 보고합니다.
- 노드가 10분 내에 상태를 보고하지 않습니다.
kubectl get nodes 명령을 사용하여 노드의 상태를 수동으로 확인할 수 있습니다.
자동 복구 작동 방법
참고
AKS는 사용자 계정 aks-remediator로 복구 작업을 시작합니다.
AKS가 5분 이상 비정상 상태로 유지되는 비정상 노드를 식별하는 경우 AKS는 다음 작업을 수행합니다.
- AKS는 노드를 다시 부팅합니다.
- 다시 부팅한 후 노드가 비정상 상태로 유지되면 AKS는 노드를 이미지로 다시 설치합니다.
- 이미지 다시 설치 후 노드가 비정상 상태로 유지되고 Linux 노드인 경우 AKS는 노드를 다시 배포합니다.
AKS는 노드가 비정상 상태로 유지되는 경우 다시 시작, 이미지 다시 설치 및 재배포 시퀀스를 최대 3회까지 다시 시도합니다. 전체 자동 복구 프로세스를 완료하는 데 최대 1시간이 걸릴 수 있습니다.
프로덕션 고려 사항
노드 자동 복구는 핵심 복원력 메커니즘이지만 워크로드 수준 복원력 사례와 결합합니다.
- 여러 복제본을 사용하여 중요한 워크로드를 실행합니다.
- PodDisruptionBudgets 및 준비 상태 프로브를 사용하여 사용자에게 보이는 영향을 줄입니다.
- 복구 작업 및 오류 이벤트를 모니터링하여 반복되는 노드 문제를 검색합니다.
- 자동 복구 타이밍을 SLO/SLA 및 인시던트 대응 계획에 통합합니다.
제한 사항
AKS 노드 자동 복구는 최상의 서비스입니다. AKS는 모든 시나리오에서 노드가 정상 상태로 복원되도록 보장하지는 않습니다. 노드가 비정상 상태로 유지되면 수동 조사를 수행합니다. 자세한 내용은 노드 NotReady 상태 문제 해결을 참조하세요.
AKS는 다음 시나리오에서 자동 복구를 수행하지 않을 수 있습니다.
- 네트워크 구성 오류로 인해 노드 상태가 보고되지 않습니다.
- 노드가 정상 노드로 등록되지 않습니다.
- 노드에는 다음 테인트 중 하나가 있습니다.
node.cloudprovider.kubernetes.io/shutdownToBeDeletedByClusterAutoscaler
- 노드가 업그레이드되고 있으며 다음과 같은 주석이 있습니다.
"cluster-autoscaler.kubernetes.io/scale-down-disabled": "true""kubernetes.azure.com/azure-cluster-autoscaler-scale-down-disabled-reason": "upgrade"
Kubernetes 이벤트를 사용하여 노드 자동 복구 모니터링
AKS는 노드 자동 복구를 수행할 때 원본에서 aks-auto-repair Kubernetes 이벤트를 내보냅니다. 자동 복구가 발생할 때 노드 개체에 다음 이벤트가 표시됩니다.
Kubernetes 이벤트에 대한 액세스, 저장 및 경고에 대한 자세한 내용은 AKS에서 문제 해결을 위해 Kubernetes 이벤트 사용을 참조하세요.
| 원인 | 이벤트 메시지 | 설명 |
|---|---|---|
| 노드 재부팅 시작 | 노드 자동 복구는 NotReady 상태가 5분 이상 지속되어 다시 부팅 작업을 시작합니다. | 이 이벤트는 다시 부팅이 노드에서 수행될 때 알립니다. 이 작업은 전체 노드 자동 복구 시퀀스의 첫 번째 작업입니다. |
| 노드재부팅종료 | 노드 자동 복구에서 다시 부팅 작업이 완료되었습니다. | 노드에서 다시 부팅이 완료되면 내보내집니다. 이 이벤트는 다시 부팅이 수행된 후 노드의 상태(정상 또는 비정상)를 나타내지 않습니다. |
| NodeReimageStart | 노드 자동 복구는 NotReady 상태가 5분 이상 지속되어 이미지 다시 설치 작업을 시작합니다. | 이 이벤트는 이미지 다시 설치가 노드에서 수행될 때 알림을 표시합니다. |
| NodeReimageEnd | 노드 자동 복구에서 이미지 다시 설치 작업이 완료되었습니다. | 노드에서 이미지 다시 설치가 완료되면 내보냅니다. 이 이벤트는 이미지 다시 설치가 수행된 후 노드의 상태(정상 또는 비정상)를 나타내지 않습니다. |
| NodeRedeployStart | 노드 자동 복구는 NotReady 상태가 5분 이상 지속되어 다시 배포 작업을 시작합니다. | 이 이벤트는 노드에서 다시 배포가 수행될 때 이를 알립니다. 다시 배포는 노드 자동 복구 시퀀스의 마지막 작업입니다. |
| 노드 재배치 종료 | 노드 자동 복구에서 다시 배포 작업이 완료되었습니다. | 노드에서 다시 배포가 완료되면 내보냅니다. 이 이벤트는 다시 배포가 수행된 후 노드의 상태(정상 또는 비정상)를 나타내지 않습니다. |
노드 자동 복구 중에 오류가 발생하면 AKS는 축자 오류 메시지와 함께 다음 이벤트를 내보냅니다. 자세한 내용은 일반적인 노드 자동 복구 오류 문제 해결을 참조하세요.
참고
다음 이벤트 메시지의 오류 코드는 보고된 오류에 따라 달라집니다.
| 원인 | 이벤트 메시지 | 설명 |
|---|---|---|
| NodeRebootError | 노드 자동 복구 다시 부팅 작업이 작업 실패로 인해 실패했습니다. 오류 세부 정보는 다음을 참조하세요. 오류 코드 | 다시 부팅 작업에 오류가 있을 때 내보냅니다. |
| NodeReimageError | 노드 자동 복구 이미지 작업이 작업 실패로 인해 실패했습니다. 오류 세부 정보는 다음을 참조하세요. 오류 코드 | 이미지 다시 설치 작업에 오류가 있을 때 내보냅니다. |
| 노드재배치오류 | 노드 자동 복구 다시 배포 작업이 작업 실패로 인해 실패했습니다. 오류 세부 정보는 다음을 참조하세요. 오류 코드 | 다시 배포 작업에 오류가 있을 때 내보냅니다. |