AKS 叢集上的自動擴展 HDInsight
重要
AKS 上的 Azure HDInsight 於 2025 年 1 月 31 日淘汰。 透過此公告 深入瞭解。
您必須將工作負載移轉至 Microsoft Fabric 或對等 Azure 產品,以避免突然終止工作負載。
重要
這項功能目前為預覽狀態。 Microsoft Azure 預覽版的補充使用規定 包含適用於 Beta 版、預覽版或尚未正式發行之 Azure 功能的更合法條款。 如需此特定預覽的相關資訊,請參閱 Azure HDInsight on AKS 預覽資訊。 如有問題或功能建議,請在 AskHDInsight 提交請求,並關注我們以獲取 Azure HDInsight 社群的更多更新。
確定任何叢集的大小以滿足工作效能需求並提前控制成本,總是很棘手且難以判定。 透過雲端建置 Data Lake House 的其中一個利潤豐厚的優點是其彈性,這表示使用自動調整功能將手邊的資源使用率最大化。 使用 Kubernetes 自動調整是建立成本優化生態系統的關鍵之一。 在任何企業中都有不同的使用模式時,叢集負載可能會隨著時間而變化,導致叢集布建不足(效能不佳)或過度布建(因為閑置資源造成的不必要的成本)。
AKS 上的 HDInsight 所提供的自動調整功能可以自動增加或減少叢集中的工作節點數目。 自動調整會使用客戶的叢集計量和調整原則。
這項功能非常適合任務關鍵性工作負載,這些工作負載可能具有
- 變動或無法預測的流量模式,需要在高效能和規模上具 SLA 的要求
- 所需的工作節點的預定排程,以便能夠在叢集中成功執行作業。
使用 HDInsight 的自動調整功能可使 AKS 叢集在 Azure 上更具成本效益和彈性。
透過自動調整規模,客戶可以減少叢集,而不會影響工作負載。 其已啟用進階功能,例如優雅退役和緩衝期。 這些功能可讓使用者根據叢集目前的負載,對新增和移除節點做出明智的選擇。
運作方式
這項功能的運作方式是根據叢集計量或已定義的相應增加和相應減少作業排程,調整預設限制內的節點數目。 觸發自動調整事件的條件有兩種類型:各種叢集效能計量的閾值型觸發程式(稱為負載型調整)和以時間為基礎的觸發程式(稱為以排程為基礎的調整)。
以負載為基礎的調整會變更叢集中的節點數目,在您設定的範圍內,以確保最佳的CPU使用量,並將執行成本降至最低。
排程型調整會根據擴展和縮減作業的排程,變更叢集中的節點數目。
注意
自動調整不支援變更現有叢集的 SKU 類型。
叢集相容性
下表描述與自動調整功能相容的叢集類型,以及其可用性或計畫中的狀態。
工作量 | 根據載荷 | 以排程為基礎 |
---|---|---|
Flink | 已計劃 | 是的 |
Trino | 是的** | 是的** |
火花 | 是的** | 是的** |
**可設定正常解除委任。
縮放方法
以排程為基礎的調整:
基於負載的比例:
根據負載的比例條件
偵測到下列條件時,自動調整功能會發出調整要求
擴大規模 | 縮小規模 |
---|---|
5 分鐘輪詢間隔內,分配的核心數目大於 80%(檢查期間為 1 分鐘) | 分配的核心小於或等於 20%,在 5 分鐘的輪詢間隔(1 分鐘檢查期間)內。 |
自動擴展會發出擴展請求,以新增所需的節點數量。 擴展是根據滿足目前 CPU 和記憶體需求所需的新增工作節點數量為基礎。 此值的上限為設定的工作節點數目上限。
針對縮減,自動縮放會發出移除某些節點的要求。 相應減少的考慮事項包括每個節點的 Pod 數目、目前的 CPU 和記憶體需求,以及工作節點,這些工作節點是在考慮目前作業執行後被列為移除候選的對象。 縮減操作會先除役節點,然後將它們從叢集中移除。
重要
自動調整規則引擎會每隔 30 分鐘 30 分鐘主動排清舊事件,以將系統記憶體優化。 因此,縮放規則的間隔有一個 30 分鐘的上限限制。 為了確保調整動作的一致且可靠觸發,您必須將調整規則間隔設定為小於限制的值。 藉由遵守此指導方針,您可以保證順暢且有效率的調整程序,同時有效地管理系統資源。
叢集計量
自動調整會持續監控叢集,並收集下列指標以供基於負載的自動調整功能使用:
可用於擴展目的的叢集指標
度量 | 描述 |
---|---|
可用的核心百分比 | 可用的核心總數相較於叢集中的核心總總數。 |
可用的記憶體百分比 | 叢集中可用的記憶體總量(以 MB 為單位)與叢集中的記憶體總量相比。 |
已分配的核心百分比 | 叢集中配置的核心總數與叢集的核心總數相比較。 |
配置的記憶體百分比 | 與叢集記憶體總量相比,分配在叢集中的記憶體量。 |
根據預設,每 300 秒都會檢查上述指標,當您使用自定義自動調整選項設定輪詢間隔時,亦可調整。 自動調整會根據這些指標做出擴展或縮減的決策。
注意
預設情況下,自動調整功能會針對 Apache Spark 的 YARN 使用預設資源計算器。 負載型調整適用於 Apache Spark 叢集。
優雅退役
企業需要透過自動調整達到 PB 規模的方式,並在不再需要資源時正常解除委任資源。 在這種情況下,優雅停用功能派上用場。
優雅解除委任可讓作業在自動調整觸發解除委任工作節點後繼續完成。 此功能可讓節點繼續布建,直到作業完成為止。
Trino:根據預設,工人已啟用「優雅停用」。 協調器允許即將終止的工作者在從叢集中被移除之前,按照設定好的時間完成其任務。 您可以使用原生 Trino 參數
shutdown.grace-period
或在 Azure 入口網站服務組態頁面上設定逾時。Apache Spark:縮減規模可能會影響或停止叢集中任何正在執行的作業。 如果您在 Azure 入口網站上啟用 Graceful 解除委任設定,它會包含 YARN 節點的 Graceful 解除委任,並確保在工作節點上的所有工作完成後,才能從 AKS 叢集上的 HDInsight 中移除該節點。
冷卻期間
為了避免持續相應增加作業,自動調整引擎會先等候可設定的間隔,再起始另一組相應增加作業。 預設值設定為 180 秒
注意
- 在自定義縮放規則中,沒有任何觸發條件可以有大於 30 分鐘的觸發間隔。 發生自動調整事件之後,在採取另一個調整原則之前等待的時間長度。
- 冷卻期間應該大於原則間隔,因此叢集計量可以重設。
開始
若要讓自動調整運作,您必須使用左窗格中的 IAM,將 擁有者 或 參與者 許可權指派給叢集層級的 MSI(在叢集建立期間使用)。
請參閱下列圖例和如何新增角色指派的步驟
選取 新增角色指派,
- 指派類型:特殊許可權系統管理員角色
- 角色:擁有者 或 參與者
- 成員:選擇 [受控識別],然後選取在叢集建立階段提供 使用者指派的受控識別。
- 指派角色。
建立具有排程型自動調整的叢集
建立叢集集區之後,請使用所需的工作負載在叢集類型上建立 新的叢集,並在標準的叢集建立流程中完成其他步驟。
在 [組態] 索引標籤上,啟用 自動調整切換開關。
根據 排程選取 自動調整
選取您的時區,然後按兩下 [+ 新增規則
選取新條件應套用的星期幾。
編輯條件生效的時間,以及叢集應調整為的節點數目。
注意
- 用戶應該在叢集的 MSI 上具有「擁有者」或「參與者」角色,才能使自動調整生效。
- 預設值會在建立叢集時定義叢集的初始大小。
- 兩個排程之間的差異預設為30分鐘。
- 時間值會遵循 24 小時格式
- 如果連續的時段跨越多天並超過 24 小時,您需要將自動縮放排程設置為多天,自動縮放會將 23:59 假設為 00:00(節點數相同),時間段從 22:00 到 02:00,橫跨從第一天的 22:00 到 23:59,至第二天的 00:00 到 02: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,透過在 clusterProfile -> 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 入口網站,您可以在執行中的叢集上暫停自動調整。 下圖說明如何選擇暫停和恢復自動調整
當您準備好再次開始自動調整操作時,即可恢復。
提示
當您設定多個排程並暫停自動調整時,它不會觸發下一個排程。 即使節點處於已解除委任狀態,節點計數仍維持不變。
複製自動調整配置
使用 Azure 入口網站,您現在可以在叢集池中為相同的叢集形狀複製相同的自動調整設定,並且可以匯出或匯入相同的設定。
監視自動縮放活動
叢集狀態
Azure 入口網站中列出的叢集狀態可協助您監視自動調整活動。 您可能會看到的所有叢集狀態消息都會在清單中說明。
叢集狀態 | 描述 |
---|---|
成功 | 叢集正常運作。 所有先前的自動調整活動都已順利完成。 |
接受 | 接受叢集操作(例如:擴容),正在等待作業完成。 |
失敗 | 這表示目前的作業因為某些原因而失敗,叢集可能無法運作。 |
取消 | 目前的作業已取消。 |
若要檢視叢集中目前的節點數目,請移至叢集 概觀 頁面上 叢集大小 圖表。
作業歷程記錄
您可以作為叢集計量的一部分來查看叢集的擴展和縮減歷史記錄。 您也可以列出過去一天、一周或其他期間的所有調整動作。
其他資源