部署具有無狀態節點類型的 Service Fabric 受控叢集
Service Fabric 節點類型採用既有的假設,這些節點可能會在某個時間點放置具狀態服務。 無狀態節點類型則會變更節點類型的這項假設。 這可讓節點類型受益於更快速的擴增作業、支援自動 OS 升級、現成 VM,以及在節點類型中擴增至超過 100 個節點等功能。
- 主要節點類型無法設定為無狀態。
- 無狀態節點類型需要 2021-05-01 或更新 API 版本。
- 這會自動將 multipleplacementgroup 屬性設為 true,您可於此處深入瞭解。 啟用此屬性的基礎 虛擬機擴展集需求和限制 適用於 Service Fabric 受控叢集。
- 這可支援指定節點類型最多1,000個節點。
- 無狀態節點類型可以利用 VM SKU 暫存磁碟。
在 Service Fabric 受控叢集中啟用無狀態節點類型
若要在節點類型資源中將一或多個節點類型設為無狀態,請將 isStateless 屬性設為 true。 部署具有無狀態節點類型的 Service Fabric 叢集時,安裝程式至少需要一個在叢集中沒有狀態的主要節點類型。
可用的範例範本:Service Fabric 無狀態節點類型範本
- Service Fabric 受控叢集資源 apiVersion 應為 2021-05-01 或更新版本。
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
}
}
使用 Service Fabric 受控叢集中的現成 VM 啟用無狀態節點類型
擴展集上的 Azure Spot Virtual Machines 可讓使用者以大幅降低的成本,使用未運用的計算容量。 每當 Azure 需要容量回來時,Azure 基礎結構就會收回這些 Azure Spot 虛擬機實例。 因此,現成 VM 節點類型非常適合可應付中斷,且不需在特定時間範圍內完成的工作負載。 建議的工作負載包括開發、測試、批次處理作業、巨量資料或其他大規模無狀態情節。
若要將一或多個無狀態節點類型設定為使用現成 VM,請將 isStateless 和 IsSpotVM 屬性設定為 true。 使用無狀態節點類型部署 Service Fabric 叢集時,至少必須有一個主要節點類型,這在叢集中不是無狀態。 設定為使用現成 VM 的無狀態節點類型,已將收回原則預設為 'Delete'。 客戶可將 'evictionPolicy' 設定為 'Delete' 或 'Deallocate',但這只能在 nodetype 建立時定義。
可用的範例範本:Service Fabric 現成節點類型範本
- Service Fabric 受控叢集資源 apiVersion 應為 2022-06-01-preview 或更新版本。
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"IsSpotVM": true,
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
}
}
使用嘗試還原啟用現成 VM
此設定可讓平台自動嘗試還原已收回的現成 VM。 如需詳細資料,請參閱虛擬機器擴展集文件。 此設定只能在新的 Spot 節點類型上啟用,方法是指定 spotRestoreTimeout,這是 ISO 8601 時間持續時間,其值為 30 到 2880 分鐘。 在收回之後,平台會嘗試在此持續期間內還原 VM。
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"IsSpotVM": true,
"evictionPolicy": "deallocate",
"spotRestoreTimeout": "PT30M",
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
}
}
為區域復原設定無狀態節點類型
若要設定區域復原的無狀態節點類型,您必須 在叢集層級設定跨越 的受控叢集區域。
注意
必須在叢集層級設定區域復原屬性,且此屬性無法適當變更。
暫存磁碟支援
無狀態節點類型可以設定為使用暫存磁碟當作資料磁碟,而不是受控磁碟。 使用暫存磁碟可降低無狀態工作負載的成本。 若要將無狀態節點類型設定為使用暫存磁碟,請將 useTempDataDisk 屬性設定為 true。
- 暫存磁碟大小必須是 32 GB 以上。 暫存磁碟的大小取決於 VM 大小。
- 除非您在主機啟用加密,否則暫存磁碟不會由伺服器端加密加密。
- Service Fabric 受控叢集資源 apiVersion 應為 2022-01-01 或更新版本。
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isStateless": true,
"isPrimary": false,
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeTypeSize')]",
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
"useTempDataDisk": true
}
}
移轉時在叢集中使用無狀態節點類型
所有移轉案例皆必須新增無狀態節點類型。 現有的節點類型無法移轉為無狀態。 您可將新的無狀態節點類型新增至現有的 Service Fabric 受控叢集,並移除叢集中的任何原始節點類型。
下一步
若要深入了解 Service Fabric 受控叢集,請參閱: