Share via


429 너무 많은 요청 오류

이 문서에서는 AKS(Microsoft Azure Kubernetes Service) 클러스터(또는 Azure에서 다른 Kubernetes 구현을 사용하는 클러스터)에서 "429 너무 많은 요청" 오류로 인해 발생하는 오류를 해결하는 방법을 설명합니다.

증상

다음 텍스트와 유사한 오류가 발생합니다.

서비스에서 오류를 반환했습니다.

Status=429

Code="OperationNotAllowed"

Message="이 구독에 대해 너무 많은 요청이 수신되었기 때문에 서버에서 요청을 거부했습니다."

Details=[{
"code":"TooManyRequests",
"message":"{
\"operationGroup\":\"HighCostGetVMScaleSet30Min\",
\"startTime\":\"2020-09-20T07:13:55.2177346+00:00\",
\"endTime\":\"2020-09-20T07:28:55.2177346+00:00\",
\"allowedRequestCount\":1800,
\"measuredRequestCount\":2208
}",
"target":"HighCostGetVMScaleSet30Min"
}]

InnerError={"internalErrorCode":"TooManyRequestsReceived"}"}

원인: 과도한 호출 볼륨으로 인해 Azure에서 구독을 제한합니다.

자주 스케일 업 또는 스케일 다운을 수행하거나 클러스터 자동 크기 조정기를 사용하는 Azure의 Kubernetes 클러스터(AKS 포함 또는 제외)는 대량의 HTTP 호출을 유발할 수 있습니다. 이 호출 볼륨은 Azure 구독에 대해 할당된 할당량을 초과하므로 실패할 수 있습니다.

이러한 오류에 대한 자세한 내용은 Azure Resource Manager 요청 제한API 제한 오류 문제 해결을 참조하세요. 이러한 오류의 원인을 분석 및 식별하고 resolve 권장 사항을 가져오는 방법에 대한 자세한 내용은 AKS 문제 진단 및 해결을 사용하여 오류 분석 및 식별을 참조하세요.

해결 방법 1: 이후 버전의 Kubernetes로 업그레이드

Kubernetes 1.18을 실행합니다. x 이상. 이러한 버전에는 AKS 제한/429 오류제한 없이 대규모 클러스터 지원에 설명된 많은 개선 사항이 포함되어 있습니다. 그러나 구독의 실제 부하 또는 클라이언트 수로 인해 여전히 제한이 표시되는 경우 다음 솔루션을 사용해 볼 수 있습니다.

해결 방법 2: 자동 크기 조정기 검사 간격 늘리기

클러스터 자동 크기 조정기로 인한 "클러스터 자동 크기 조정기 제한이 검색되었습니다." 진단 보고서 제한이 발견되면 자동 크기 조정기 검사 간격을 늘려 클러스터 자동 크기 조정기에서 VMSS(가상 머신 확장 집합)에 대한 호출 수를 줄일 수 있습니다.

해결 방법 3: 더 적은 수의 호출을 수행하도록 타사 애플리케이션 다시 구성

"요청 속도 및 제한 세부 정보 보기" 진단에서 사용자 에이전트를 기준으로 필터링하는 경우 과도한 수의 GET 요청을 만드는 타사 애플리케이션(예: 애플리케이션 모니터링)을 찾으면 이러한 애플리케이션의 설정을 변경하여 GET 호출 빈도를 줄입니다. 또한 Azure API를 호출할 때 애플리케이션 클라이언트가 지수 백오프를 사용하는지 확인합니다.

해결 방법 4: 클러스터를 다른 구독 또는 지역으로 분할

가상 머신 확장 집합을 사용하는 수많은 클러스터 및 노드 풀이 있는 경우 클러스터를 다른 구독 또는 지역(동일한 구독 내)으로 분할해 보세요. 대부분의 Azure API 제한은 구독 지역 수준에서 공유 제한입니다. 예를 들어 하위 1 및 미국 동부 지역 내의 모든 클러스터와 클라이언트는 가상 머신 확장 집합 GET API에 대한 제한을 공유합니다. 따라서 새 지역에서 새 AKS 클러스터를 이동하거나 크기를 조정하고 Azure API 제한에서 차단을 해제할 수 있습니다. 이 기술은 클러스터의 활동이 높은 경우(예: 활성 클러스터 자동 크기 조정기가 있는 경우) 도움이 됩니다. 또한 많은 클라이언트(예: Rancher, Terraform 등)가 있는 경우에도 도움이 됩니다. 모든 클러스터는 탄력성과 Azure API를 폴링하는 클라이언트 수가 다르기 때문에 구독 지역 수준별로 실행할 수 있는 클러스터 수에 대한 일반적인 지침은 없습니다. 특정 지침의 경우 지원 티켓을 만들 수 있습니다.

AKS 문제 진단 및 해결을 사용하여 오류 분석 및 식별

AKS 클러스터의 경우 AKS 문제 진단 및 해결을 사용하여 이러한 오류의 원인을 분석 및 식별하고 resolve 권장 사항을 가져올 수 있습니다. Azure Portal 클러스터로 이동하고 왼쪽 탐색에서 문제 진단 및 해결을 선택하여 AKS 문제 진단 및 해결을 엽니다. 일련의 진단 사용하여 보고서를 가져올 수 있는 Azure 리소스 요청 제한을 Search 엽니다. 이러한 진단 클러스터가 ARM(Azure Resource Manager) 또는 리소스 공급자(RP)의 요청 속도 제한(429 응답)을 경험했는지 여부와 제한이 발생한 위치를 표시할 수 있습니다. 예시:

  • 클러스터에 대한 요청 속도 제한이 검색되었습니다. 이 진단은 현재 AKS 클러스터에서 제한이 검색된 경우 몇 가지 일반적인 권장 사항을 제공합니다.

  • 클러스터 자동 크기 조정기 제한이 검색되었습니다. 이 진단은 클러스터 자동 크기 조정기에서 제한이 검색되고 시작된 경우 표시됩니다.

    클러스터 자동 크기 조정기의 요청 볼륨을 줄이려면 다음 방법을 사용합니다.

    • 자동 크기 조정기 검사 간격을 늘려 클러스터 자동 크기 조정기에서 가상 머신 확장 집합으로의 호출 수를 줄입니다. 클러스터 자동 크기 조정기가 새 가상 머신에 대해 Azure Compute 리소스 공급자(CRP)를 호출하기 전에 더 오래 대기하기 때문에 이 메서드는 스케일 업하는 데 걸리는 시간에 부정적인 대기 시간에 영향을 미칠 수 있습니다.
    • 클러스터가 최소 Kubernetes 버전 1.18에 있는지 확인합니다. Kubernetes 버전 1.18 이상 버전은 429 제한 응답이 수신될 때 요청 속도 백오프를 더 잘 처리합니다. 보안 패치를 받으려면 지원되는 Kubernetes 버전 내에 머무르는 것이 좋습니다.
  • 제한 - Azure Resource Manager: 이 진단은 AKS 클러스터의 지정된 시간 범위에서 제한된 요청 수를 보여 줍니다.

  • 요청 속도 - Azure Resource Manager: 이 진단은 AKS 클러스터의 지정된 시간 범위에 있는 총 요청 수를 보여 줍니다.

  • 요청 속도 및 제한 세부 정보 보기: 이 진단에는 제한된 요청 및 총 요청을 포함하여 제한 세부 정보를 결정하는 여러 다이어그램이 있습니다. 다음 차원을 사용하여 결과를 필터링할 수도 있습니다.

    • 호스트: HTTP 상태 429 응답이 검색된 호스트입니다. Azure Resource Manager 제한은 에서 management.azure.com가져옵니다. 다른 것은 하위 계층 리소스 공급자입니다.
    • 사용자 에이전트: 지정된 사용자 에이전트가 제한된 요청입니다.
    • 작업: HTTP 상태 429 응답이 검색된 작업입니다.
    • 클라이언트 IP: 제한된 요청을 보낸 클라이언트 IP 주소입니다.

요청 제한은 이 클러스터에 대한 요청 속도뿐만 아니라 이 구독의 모든 클러스터 조합으로 인해 발생할 수 있습니다.

예제 1: 클러스터 자동 크기 조정기 제한

이 예제에서는 클러스터 자동 크기 조정기로 인한 제한을 분석하는 방법을 설명합니다.

AKS 진단 및 해결 문제알려진 문제>, 가용성 및 성능 >Azure 리소스 요청 제한에서 클러스터 자동 크기 조정기 제한 진단이 검색된 경우 클러스터 자동 크기 조정기에서 발급한 요청이 제한되었음을 나타냅니다.

클러스터 자동 크기 조정기 요청 제한이 검색됨을 보여 주는 다이어그램

제한된 요청 수와 제한 - Azure Resource Manager 진단에서 요청이 제한되는 경우를 찾을 수 있습니다.

클러스터 자동 크기 조정기 요청이 제한되는 시기를 보여 주는 다이어그램

동일한 기간에 모든 ARM 요청 수를 찾을 수 있습니다.

모든 ARM 요청 다이어그램

요청 속도 보기 및 제한 세부 정보 진단을 검사 제한 세부 정보를 찾을 수 있습니다. 필터 선택 드롭다운 목록에서 사용자 에이전트별로 429s를 선택하면 자동 크기 조정기 요청이 15:00에서 16:00으로 제한되는 것을 볼 수 있습니다.

사용자 에이전트별 제한 다이어그램

클러스터 자동 크기 조정기 및 기타 사용자 에이전트에 대한 제한된 요청의 총 수를 찾을 수도 있습니다.

사용자 에이전트별 총 제한 다이어그램

작업별로 제한을 필터링할 수도 있습니다. 이 경우 VMSS VM 삭제 작업이 제한됩니다.

작업별 제한 다이어그램

제한된 요청 수와 작업별로 그룹화된 모든 요청을 찾을 수 있습니다.

연산별 총 제한 다이어그램

그런 다음 권장 작업의 제안에 따라 제한을 줄일 수 있습니다.

다이어그램은 클러스터 자동 크기 조정기 요청 제한이 검색되었음을 보여 줍니다.

예제 2: 클라우드 공급자 제한

이 예제는 클라우드 공급자로 인한 제한에 관한 것입니다. 예를 들어 500개 이상의 노드가 있는 클러스터에서 Azure Load Balancer 프로비전하는 등 대규모 클러스터에서 리소스를 운영할 때 종종 발생합니다.

클러스터에서 제한이 발견되면 요청 속도 보기 및 스로틀 세부 정보 진단에서 제한 세부 정보를 볼 수 있습니다. 필터 선택 드롭다운 목록에서 사용자 에이전트별로 429s를 선택하면 클라우드 공급자 요청이 03:00에서 06:00으로 제한된 것을 볼 수 있습니다.

제한을 보여 주는 다이어그램이 검색됩니다.

사용자 에이전트별 제한 다이어그램

또한 작업별로 필터링하여 제한된 작업이 "네트워크/loadBalancers/read"임을 확인할 수 있습니다.

작업별 제한 다이어그램

AKS 미리 보기 기능 노드 IP 기반 Load Balancer 사용하여 이 제한을 줄일 수 있습니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.