Share via


Service Fabric Mesh 的常見問題

重要

Azure Service Fabric Mesh預覽已淘汰。 新的部署將不再允許透過 Service Fabric Mesh API。 現有部署的支援將會繼續到 2021 年 4 月 28 日。

如需詳細資訊,請參閱Azure Service Fabric Mesh Preview 淘汰

Azure Service Fabric Mesh 是一個受到完整管理的服務,讓開發人員能夠部署微服務應用程式,而不需管理虛擬機器、儲存體或網路功能。 本文提供常見問題的解答。

如何回報問題或詢問問題?

service-fabric-mesh-preview GitHub 存放庫 \(英文\) 中提出問題、獲得 Microsoft 工程師所提供的解答,以及回報問題。

配額和成本

參與預覽版的成本為何?

目前不需要將應用程式或容器部署至Mesh預覽版。 請在 5 月中監看更新,以取得計費的啟用。 不過,建議您刪除您所部署的資源,除非您主動測試它們,否則不要讓資源保持執行狀態。

核心和 RAM 數目是否有配額限制?

是。 每個訂用帳戶的配額如下:

  • 應用程式數目:5
  • 每個應用程式的核心數:12
  • 每個應用程式的 RAM 總數:48 GB
  • 網路和輸入端點:5
  • 您可以連結的 Azure 磁片區:10
  • 服務複本數目:3
  • 您可以部署的最大容器限制為 4 個核心和 16 GB 的 RAM。
  • 您可以將部分核心配置給容器,遞增量為 0.5 個核心,最多 6 個核心。

我可以讓應用程式維持部署狀態幾天?

我們目前將應用程式的存留期限制為兩天。 這是為了充分運用配置給預覽版的可用核心。 因此,只允許您持續執行指定的部署 48 小時,之後將會關閉該部署。

如果確實發生此情況,可以藉由在 Azure CLI 中執行 az mesh app show 命令,以驗證系統是否將它關閉。 請檢查是否傳回 "status": "Failed", "statusDetails": "Stopped resource due to max lifetime policies for an application during preview. Delete the resource to continue."

例如:

az mesh app show --resource-group myResourceGroup --name helloWorldApp
{
  "debugParams": null,
  "description": "Service Fabric Mesh HelloWorld Application!",
  "diagnostics": null,
  "healthState": "Ok",
  "id": "/subscriptions/1134234-b756-4979-84re-09d671c0c345/resourcegroups/myResourceGroup/providers/Microsoft.ServiceFabricMesh/applications/helloWorldApp",
  "location": "eastus",
  "name": "helloWorldApp",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "serviceNames": [
    "helloWorldService"
  ],
  "services": null,
  "status": "Failed",
  "statusDetails": "Stopped resource due to max lifetime policies for an application during preview. Delete the resource to continue.",
  "tags": {},
  "type": "Microsoft.ServiceFabricMesh/applications",
  "unhealthyEvaluation": null
}

若要刪除資源群組,請使用 az group delete <nameOfResourceGroup> 命令。

部署

支援哪些容器映射?

如果您是在 Windows Fall Creators Update (1709 版) 機器上進行開發,則只能使用 Windows 1709 版 Docker 映像。

如果您是在 Windows 10 April 2018 update (1803 版) 機器上進行開發,則可以使用 Windows 1709 版或 Windows 1803 版的 Docker 映像。

可以使用下列容器 OS 映像部署服務:

  • Windows:windowsservercore 和 nanoserver
    • Windows Server 1709
    • Windows Server 1803
    • Windows Server 1809
    • Windows Server 2019 LTSC
  • Linux
    • 沒有已知的限制

注意

Visual Studio工具Mesh尚不支援部署到 Windows Server 2019 和 1809 容器。

我可以部署哪些類型的應用程式?

您可以在符合應用程式資源限制的容器中部署執行的任何專案, (請參閱上述內容,以取得配額) 的詳細資訊。 如果我們偵測到您使用Mesh來執行不合法的工作負載或濫用系統 (,也就是採礦) ,則我們保留終止部署的權利,並封鎖您的訂用帳戶在服務上執行。 如果您有執行特定工作負載的任何問題,請與我們連絡。

開發人員體驗問題

來自容器的 DNS 解析無法運作

從容器連出到 Service Fabric DNS 服務的 DNS 查詢在某些情況下可能會失敗。 我們正在調查此問題。 減輕問題:

  • 使用 Windows Fall Creators Update (1709版) 或更新版本作為基礎容器映像。
  • 如果服務名稱單獨無法運作,請嘗試完整名稱:ServiceName.ApplicationName。
  • 在您服務的 Docker 檔案中新增 EXPOSE <port>,其中的 port 是您公開服務的連接埠。 例如:
EXPOSE 80

DNS 的運作方式和在 Service Fabric 開發叢集與 Mesh 中不一樣

您可能需要在您的本機開發叢集中以及 Azure Mesh 中以不同方式參考服務。

在您的本機開發叢集中,請使用 {serviceName}.{applicationName}。 在 Azure Service Fabric Mesh 中,請使用 {servicename}

Azure Mesh 目前不支援跨應用程式的 DNS 解析。

如需在 Windows 10 上執行Service Fabric開發叢集的其他已知 DNS 問題,請參閱:對容器和已知 DNS 問題進行偵 Windows錯

網路

在本機電腦上執行應用程式時,ServiceFabric 網路 NAT 可能會消失。 若要診斷是否發生此問題,請從命令提示字元執行以下命令:

docker network ls 並記下是否列出 servicefabric_nat。 如果沒有,請執行以下命令:docker network create -d=nat --subnet 10.128.0.0/24 --gateway 10.128.0.1 servicefabric_nat

即使應用程式已經在本機部署且狀況不良,這樣做也可以解決此問題。

執行多個應用程式的問題

您可能會遇到跨所有應用程式修正 CPU 可用性與限制。 減輕問題:

  • 建立一個五節點叢集。
  • 跨已部署的所有應用程式,降低服務的 CPU 使用量。 例如,在服務的 service.yaml 檔案中,將 cpu: 1.0 變更為 cpu: 0.5

您無法將多個應用程式部署到一個單一節點叢集。 減輕問題:

  • 將多個應用程式部署至本機叢集時,請使用五節點叢集。
  • 移除您目前沒有在測試的應用程式。

VS 工具對Windows容器的支援有限

Visual Studio工具目前僅支援部署Windows作業系統版本為 Windows Server 1709 和 1803 的容器。

功能差距和其他已知問題

部署應用程式之後,與它相關聯的網路資源沒有 IP 位址

有一個已知問題 IP 位址不會立即變成可用的已知問題。 在幾分鐘內檢查網路資源的狀態,以查看相關聯的 IP 位址。

我的應用程式無法存取正確的網路/磁碟區資源

請在您的應用程式模型中,使用網路和磁碟區的完整資源識別碼,才能存取相關聯的資源。 以下是來自快速入門範例的範例:

"networkRefs": [
    {
    "name":  "[resourceId('Microsoft.ServiceFabric/networks', 'SbzVotingNetwork')]" 
    }
]

當我相應放大時,所有容器都受到影響,包括正在執行的容器

這是一個錯誤 (bug),目前正在實作修正程式。

後續步驟

若要深入瞭解Service Fabric Mesh,請閱讀概觀