共用方式為


網路

當您建立和管理 Azure Service Fabric 叢集時,您會為節點和應用程式提供網路連線。 這些網路資源包括 IP 位址範圍、虛擬網路、負載平衡器和網路安全性群組。 在本文中,您將了解這些資源的最佳做法。

請檢閱 Azure Service Fabric 網路功能模式,以了解如何建立使用下列功能的叢集:現有的虛擬網路或子網路、靜態公用 IP 位址、僅限內部的負載平衡器,或內部和外部負載平衡器。

基礎結構網路功能

藉由在 Resource Manager 範本中宣告 enableAcceleratedNetworking 屬性,使用加速網路將虛擬機器的效能最大化。下列程式碼片段用於啟用加速網路的虛擬機器擴展集 NetworkInterfaceConfigurations:

"networkInterfaceConfigurations": [
  {
    "name": "[concat(variables('nicName'), '-0')]",
    "properties": {
      "enableAcceleratedNetworking": true,
      "ipConfigurations": [
        {
        <snip>
        }
      ],
      "primary": true
    }
  }
]

Service Fabric 叢集可以佈建在使用加速網路的 Linux 上,以及使用加速網路的 Windows 上。

以下是可支援加速網路的 Azure 虛擬機器系列 SKU:D/DSv2、D/DSv3、E/ESv3、F/FS、FSv2 和 Ms/Mms。 加速網路已於 01/23/2019 使用 Standard_DS8_v3 SKU 針對 Service Fabric Windows 叢集成功進行測試,並於 01/29/2019 使用 Standard_DS12_v2 針對 Service Fabric Linux 叢集成功進行測試。 請注意,加速網路至少需要 4 個 vCPU。

若要在現有的 Service Fabric 叢集上啟用加速網路功能,您需要先 新增虛擬機擴展集來相應放大 Service Fabric 叢集,才能執行下列步驟:

  1. 佈建已啟用加速網路的 NodeType
  2. 將您的服務及其狀態移轉至已佈建並啟用加速網路的 NodeType

要將基礎結構相應放大,必須在現有的叢集上啟用加速網路,因為要就地啟用加速網路,必須將可用性設定組中的所有虛擬機器全部停止和解除配置,才能在任何現有的 NIC 上啟用加速網路,因此會導致停機時間。

叢集網路功能

  • Service Fabric 叢集可依照 Service Fabric 網路功能模式中說明的步驟部署到現有的虛擬網路中。

  • 若要限制叢集的輸入和輸出流量的節點類型,建議使用網路安全性群組 (NSG)。 請確實在 NSG 中開啟必要的連接埠。

  • 包含 Service Fabric 系統服務的主要節點類型不需要透過外部負載平衡器公開,而且可由內部負載平衡器公開

  • 為您的叢集建立靜態公用 IP 位址

網路安全性規則

接下來所述的規則是一般設定的建議最小值。 如果不需要選擇性規則,我們也包含操作叢集的必要規則。 可讓您透過網路對等互連和 Jumpbox 的概念 (例如 Azure Bastion) 來提供完整的安全性鎖定。 無法開啟強制埠或核准 IP/URL 將防止叢集正常運作,且可能不受支援。

傳入

優先順序 名稱 連接埠 通訊協定 來源 Destination 動作 必要
3900 Azure 入口網站 19080 TCP ServiceFabric 任意 允許 Yes
3910 用戶端 API 19000 TCP 網際網路 任意 允許 No
3920 SFX + 用戶端 API 19080 TCP 網際網路 任意 允許 No
3930 Cluster 1025-1027 TCP VirtualNetwork 任意 允許 Yes
3940 暫時性 49152-65534 TCP VirtualNetwork 任意 允許 Yes
3950 申請 20000-30000 TCP VirtualNetwork 任意 允許 Yes
3960 RDP 3389 TCP 網際網路 任意 拒絕 No
3970 SSH 22 TCP 網際網路 任意 拒絕 No
3980 自訂端點 443 TCP 網際網路 任意 拒絕 No

輸入安全性規則的詳細資訊:

  • Azure 入口網站。 Service Fabric 資源提供者會使用此連接埠來查詢您叢集的相關資訊,以顯示在 Azure 管理入口網站中。 如果無法從 Service Fabric 資源提供者存取此埠,您會在 Azure 入口網站 中看到「找不到節點」或「UpgradeServiceNotReachable」等訊息,而您的節點和應用程式清單會顯示空白。 這表示,如果您想要在 Azure 管理入口網站中看到您的叢集,您的負載平衡器必須公開公用 IP 位址,且您的 NSG 必須允許傳入的 19080 流量。 建議將此連接埠用於來自 Service Fabric 資源提供者的擴充管理作業,以保證更高的可靠性。

  • 用戶端 API。 PowerShell 所用 API 的用戶端連線端點。

  • SFX + 用戶端 API。 Service Fabric Explorer 會使用此連接埠來瀏覽和管理您的叢集。 它由 REST/PowerShell(Microsoft.ServiceFabric.PowerShell.Http)/CLI/.NET 等最常見 API 使用相同的方式使用。

  • 叢集。 用於節點間通訊。

  • 暫時。 Service Fabric 會使用一部分連接埠做為應用程式連接埠,其餘連接埠則可供 OS 使用。 其也會將此範圍對應至 OS 中存在的現有範圍,因此不論用途為何,您都可以使用此處範例中給定的範圍。 請確保頭尾連接埠之間相差至少 255。 如果這項差異太低,您可能會遇到衝突,因為這個範圍會與 OS 共用。 若要查看設定的動態埠範圍,請執行 netsh int ipv4 show dynamicport tcp。 Linux 叢集不需要這些連接埠。

  • 應用程式。 應用程式連接埠範圍應該足以涵蓋應用程式的端點需求。 此範圍應該排除於電腦上的動態連接埠範圍 (也就是在組態中設定的 ephemeralPorts 範圍) 之外。 Service Fabric 會在每當需要新連接埠時使用這些連接埠,並負責為節點上的這些連接埠開啟防火牆。

  • RDP。 (選擇性) 如果 Jumpbox 案例需要來自網際網路或 VirtualNetwork 的 RDP。

  • SSH。 (選擇性) 如果 Jumpbox 案例需要來自網際網路或 VirtualNetwork 的 SSH。

  • 自訂端點。 讓您的應用程式啟用網際網路可存取端點的範例。

注意

針對來源網際網路的大部分規則,請考慮限制您的已知網路,最好是透過 CIDR 區塊來定義。

輸出

優先順序 名稱 連接埠 通訊協定 來源 Destination 動作 必要
4010 資源提供者 443 TCP 任意 ServiceFabric 允許 Yes
4020 下載二進位檔 443 TCP 任意 AzureFrontDoor.FirstParty 允許 Yes

輸出安全性規則的詳細資訊:

  • 資源提供者。 UpgradeService 與 Service Fabric 資源提供者之間的連線,用於接收管理作業,例如,ARM 部署或必要作業 (像是種子節點或主要節點類型升級)。

  • 下載二進位檔。 升級服務會使用位址 download.microsoft.com 來取得二進位檔,安裝、重新映像和運行時間升級需要此關聯性。 在「僅限內部」負載平衡器的案例中,您必須新增其他外部負載平衡器,並包含允許連接埠 443 輸出流量的規則。 您可以選擇性地在安裝成功之後封鎖此埠,但在此情況下,升級套件必須散發到節點,或埠必須在短時間內開啟,之後需要手動升級。

搭配 NSG 流量記錄流量分析使用 Azure 防火牆來追蹤連線問題。 搭配 NSG 的 Service Fabric ARM 範本是絕佳的入門範例。

注意

默認的網路安全性規則不應覆寫,因為它們可確保節點之間的通訊。 網路安全性群組 - 運作方式。 另一個範例是連接埠 80 上的輸出連線需要進行憑證撤銷清單檢查。

需其他規則的常見情節

Azure 服務標籤可涵蓋所有其他情節。

Azure DevOps

Azure DevOps 中的傳統 PowerShell 任務 (服務標籤:AzureCloud) 需有叢集用戶端 API 存取權,例如應用程式部署或操作工作。 這不適用於僅限 ARM 範本的方法,包括 ARM 應用程式資源

優先順序 名稱 連接埠 通訊協定 來源 Destination 動作 方向
3915 Azure DevOps 19000 TCP AzureCloud 任意 允許 傳入

更新 Windows

修補 Windows 作業系統的最佳做法是透過自動 OS 映像升級,取代 OS 磁碟,不需要額外規則。 修補檔協調流程應用程式管理 VM 內升級,Windows Update 會在此套用作業系統修補檔,這必須存取下載中心 (服務標籤:AzureUpdateDelivery) 才能下載更新二進位檔。

優先順序 名稱 連接埠 通訊協定 來源 Destination 動作 方向
4015 Windows Update 443 TCP 任意 AzureUpdateDelivery 允許 輸出

API 管理

Azure APIM 整合功能 (服務標籤:ApiManagement) 需要用戶端 API 存取權,才能從叢集查詢端點資訊。

優先順序 名稱 連接埠 通訊協定 來源 Destination 動作 方向
3920 API 管理 19080 TCP ApiManagement 任意 允許 傳入

應用程式網路功能

  • 若要執行 Windows 容器工作負載,請使用開放網路模式,以便進行服務對服務的通訊。

  • 使用反向 Proxy (例如 TraefikService Fabric 反向 Proxy) 公開常用的應用程式連接埠,例如 80 或 443。

  • 針對在實體隔離斷網機器 (無法從 Azure 雲端儲存體提取基礎層) 上裝載的 Windows 容器,請使用 Docker 精靈中的 --allow-nondistributable-artifacts 旗標來覆寫外部層行為。

下一步