共用方式為


獨立 Windows 叢集的組態設定

本文說明如何在 ClusterConfig.json 檔案中設定獨立 Azure Service Fabric 叢集的組態設定。 您將會使用此檔案來指定叢集節點、安全性設定,以及容錯和升級網域方面之網路拓撲的相關資訊。 變更或新增組態設定之後,您可以建立獨立叢集升級獨立叢集的組態

當您下載獨立的 Service Fabric 套件時,ClusterConfig.json 範例也會包含在內。 名稱中包含 "DevCluster" 的範例,會使用邏輯節點,建立三個節點皆位於相同電腦上的叢集。 在這三個節點中,至少必須將一個節點標示為主要節點。 此類型的叢集可用於開發或測試環境。 但不支援做為生產叢集。 名稱中包含 "MultiMachine" 的範例,能協助建立生產等級的叢集,其中每個節點都會位於不同的電腦上。 這些叢集的主要節點數目會以叢集的可靠性層級為基礎。 在 5.7 版,API 版本 05-2017 中,我們移除了可靠性層級屬性。 但是,我們的程式碼會計算叢集的最佳化可靠性層級。 請不要嘗試在 5.7 版及更新版本中設定這個屬性的值。

  • ClusterConfig.Unsecure.DevCluster.json 和 ClusterConfig.Unsecure.MultiMachine.json 分別示範如何建立不安全的測試或生產叢集。

  • ClusterConfig.Windows.DevCluster.json 和 ClusterConfig.Windows.MultiMachine.json 示範如何建立使用 Windows 安全性提供保護的測試或生產叢集。

  • ClusterConfig.X509.DevCluster.json 和 ClusterConfig.X509.MultiMachine.json 示範如何建立使用 X509 憑證型安全性提供保護的測試或生產叢集。

現在,讓我們檢視 ClusterConfig.json 檔案的各個區段。

一般叢集組態

一般叢集組態會涵蓋廣泛的叢集特有組態,如下列 JSON 程式碼片段所示:

    "name": "SampleCluster",
    "clusterConfigurationVersion": "1.0.0",
    "apiVersion": "01-2017",

若要為 Service Fabric 叢集提供任何易記名稱,您可以將它指派給 name 變數。 ClusterConfigurationVersion 是叢集的版本號碼。 請在每次升級 Service Fabric 叢集時上調此號碼。 讓 apiVersion 繼續設定為預設值。

叢集上的節點

您可以使用 nodes 區段,在 Service Fabric 叢集上設定節點,如下列程式碼片段所示:

"nodes": [{
    "nodeName": "vm0",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType0",
    "faultDomain": "fd:/dc1/r0",
    "upgradeDomain": "UD0"
}, {
    "nodeName": "vm1",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType1",
    "faultDomain": "fd:/dc1/r1",
    "upgradeDomain": "UD1"
}, {
    "nodeName": "vm2",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType2",
    "faultDomain": "fd:/dc1/r2",
    "upgradeDomain": "UD2"
}],

Service Fabric 叢集至少必須包含 3 個節點。 您可以根據您的設定,在此區段中新增更多節點。 下表說明每個節點的組態設定:

節點組態 說明
nodeName 您可以為節點提供易記名稱。
iPAddress 開啟命令視窗並輸入 ipconfig,以找出節點的 IP 位址。 記下 IPV4 位址,並將它指派給 iPAddress 變數。
nodeTypeRef 每個節點都可以指派不同的節點類型。 節點類型會於下一節中定義。
faultDomain 容錯網域可讓叢集管理員定義實體節點,這類節點可能會在相同時間因為共用實體的相依性 (例如電源和網路來源) 而發生錯誤。
upgradeDomain 升級網域說明大約會在相同時間關閉以進行 Service Fabric 升級的節點集。 因為它們不會受到任何實體需求所限制,您可以選擇要將哪些節點指派給哪些升級網域。

叢集屬性

ClusterConfig.json 中的 [屬性] 區段是用來設定叢集,如下所示:

可靠性

reliabilityLevel 的概念會定義可以在叢集主要節點上執行之 Service Fabric 系統服務的複本或執行個體數目。 它會決定這些服務以及叢集的可靠性。 其值會由系統在建立和升級叢集時計算。

診斷

在 diagnosticsStore 區段中,您可以設定參數,以啟用診斷以及疑難排解節點或叢集的失敗,如下列程式碼片段所示:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "FileShare",
    "IsEncrypted": "false",
    "connectionstring": "c:\\ProgramData\\SF\\DiagnosticsStore"
}

metadata 是叢集診斷的說明,而且可根據您的設定來進行設定。 這些變數有助於收集 ETW 追蹤記錄、損毀傾印,以及效能計數器。 如需 ETW 追蹤記錄的詳細資訊,請參閱 TracelogETW 追蹤。 包含損毀傾印效能計數器的所有記錄可導向至電腦上的 connectionString 資料夾。 您也可以使用 AzureStorage 來儲存診斷。 請參閱下列程式碼片段範例:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "AzureStorage",
    "IsEncrypted": "false",
    "connectionstring": "xstore:DefaultEndpointsProtocol=https;AccountName=[AzureAccountName];AccountKey=[AzureAccountKey]"
}

安全性

security 區段對於安全獨立的 Service Fabric 叢集是必要的項目。 下列程式碼片段示範此區段的一部分:

"security": {
    "metadata": "This cluster is secured using X509 certificates.",
    "ClusterCredentialType": "X509",
    "ServerCredentialType": "X509",
    . . .
}

metadata 是安全叢集的說明,而且可根據您的設定來進行設定。 ClusterCredentialType 和 ServerCredentialType 決定叢集和節點會實作的安全性類型。 可設定為 X509 代表憑證式安全性,或設定為 Windows 代表 Active Directory 型安全性。 其餘的 security 區段則是根據安全性類型。 如需如何填滿其餘 security 區段的相關資訊,請參閱獨立叢集中的憑證式安全性獨立叢集中的 Windows 安全性

節點類型

nodeTypes 區段說明叢集所擁有的節點類型。 至少必須針對叢集指定一個節點類型,如下列程式碼片段所示:

"nodeTypes": [{
    "name": "NodeType0",
    "clientConnectionEndpointPort": "19000",
    "clusterConnectionEndpointPort": "19001",
    "leaseDriverEndpointPort": "19002",
    "serviceConnectionEndpointPort": "19003",
    "httpGatewayEndpointPort": "19080",
    "reverseProxyEndpointPort": "19081",
    "applicationPorts": {
        "startPort": "20575",
        "endPort": "20605"
    },
    "ephemeralPorts": {
        "startPort": "20606",
        "endPort": "20861"
    },
    "isPrimary": true
}]

name 是此特定節點類型的易記名稱。 若要建立此節點類型的節點,請將其易記名稱指派給該節點的 nodeTypeRef 變數,如先前所述。 為每個節點類型定義將會使用的連接端點。 您可以為這些連接端點選擇任意的連接埠號碼,只要它們不會與此叢集中的任何其他端點發生衝突即可。 視 reliabilityLevel 而定,多節點叢集中會有一或多個主要節點 (也就是 isPrimary 設為 true)。 如需 nodeTypes 和 reliabilityLevel 的詳細資訊,以及為了了解主要和非主要節點類型,請參閱 Service Fabric 叢集容量規劃考量

用來設定節點類型的端點

  • clientConnectionEndpointPort 是在使用用戶端 API 時,用戶端用來連線到叢集的連接埠。
  • clusterConnectionEndpointPort 是節點用來彼此通訊的連接埠。
  • leaseDriverEndpointPort 是叢集租用驅動程式用來了解節點是否仍在作用中的連接埠。
  • serviceConnectionEndpointPort 是節點上部署的應用程式和服務用來與該特定節點的 Service Fabric 用戶端通訊的連接埠。
  • httpGatewayEndpointPort 是 Service Fabric Explorer 用來連線到叢集的連接埠。
  • ephemeralPorts 會覆寫 OS 所使用的動態連接埠。 Service Fabric 會使用一部分連接埠做為應用程式連接埠,其餘連接埠則可供 OS 使用。 它也會將此範圍對應至 OS 中存在的現有範圍,因此不論用途為何,您都可以使用範例 JSON 檔案中給定的範圍。 請確保頭尾連接埠之間相差至少 255。 如果這項差異太低,您可能會遇到衝突,因為這個範圍會與 OS 共用。 若要查看所設定的動態連接埠範圍,請執行 netsh int ipv4 show dynamicport tcp
  • applicationPorts 是 Service Fabric 應用程式所使用的連接埠。 應用程式連接埠範圍應該足以涵蓋應用程式的端點需求。 此範圍應該排除於電腦上的動態連接埠範圍 (也就是在組態中設定的 ephemeralPorts 範圍) 之外。 Service Fabric 會在每當需要新連接埠時使用這些連接埠,並負責在防火牆上開啟這些連接埠。
  • reverseProxyEndpointPort 是選擇性的反向 Proxy 端點。 如需詳細資訊,請參閱 Service Fabric 反向 Proxy

記錄設定

在 fabricSettings 區段中,您可以設定 Service Fabric 資料和記錄的根目錄。 您只能在初始叢集建立期間自訂這些目錄。 請參閱此區段的下列程式碼片段範例:

"fabricSettings": [{
    "name": "Setup",
    "parameters": [{
        "name": "FabricDataRoot",
        "value": "C:\\ProgramData\\SF"
    }, {
        "name": "FabricLogRoot",
        "value": "C:\\ProgramData\\SF\\Log"
}]

建議您使用非作業系統磁碟機做為 FabricDataRoot 和 FabricLogRoot。 這類磁碟機比較不會讓作業系統停止回應。 如果您只自訂資料根目錄,則記錄根目錄會以資料根目錄的下一個層級來取代。

具狀態可靠服務設定

在 KtlLogger 區段中,您可以設定 Reliable Services 的全域組態設定。 如需這些設定的詳細資訊,請參閱設定具狀態可靠服務。 下列範例示範如何變更所建立的共用交易記錄,以備份具狀態服務的任何可靠集合:

"fabricSettings": [{
    "name": "KtlLogger",
    "parameters": [{
        "name": "SharedLogSizeInMB",
        "value": "4096"
    }]
}]

附加元件功能

若要設定附加功能,請將 apiVersion 設定為 04-2017 或更高版本,並將 addonFeatures 設定如下:

"apiVersion": "04-2017",
"properties": {
    "addOnFeatures": [
        "DnsService",
        "RepairManager"
    ]
}

您可以在 Service Fabric REST API 參考中看到所有可用的附加元件功能。

容器支援

若要啟用獨立叢集的 Windows Server 容器和 Hyper-V 容器的容器支援,必須啟用 DnsService 附加功能。

下一步

在您根據獨立叢集設定,設定好完整的 ClusterConfig.json 檔案後,您就可以部署叢集。 請遵循建立獨立 Service Fabric 叢集中的步驟來進行。

如果您已部署獨立叢集,您也可以升級獨立叢集的組態

了解如何使用 Service Fabric 總管視覺化叢集