共用方式為


Service Fabric 受控叢集節點類型

虛擬機器擴展集支援 Service Fabric 受控叢集中的每個節點類型。 使用受控叢集,您可以透過 Service Fabric 受控叢集資源提供者進行任何必要的變更。 受控叢集提供者會代表您建立並抽象化叢集的所有基礎資源。 讓資源提供者管理資源,有助於簡化叢集節點類型的部署和管理。 管理可防止作業錯誤,例如刪除種子節點,並協助套用最佳做法,例如驗證虛擬機器 (VM) SKU 是否可安全使用。

本文件的其餘部分涵蓋如何調整各種設定,包括:

  • 建立節點類型
  • 調整節點類型執行個體計數
  • 啟用自動 OS 映像升級
  • 變更 OS 映像
  • 設定放置屬性
  • 設定電腦名稱前置詞

本文件著重於使用 Azure 入口網站和 Azure Resource Manager 範本進行變更。

重要

目前 Service Fabric 受控叢集不支援自訂 OS 映像。

注意

進行變更時,您將無法修改節點類型。 建議先讓所有要求的變更完成後,再執行其他變更。

新增節點類型

您可以透過入口網站、Azure Resource Manager 範本 或 PowerShell,將節點類型新增至 Service Fabric 受控叢集。

使用入口網站進行新增

注意

您只能使用入口網站新增次要節點類型

  1. 登入 Azure 入口網站

  2. 瀏覽至您的叢集資源概觀頁面。 範例概觀頁面

  3. Settings 區段 節點類型檢視 底下,選取 Node types

  4. 選取頂端的 Add填入必要資訊,然後選取底部的 [新增],這樣就可以了!

  5. 等候新增節點類型完成

使用 ARM 範本進行新增

新增另一個具有必要值的資源類型 Microsoft.ServiceFabric/managedclusters/nodetypes,並執行叢集部署,讓設定生效。

  • Service Fabric 受控叢集資源 apiVersion 應為 2021-05-01 或更高版本。
  • 如果您打算取代現有的主要節點類型,請務必將 isPrimary 設定為 true
{
    "apiVersion": "[variables('sfApiVersion')]",
    "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('nodeType2Name'))]",
    "location": "[resourcegroup().location]",
    "dependsOn": [
        "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
    ],
    "properties": {
        "isPrimary": false,
        "vmImagePublisher": "[parameters('vmImagePublisher')]",
        "vmImageOffer": "[parameters('vmImageOffer')]",
        "vmImageSku": "[parameters('vmImageSku')]",
        "vmImageVersion": "[parameters('vmImageVersion')]",
        "vmSize": "[parameters('nodeType2VmSize')]",
        "vmInstanceCount": "[parameters('nodeType2VmInstanceCount')]",
        "dataDiskSizeGB": "[parameters('nodeType2DataDiskSizeGB')]",
        "dataDiskType": "[parameters('nodeType2managedDataDiskType')]"
    }
}

如需雙節點類型設定範例,請參閱我們的雙節點類型 ARM 範本範例

透過 PowerShell 新增

若要建立新的節點類型,您必須定義下列屬性:

  • 資源群組:叢集所在的資源群組
  • 叢集名稱:受控叢集的名稱
  • 節點類型名稱:叢集中任何現有節點類型唯一的名稱。
  • 執行個體計數:新節點類型的初始節點數目。
  • VM 大小:節點的 VM SKU。 若未指定,就會使用「Standard_D2」的預設值。

注意

如果新增主要節點類型,則必須使用 -Primary 屬性。

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "nt2"
$vmSize = "Standard_D2_v2"

New-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -Name $nodeTypeName -InstanceCount 3 -vmSize $vmSize

移除節點類型

您可以使用入口網站或 PowerShell,來移除 Service Fabric 受控叢集節點類型。

注意

若要從 Service Fabric 受控叢集中移除主要節點類型,您必須使用 PowerShell,且必須有多個主要節點類型可用。

使用入口網站進行移除

  1. 登入 Azure 入口網站

  2. 瀏覽至您的叢集資源概觀頁面。 範例概觀頁面

  3. Settings 區段 節點類型檢視 底下,選取 Node types

  4. 選取您要移除的 Node Type,然後選取頂端的 Delete

使用 PowerShell 進行移除

注意

如果要對升級 SKU 之類的案例移除主要節點類型,則需要數小時,而且可以使用 SFX 來監視進度。 種子節點會對每個升級網域 (UD) 一次移轉一個節點。

若要移除節點類型,您必須定義下列屬性:

  • 資源群組:叢集所在的資源群組
  • 叢集名稱:受控叢集的名稱
  • 節點類型名稱:叢集中任何現有節點類型唯一的名稱。
$resourceGroup = "myResourceGroup"
$clusterName = "myCluster"
$nodeTypeName = "nt2"

Remove-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName  -Name $nodeTypeName

調整節點集區

您可以使用入口網站、ARM 範本或 PowerShell,來調整 Service Fabric 受控叢集節點類型。 如果想要使用完全自動化的解決方案,您也可以設定次要節點類型的自動調整

注意

  • 主要節點類型無法設定為自動調整,而且您只能將其設定為手動調整。
  • 若為主要節點類型,您的基本 SKU 叢集將無法低於 3 個節點,而標準 SKU 叢集無法低於 5 個節點。

使用入口網站進行調整

在本逐步解說中,您將了解如何使用入口網站,來修改節點類型的節點計數。

  1. 登入 Azure 入口網站

  2. 瀏覽至您的叢集資源概觀頁面。 範例概觀頁面

  3. Settings 區段底下,選取 Node Types

  4. 選取您要修改的 Node type name

  5. 視需要檢閱和更新節點類型屬性。

顯示節點計數增加的範例

  1. 選取 Manage node type scaling 以設定調整設定,並選擇自訂自動調整或手動調整選項。 自動調整為內建功能,可協助應用程式在需求變更時發揮最佳效果。 您可選擇將資源手動調整為特定執行個體計數,或透過根據計量閾值調整的自訂自動調整原則。 您也可以排程在指定的時間範圍內調整的執行個體計數。 深入了解 Azure 自動調整檢視操作說明影片

    • 自訂自動調整:選取適當的 scale mode 來定義自訂自動調整原則 - Scale to a specific instance countScale based on a metric。 後者是以計量觸發程式規則為基礎,例如,當 CPU 百分比高於 70% 時,將執行個體計數增加 1。 定義原則之後,請選取頂端的 Save

      顯示自動調整設定的範例

    • 手動調整:將 Node count 調整為您想要的新值,然後選取頂端的 Save。 在這個螢幕擷取畫面中,值是 3,並已調整為 5

      顯示手動調整設定的範例

    選取底部的 Apply 以設定節點類型上這些已儲存的設定。

  2. Provisioning state 會顯示 Updating 狀態,直到完成為止。 完成時,它會再次顯示 Succeeded顯示節點類型更新的範例

使用範本調整節點類型

若要使用 ARM 範本來調整節點類型的節點計數,請使用新值調整 vmInstanceCount 屬性,然後進行叢集部署,讓設定生效。 叢集會自動開始升級。 完成時,您會看到其他節點。

  • Service Fabric 受控叢集資源 apiVersion 應為 2021-05-01 或更新版本。

注意

受控叢集提供者會封鎖規模調整,並在調整要求違反所需的下限時傳回錯誤。

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    ...
  }
}

使用 PowerShell 調整節點類型

變更執行個體計數以增加或減少您想要調整節點類型上的節點數目。 您可以從叢集部署或在 Service Fabric Explorer 中,尋找 Azure Resource Manager 範本 (ARM 範本) 中的節點類型名稱。

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "FE"
$instanceCount = "7"

Set-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -name $nodeTypeName -InstanceCount $instanceCount -Verbose

叢集會自動開始升級。 完成時,您會看到其他節點。

啟用自動 OS 映像升級

您可以選擇對執行受控叢集節點的虛擬機器啟用自動 OS 映像升級。 雖然系統使用 Service Fabric 受控叢集,代表您管理虛擬機器擴展集資源,但您可以選擇針對叢集節點啟用自動 OS 映像升級。 如同傳統 Service Fabric 叢集一樣,受控叢集節點預設不會升級,以防止您的叢集發生意外中斷。

注意

Marketplace 和自定義映像都支持自動 OS 映像升級。

若要啟用自動 OS 升級:

  • 使用版本 2021-05-01 或後續版本的 Microsoft.ServiceFabric/managedclustersMicrosoft.ServiceFabric/managedclusters/nodetypes 資源
  • 將叢集的屬性 enableAutoOSUpgrade 設定為 true
  • 將叢集 nodeType 的資源屬性 vmImageVersion 設定為 latest

例如:

    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters",
      ...
      "properties": {
        ...
        "enableAutoOSUpgrade": true
      },
    },
    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       ...
      "properties": {
        ...
        "vmImageVersion": "latest",
        ...
      }
    }
}

一旦啟用,Service Fabric 就會開始查詢並追蹤受控叢集中的 OS 映像版本。 如果有新的 OS 版本可用,則會一次升級一個叢集節點類型 (虛擬機器擴展集)。 只在確認沒有任何叢集節點 OS 映像升級進行中之後,才會執行 Service Fabric 執行階段升級。

如果升級失敗,Service Fabric 會在 24 小時後重試,最多重試三次。 類似於傳統 (非受控) Service Fabric 升級、狀況不良的應用程式或節點可能會封鎖 OS 映像升級。

如需映像升級的詳細資訊,請參閱使用 Azure 虛擬機器擴展集進行自動 OS 映像升級

修改節點類型的 OS SKU

Service Fabric 受控叢集可讓您就地修改節點類型的 OS SKU。 此程序有助於從 Windows 2019 移轉至 Windows 2022 之類的案例,或如果您想要切換至 Server (Core) SKU 與具有桌面體驗 SKU 的伺服器的話。

使用入口網站修改 OS SKU

在本逐步解說中,您將了解如何使用入口網站,來修改節點類型的 OS 映像。

  1. 登入 Azure 入口網站

  2. 瀏覽至您的叢集資源概觀頁面。 範例概觀頁面

  3. Settings 區段底下,選取 Node Types

  4. 選取您要修改的 Node type name

  5. OS Image 調整為您想要的新值,然後選取底部的 Apply。 ![顯示變更 OS 映像的範例][change-os-image]

  6. Provisioning state 會顯示 Updating 狀態,並一次執行一個升級網域。 完成時,它會再次顯示 Succeeded顯示節點類型更新的範例

使用範本修改 OS SKU

若要使用 ARM 範本來修改節點類型的 OS 映像,請使用新值調整 vmImageSku 屬性,然後進行叢集部署,讓設定生效。 受控叢集提供者會藉由升級網域重新安裝每個執行個體的映像。

  • Service Fabric 受控叢集資源 apiVersion 應為 2021-05-01 或更高版本。
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    ...
  }
}

設定節點類型的放置屬性

放置屬性是用來確保特定工作負載只在叢集中的特定節點類型上執行。 Service Fabric 受控叢集支援透過入口網站、ARM 範本或 PowerShell 來設定這些屬性。

使用入口網站設定放置屬性

在本逐步解說中,您將了解如何使用入口網站,來修改節點類型的放置屬性。

  1. 登入 Azure 入口網站

  2. 瀏覽至您的叢集資源概觀頁面。 範例概觀頁面

  3. Settings 區段底下,選取 Node Types

  4. 選取您要修改的 Node type name

  5. 在區段 Placement properties 中,新增您想要的名稱和值,然後選取底部的 Apply。 在這個螢幕擷取畫面中,已使用 NameSSD_PremiumValuetrue顯示新增放置屬性的範例

  6. Provisioning state 會顯示 Updating 狀態,直到完成為止。 完成時,它會再次顯示 Succeeded顯示節點類型更新的範例

使用範本設定放置屬性

若要使用 ARM 範本來調整節點類型的放置屬性,請使用一或多個新值調整 placementProperties 屬性,然後進行叢集部署,讓設定生效。 下方範例顯示針對節點類型設定的三個值。

  • Service Fabric 受控叢集資源 apiVersion 應為 2021-05-01 或更高版本。
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    "placementProperties": {
      "PremiumSSD": "true",
      "NodeColor": "green",
      "SomeProperty": "5"
    }
  }
}

使用 PowerShell 設定放置屬性

下列範例會更新並覆寫給定節點類型的任何現有放置屬性。

$rgName = "testRG"
$clusterName = "testCluster"
$NodeTypeName = "nt1"
Set-AzServiceFabricManagedNodeType -ResourceGroupName $rgName -ClusterName $clusterName -name $NodeTypeName -PlacementProperty @{NodeColor="Red";SomeProperty="6";} -Verbose

修改節點類型的 VM SKU

若要使用 ARM 範本來修改用於節點類型的 VM SKU 大小,請使用新值調整 vmSize 屬性,然後進行叢集部署,讓設定生效。 受控叢集提供者會藉由升級網域重新安裝每個執行個體的映像。 如需 SKU 選項清單,請參閱 VM 大小 - Azure 虛擬機器 | Microsoft Learn

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmSize": "[parameters('vmImageVersion')]",
    ...
  }
}

設定多個受控磁碟

Service Fabric 受控叢集預設會設定一個受控磁碟。 藉由設定下列選擇性屬性和值,您可以將更多受控磁碟新增至叢集內的節點類型。 您可以指定磁碟機代號、磁碟類型,以及每個磁碟的大小。

在 Resource Manager 範本中宣告 additionalDataDisks 屬性和所需參數,以設定更多的受控磁碟,如下所示:

功能需求

  • Lun 每個磁碟必須是唯一的,且無法使用保留的 lun 0 或 1
  • 磁碟機代號不能使用保留的字母 C 或 D,而且一旦建立,就無法修改。 如果未指定,預設會使用 S。
  • 必須指定支援的磁碟類型
  • Service Fabric 受控叢集資源 apiVersion 應為 2022-01-01 或後續版本。
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    "additionalDataDisks": {
      "lun": "2",
      "diskSizeGB": "50",
      "diskType": "Standard_LRS",
      "diskLetter": "S" 
    }
  }
}

請參閱可用參數的完整清單

設定 Service Fabric 資料磁碟的磁碟機代號

Service Fabric 受控叢集預設會設定 Service Fabric 資料磁碟,並在節點類型的所有節點上自動設定磁碟機代號。 藉由設定此選擇性屬性和值,如果您有磁碟機代號對應的特殊需求,則可以指定和擷取 Service Fabric 資料磁碟代號。

功能需求

  • 磁碟機代號不能使用保留的字母 C 或 D,而且一旦建立,就無法修改。 如果未指定,預設會使用 S。
  • Service Fabric 受控叢集資源 apiVersion 應為 2022-01-01 或後續版本。
{
  {
    "apiVersion": "[variables('sfApiVersion')]",
    "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
    "location": "[resourcegroup().location]",
    "properties": {
      "dataDiskLetter": "S"
    }
  }
}

設定電腦名稱前置詞

需要較長節點類型名稱的客戶,以取得電腦名稱前置詞的更多詳細資訊描述優勢。

注意

電腦名稱前置詞僅適用於 Service Fabric API 版本 2024-04-01 or later

實作下列 ARM 樣本變更來設定電腦名稱前置詞:

{
  "apiVersion": "2024-04-01",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', 'BE-testResourceGroup-testRegion-test')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
      "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isPrimary": false,
    "dataDiskSizeGB": "[parameters('dataDiskSizeGB')]",
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('vmSize')]",
    "vmInstanceCount": "[parameters('vmInstanceCount')]",
    "computerNamePrefix": "computerNamePrefix"
  }
} 

下一步