AKS 클러스터에서 HDInsight 자동 크기 조정
중요하다
AKS의 Azure HDInsight는 2025년 1월 31일에 사용 중지되었습니다. 이 공지 을 통해에 대해 자세히 알아보세요.
워크로드가 갑자기 종료되는 것을 방지하기 위해 워크로드를 Microsoft Fabric 또는 동등한 Azure 제품으로 워크로드를 마이그레이션해야 합니다.
중요하다
이 기능은 현재 미리 보기로 제공됩니다. Microsoft Azure 미리 보기에 대한 추가 사용 약관에는 베타 버전, 프리뷰 또는 아직 일반 공급으로 제공되지 않은 Azure 기능에 적용되는 추가 법적 조건이 포함됩니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight를 AKS 미리 보기 정보에서 참조하세요. 질문이나 기능 제안이 있으시면, AskHDInsight에 요청을 제출해 주시고, 최신 소식을 원하신다면 Azure HDInsight Community을 팔로우해 주세요.
작업 성능을 충족하고 미리 비용을 관리하기 위한 클러스터의 크기 조정은 항상 까다롭고 결정하기 어렵습니다. 클라우드를 통해 데이터 레이크 하우스를 빌드할 때 얻을 수 있는 수익성 있는 이점 중 하나는 탄력성이며, 이는 자동 크기 조정 기능을 사용하여 현재 리소스의 사용률을 최대화하는 것을 의미합니다. Kubernetes를 사용한 자동 크기 조정은 비용 최적화 에코시스템을 설정하는 한 가지 핵심입니다. 모든 엔터프라이즈에서 다양한 사용 패턴으로 인해 시간이 지남에 따라 클러스터 부하가 변형되어 클러스터가 과소 프로비저닝(성능 저하) 또는 과잉 프로비전(유휴 리소스로 인한 불필요한 비용)으로 이어질 수 있습니다.
AKS의 HDInsight에서 제공되는 자동 크기 조정 기능은 클러스터의 작업자 노드 수를 자동으로 늘리거나 줄일 수 있습니다. 자동 크기 조정은 고객이 사용하는 클러스터 메트릭 및 크기 조정 정책을 사용합니다.
이 기능은 미션 크리티컬 워크로드에 적합합니다.
- 가변 또는 예측할 수 없는 트래픽 패턴 및 고성능 및 규모에 대한 SLA 필요 또는
- 클러스터에서 작업을 성공적으로 실행하는 데 필요한 작업자 노드를 사용할 수 있도록 미리 결정된 일정입니다.
HDInsight를 사용하여 AKS 클러스터에서 자동 크기 조정을 통해 클러스터를 비용 효율적이고 Azure에서 탄력적으로 만듭니다.
자동 크기 조정을 사용하면 고객은 워크로드에 영향을 주지 않고 클러스터를 축소할 수 있습니다. 정상적인 서비스 해제 및 냉각 기간과 같은 고급 기능으로 사용하도록 설정됩니다. 이러한 기능을 통해 사용자는 클러스터의 현재 부하에 따라 노드 추가 및 제거에 대해 정보에 입각한 선택을 할 수 있습니다.
작동 방식
이 기능은 클러스터 메트릭 또는 확장 및 규모 축소 작업의 정의된 일정에 따라 미리 설정된 제한 내의 노드 수를 조정하여 작동합니다. 자동 크기 조정 이벤트를 트리거하는 조건 유형에는 다양한 클러스터 성능 메트릭에 대한 임계값 기반 트리거(부하 기반 크기 조정이라고 함) 및 시간 기반 트리거(일정 기반 크기 조정이라고 함)의 두 가지 유형이 있습니다.
부하 기반 크기 조정은 최적의 CPU 사용량을 보장하고 실행 비용을 최소화하기 위해 설정한 범위 내에서 클러스터의 노드 수를 변경합니다.
일정 기반 크기 조정은 스케일 업 및 스케일 다운 작업의 일정에 따라 클러스터의 노드 수를 변경합니다.
메모
자동 크기 조정은 기존 클러스터의 SKU 유형 변경을 지원하지 않습니다.
클러스터 호환성
다음 표에서는 자동 크기 조정 기능과 호환되는 클러스터 유형과 사용 가능하거나 계획된 항목에 대해 설명합니다.
업무량 | 부하 기반 | 일정 기반 |
---|---|---|
플링크 (Flink) | 계획 | 예 |
트리노 () | 예** | 예** |
스파크 | 예** | 예** |
**원활한 서비스 해제는 구성할 수 있습니다.
크기 조정 방법
일정 기반 크기 조정:
부하 기반 크기 조정:
부하 기반 크기 조정 조건
다음 조건이 검색되면 자동 크기 조정이 크기 조정 요청을 실행합니다.
규모 확대 | 규모 축소 |
---|---|
할당된 코어가 5분 폴링 간격(1분 확인 기간) 동안%가 80을 초과합니다. | 할당된 코어는 5분 폴링 간격(1분 확인 기간)에 대해% 20개 미만이거나 같습니다. |
스케일 업의 경우 자동 크기 조정은 필요한 수의 노드를 추가하는 확장 요청을 실행합니다. 확장은 현재 CPU 및 메모리 요구 사항을 충족하는 데 필요한 새 작업자 노드 수를 기반으로 합니다. 이 값은 설정된 작업자 노드의 최대 수로 제한됩니다.
규모 축소의 경우 자동 크기 조정은 일부 노드를 제거하라는 요청을 발급합니다. 축소 고려 사항에는 노드당 Pod 수, 현재 CPU 및 메모리 요구 사항 및 작업자 노드가 포함되며, 현재 작업 실행에 따라 제거할 후보입니다. 규모 축소 작업은 먼저 노드를 해제한 다음 클러스터에서 제거합니다.
중요하다
자동 크기 조정 규칙 엔진은 시스템 메모리를 최적화하기 위해 30분마다 이전 이벤트를 사전에 플러시합니다. 따라서 크기 조정 규칙 간격에 상한 제한인 30분이 있습니다. 크기 조정 작업의 일관되고 안정적인 트리거를 보장하려면 크기 조정 규칙 간격을 한도보다 작은 값으로 설정해야 합니다. 이 지침을 준수하면 시스템 리소스를 효과적으로 관리하면서 원활하고 효율적인 크기 조정 프로세스를 보장할 수 있습니다.
클러스터 메트릭
자동 크기 조정은 클러스터를 지속적으로 모니터링하고 부하 기반 자동 크기 조정에 대한 다음 메트릭을 수집합니다.
크기 조정을 위해 사용할 수 있는 클러스터 메트릭
메트릭 | 설명 |
---|---|
사용 가능한 코어 비율 | 클러스터의 총 코어 수와 비교하여 클러스터에서 사용할 수 있는 총 코어 수입니다. |
사용 가능한 메모리 비율 | 클러스터의 총 메모리 양과 비교하여 클러스터에서 사용할 수 있는 총 메모리(MB)입니다. |
할당된 코어 비율 | 클러스터의 총 코어 수와 비교하여 클러스터에 할당된 총 코어 수입니다. |
할당된 메모리 비율 | 클러스터의 총 메모리 양과 비교하여 클러스터에 할당된 메모리 양입니다. |
기본적으로 위의 메트릭은 300초마다 확인되며 자동 크기 조정 옵션을 사용자 지정하여 폴링 간격을 사용자 지정할 때도 구성할 수 있습니다. 자동 크기 조정은 이러한 메트릭에 따라 스케일 업 또는 스케일 다운 결정을 내립니다.
메모
기본적으로 자동 크기 조정은 Apache Spark용 YARN에 대한 기본 리소스 계산기를 사용합니다. 부하 기반 크기 조정은 Apache Spark 클러스터에 사용할 수 있습니다.
정상적인 서비스 해제
기업은 자동 크기 조정을 사용하여 페타바이트 규모를 달성하고 더 이상 필요하지 않을 때 리소스를 정상적으로 해제할 수 있는 방법이 필요합니다. 이러한 시나리오에서는 원활한 서비스 해제 기능이 유용합니다.
원활한 서비스 해제를 사용하면 자동 크기 조정이 작업자 노드의 서비스 해제를 트리거한 후에도 작업을 완료할 수 있습니다. 이 기능을 사용하면 작업이 완료될 때까지 노드를 계속 프로비전할 수 있습니다.
Trino: 작업자는 기본적으로 우아한 해체가 사용되도록 설정되어 있습니다. 코디네이터를 사용하면 종료 작업자가 클러스터에서 작업자를 제거하기 전에 구성된 시간 동안 해당 작업을 완료할 수 있습니다. 네이티브 Trino 매개 변수
shutdown.grace-period
사용하거나 Azure Portal 서비스 구성 페이지에서 시간 제한을 구성할 수 있습니다.Apache Spark: 축소하면 클러스터에서 실행 중인 모든 작업에 영향을 미치거나 중지할 수 있습니다. Azure Portal에서 정상적인 서비스 해제 설정을 사용하도록 설정하면 YARN 노드의 정상적인 서비스 해제를 통합하고 AKS 클러스터의 HDInsight에서 노드가 제거되기 전에 작업자 노드에서 진행 중인 모든 작업이 완료되도록 합니다.
냉각 기간
지속적인 강화 작업을 방지하기 위해 자동 크기 조정 엔진은 다른 확장 작업 집합을 시작하기 전에 구성 가능한 간격을 기다립니다. 기본값은 180초
메모
- 사용자 지정 크기 조정 규칙에서 규칙 트리거는 트리거 간격이 30분보다 클 수 없습니다. 자동 크기 조정 이벤트가 발생한 후 다른 크기 조정 정책을 적용하기 전에 대기할 시간입니다.
- 냉각 기간은 정책 간격보다 커야 클러스터 메트릭을 다시 설정할 수 있습니다.
시작
자동 크기 조정이 작동하려면 왼쪽 창의 IAM을 사용하여 클러스터 수준에서 MSI에 소유자 또는 기여자 권한을 할당해야 합니다.
역할 할당을 추가하는 방법에 대해 나열된 다음 그림과 단계를 참조하세요.
선택하여 역할 할당추가합니다.
- 할당 유형: 권한 있는 관리자 역할
- 역할: 소유자 또는 기여자
- 멤버: 관리 ID를 선택하고 클러스터 생성 단계에서 제공된 사용자 할당 관리 ID선택합니다.
- 역할을 할당합니다.
일정 기반 자동 크기 조정을 사용하여 클러스터 만들기
클러스터 풀이 만들어지면 원하는 워크로드(클러스터 유형)를 사용하여 새 클러스터 만들고 일반 클러스터 만들기 프로세스의 일부로 다른 단계를 완료합니다.
구성 탭에서 자동 크기 조정 토글을 사용하도록 설정합니다.
일정 기반 자동 크기 조정을 선택하십시오.
표준 시간대를 선택한 다음 + 규칙 추가 클릭합니다.
새 조건이 적용되어야 하는 요일을 선택합니다.
조건이 적용되는 시간과 클러스터의 크기를 조정해야 하는 노드 수를 편집합니다.
메모
- 자동 크기 조정이 작동하려면 클러스터 MSI에서 사용자에게 "소유자" 또는 "기여자" 역할이 있어야 합니다.
- 기본값은 클러스터를 만들 때 클러스터의 초기 크기를 정의합니다.
- 두 일정 간의 차이는 기본적으로 30분으로 설정됩니다.
- 시간 값은 24시간 형식을 따릅니다.
- 며칠에 걸쳐 24시간을 초과하는 연속 기간의 경우 일 단위로 자동 크기 조정 일정을 설정해야 하며 자동 크기 조정은 22:00~23:59, 00:00~02:00에서 02:00까지 2일 동안 23:59를 00:00(동일한 노드 수 포함)으로 가정합니다.
- 일정은 기본적으로 UTC(협정 세계시)로 설정됩니다. 사용 가능한 드롭다운에서 항상 현지 표준 시간대에 해당하는 표준 시간대로 업데이트할 수 있습니다. 일광 절약 시간을 관찰하는 표준 시간대에 있는 경우 일정이 자동으로 조정되지 않으므로 그에 따라 일정 업데이트를 관리해야 합니다.
부하 기반 자동 크기 조정을 사용하여 클러스터 만들기
클러스터 풀이 만들어지면 원하는 워크로드(클러스터 유형)를 사용하여 새 클러스터 만들고 일반 클러스터 만들기 프로세스의 일부로 다른 단계를 완료합니다.
구성 탭에서 자동 크기 조정 토글을 사용하도록 설정합니다.
부하 기반 자동 크기 조정 선택
워크로드 유형에 따라 정상적인 해체 시간 초과및 쿨 다운 기간을 추가할 수 있습니다.
최소 선택하고 최대 노드를 필요한 경우 필요에 따라 자동 크기 조정을 사용자 지정하기 크기 조정 규칙을 구성할 있습니다.
팁
- 구독에는 각 지역에 대한 용량 할당량이 있습니다. 헤드 노드의 총 코어 수와 최대 작업자 노드는 용량 할당량을 초과할 수 없습니다. 그러나 이 할당량은 소프트 한도입니다. 언제든지 지원 티켓을 만들어 쉽게 늘릴 수 있습니다.
- 총 코어 할당량 한도를 초과하면
The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores)
라는 오류 메시지가 표시됩니다. - 강화 규칙은 하나 이상의 규칙이 트리거될 때 우선적으로 적용됩니다. 클러스터 확장 규칙 중 하나만 클러스터가 과소 프로비저닝되었음을 제안하더라도, 클러스터는 확장을 시도합니다. 규모 축소가 발생하려면 강화 규칙을 트리거하지 않아야 합니다.
- 공개 미리 보기에서 AKS의 HDInsight는 클러스터에서 최대 500개의 노드를 지원합니다.
Resource Manager 템플릿을 사용하여 클러스터 만들기
일정 기반 자동 크기 조정
azure Resource Manager 템플릿을 사용하여 일정 기반 자동 크기 조정을 사용하여 AKS 클러스터에서 HDInsight를 만들 수 있습니다. clusterProfile -> autoscaleProfile 섹션에 자동 크기 조정을 추가합니다.
자동 크기 조정 노드에는 변경이 발생하는 시기를 설명하는 표준 시간대 및 일정이 있는 되풀이가 포함됩니다. 전체 Resource Manager 템플릿은 샘플 JSON을 참조하세요.
{
"autoscaleProfile": {
"enabled": true,
"autoscaleType": "ScheduleBased",
"gracefulDecommissionTimeout": 60,
"scheduleBasedConfig": {
"schedules": [
{
"days": [
"Monday",
"Tuesday",
"Wednesday"
],
"startTime": "09:00",
"endTime": "10:00",
"count": 2
},
{
"days": [
"Sunday",
"Saturday"
],
"startTime": "12:00",
"endTime": "22:00",
"count": 5
},
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"startTime": "22:00",
"endTime": "23:59",
"count": 6
},
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"startTime": "00:00",
"endTime": "05:00",
"count": 6
}
],
"timeZone": "UTC",
"defaultCount": 110
}
}
}
팁
- 크기 조정 작업 오류를 방지하려면 ARM 배포를 사용하여 충돌하지 않는 일정을 설정해야 합니다.
부하 기반 자동 크기 조정
azure Resource Manager 템플릿을 사용하여 부하 기반 자동 크기 조정을 사용하여 AKS 클러스터에서 HDInsight를 만들 수 있습니다. 클러스터Profile -> autoscaleProfile 섹션에 자동 크기 조정을 추가합니다.
자동 크기 조정 노드에 포함
- 폴링 간격, 냉각 기간,
- 정상적인 서비스 해제,
- 최소 및 최대 노드,
- 표준 임계값 규칙,
- 변경이 발생하는 시기를 설명하는 메트릭 크기 조정
전체 Resource Manager 템플릿은 다음과 같이 샘플 JSON을 참조하세요.
{
"autoscaleProfile": {
"enabled": true,
"autoscaleType": "LoadBased",
"gracefulDecommissionTimeout": 60,
"loadBasedConfig": {
"minNodes": 2,
"maxNodes": 157,
"pollInterval": 300,
"cooldownPeriod": 180,
"scalingRules": [
{
"actionType": "scaleup",
"comparisonRule": {
"threshold": 80,
"operator": " greaterThanOrEqual"
},
"evaluationCount": 1,
"scalingMetric": "allocatedCoresPercentage"
},
{
"actionType": "scaledown",
"comparisonRule": {
"threshold": 20,
"operator": " lessThanOrEqual"
},
"evaluationCount": 1,
"scalingMetric": "allocatedCoresPercentage"
}
]
}
}
}
REST API 사용
REST API를 사용하여 실행 중인 클러스터에서 자동 크기 조정을 사용하거나 사용하지 않도록 설정하려면 자동 크기 조정 엔드포인트에 대한 PATCH 요청을 수행합니다. https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTER_POOL_NAME}}/clusters/{{CLUSTER_NAME}}?api-version={{HILO_API_VERSION}}
- 요청 페이로드에서 적절한 매개 변수를 사용합니다. json 페이로드를 사용하여 자동 크기 조정을 사용하도록 설정할 수 있습니다.
- 페이로드(autoscaleProfile: null)를 사용하거나 플래그(사용, false)를 사용하여 자동 크기 조정을 사용하지 않도록 설정합니다.
- 참조하려면 위의 단계에서 언급한 JSON 샘플을 참조하세요.
실행 중인 클러스터에 대한 자동 크기 조정 일시 중지
자동 크기 조정에 일시 중지 기능이 도입되었습니다. 이제 Azure Portal을 사용하여 실행 중인 클러스터에서 자동 크기 조정을 일시 중지할 수 있습니다. 아래 다이어그램에서는 일시 중지를 선택하고 자동 크기 조정을 다시 시작하는 방법을 보여 줍니다.
자동 크기 조정 작업을 다시 시작하려는 경우 다시 시작할 수 있습니다.
팁
여러 일정을 구성하고 자동 크기 조정을 일시 중지하는 경우 다음 일정이 트리거되지 않습니다. 노드 수가 서비스 해제된 상태인 경우에도 노드 수는 동일하게 유지됩니다.
자동 크기 조정 구성 복사
이제 Azure Portal을 사용하여 클러스터 풀 전체에서 동일한 클러스터 셰이프에 대해 동일한 자동 크기 조정 구성을 복사할 수 있습니다. 이 기능을 사용하고 동일한 구성을 내보내거나 가져올 수 있습니다.
자동 크기 조정 작업 모니터링
클러스터 상태
Azure Portal에 나열된 클러스터 상태는 자동 크기 조정 작업을 모니터링하는 데 도움이 될 수 있습니다. 표시되는 모든 클러스터 상태 메시지는 목록에 설명되어 있습니다.
클러스터 상태 | 묘사 |
---|---|
성공 | 클러스터가 정상적으로 작동합니다. 이전의 모든 자동 크기 조정 작업이 성공적으로 완료되었습니다. |
허용 | 클러스터 작업(예: 강화)이 수락되어 작업이 완료될 때까지 기다립니다. |
실패 | 즉, 어떤 이유로 인해 현재 작업이 실패했으며 클러스터가 작동하지 않을 수 있습니다. |
취소 | 현재 작업이 취소되었습니다. |
클러스터 상태를 보여 주는
클러스터의 현재 노드 수를 보려면 클러스터의 개요 페이지에서 클러스터 크기 차트로 이동합니다.
작업 기록
클러스터 확장 및 축소 기록을 클러스터 메트릭의 일부로 볼 수 있습니다. 지난 날, 주 또는 기타 기간 동안의 모든 크기 조정 작업을 나열할 수도 있습니다.
추가 리소스