AKS(Azure Kubernetes Service) 노드 자동 복구

AKS는 작업자 노드의 상태를 지속적으로 모니터링하고 비정상 상태가 되면 자동 노드 복구를 수행합니다. Azure VM(가상 머신) 플랫폼은 문제가 발생한 VM에서 유지 관리를 수행합니다.

AKS와 Azure VM은 함께 작동하여 클러스터에 대한 서비스 중단을 최소화합니다.

이 문서에서는 Windows 및 Linux 노드 둘 다에서 자동 노드 복구 기능이 어떻게 작동하는지 알아봅니다.

AKS에서 비정상 노드를 확인하는 방법

AKS는 다음 규칙을 사용하여 노드가 비정상이고 복구가 필요한지 여부를 확인합니다.

  • 노드가 10분 이내에 연속 확인하여 준비되지 않음 상태를 보고합니다.
  • 노드가 10분 내에 상태를 보고하지 않습니다.

kubectl을 사용하여 노드의 상태를 수동으로 확인할 수 있습니다.

kubectl get nodes

자동 복구 작동 방법

참고

AKS는 사용자 계정 aks-remediator로 복구 작업을 시작합니다.

AKS가 10분 동안 비정상 상태로 유지되는 비정상 노드를 식별하는 경우 AKS는 다음 작업을 수행합니다.

  1. 노드를 다시 부팅합니다.
  2. 다시 부팅할 수 없는 경우 노드를 이미지로 다시 설치합니다.
  3. 이미지로 다시 설치할 수 없는 경우 노드를 다시 배포합니다.

자동 복구에 실패한 경우 대체 수정 사항은 AKS 엔지니어가 조사합니다.

AKS가 상태 확인 중에 여러 비정상 노드를 발견하면 다른 복구가 시작되기 전에 각 노드가 개별적으로 복구됩니다.

노드 자동 드레인

Scheduled Events는 노드 풀의 기본 VM(가상 머신)에서 발생할 수 있습니다. 스폿 노드 풀의 경우 예약된 이벤트로 인해 노드에 대한 선점 노드 이벤트가 발생할 수 있습니다. 선점과 같은 특정 노드 이벤트는 AKS 노드 자동 드레인에서 영향을 받는 노드의 코돈 및 드레인을 시도하게 하므로 해당 노드에서 영향을 받는 워크로드를 정상적으로 다시 예약할 수 있습니다. 이 경우 "kubernetes.azure.com/scalesetpriority: spot" 때문에 노드가 "remediator.aks.microsoft.com/unschedulable"로 오염된 것을 수신할 수 있습니다.

다음 표에서는 노드 이벤트 및 AKS 노드 자동 드레인에 대해 발생하는 작업을 보여 줍니다.

이벤트 설명 작업
중지 VM이 몇 초간 일시 중지되도록 예약됩니다. CPU와 네트워크 연결이 일시 중단될 수 있지만 메모리나 열려 있는 파일에는 영향을 미치지 않습니다. 작업 없음
Reboot VM이 다시 부팅되도록 예약됩니다. VM의 비영구적 메모리가 손실됩니다. 작업 없음
재배포 VM이 다른 노드로 이동되도록 예약됩니다. VM의 임시 디스크가 손실됩니다. 차단 및 드레이닝
Preempt 스폿 VM이 삭제되고 있습니다. VM의 임시 디스크가 손실됩니다. 차단 및 드레이닝
종료 VM이 삭제되도록 예약됩니다. 차단 및 드레이닝

제한 사항

대부분의 경우 AKS는 노드가 비정상인지 확인하고 문제를 복구하려고 시도할 수 있지만 AKS가 문제를 복구할 수 없거나 문제가 있음을 검색할 수 없는 경우가 있습니다. 예를 들어 AKS는 네트워크 구성 오류로 인해 노드 상태가 보고되지 않거나 처음에 정상 노드로 등록하지 못한 경우 문제를 검색할 수 없습니다.

다음 단계

가용성 영역을 사용하여 AKS 클러스터 워크로드를 통해 고가용성을 개선합니다.