簡體   English   中英

Azure Service Fabric Windows容器-容器間通信

[英]Azure Service Fabric Windows Containers - Inter Container Communication

我已使用“帶有容器的Windows 2016 DataCenter”操作系統創建了Azure Service Fabric群集,並在群集的端口80上啟用了反向代理偵聽。 我們打算在此群集上部署舊版ASP.NET MVC和WCF應用程序。

在現有的部署模型中,由於聊天通信和低延遲要求,我們將服務共處一地位於同一主機上,彼此通信。 Windows容器中托管的應用程序是否可以與同一節點上的其他Windows容器應用程序通信? 基本上,我希望在同一Service Fabric節點上的兩個Windows容器應用程序之間具有Node親和力。

我嘗試了一個示例應用程序,它似乎唯一的選擇是使用動態分配的容器的私有IP。 實例化Service Fabric群集上的容器時是否可以傳遞--ip-address參數?

[更新:2017年4月5日]

Service Fabric群集版本:5.5.219.0

總節點類型:1

總節點數:3

兩個容器都部署在所有三個節點上。 Azure Internet負載平衡器用於公開服務結構反向代理。 所有服務都可以通過反向代理在內部和外部進行訪問。

高拉夫

您現在可以在v5.5版本中執行什么操作,而下一版本將要執行什么操作。

對於v5.5版本此GitHub存儲庫https://github.com/Azure-Samples/service-fabric-dotnet-containers顯示了如何在Windows容器之間進行通信,您可以在其中使用端口綁定將主機端口映射到容器上的私有端口應用清單中的政策。

然后,您可以使用具有URL格式的ReverseProxy,或者通過REST交流稱為REST的命名服務(這是本示例的功能),或者像您所說的那樣,並且更加容易。 如果兩個容器都部署在同一台計算機上,則通信是通過本地ReverseProxy進行的,您將在容器之間獲得本地調用。 請參閱https://docs.microsoft.com/zh-cn/azure/service-fabric/service-fabric-reverseproxy 正如Mikkel所指出的那樣,您必須通過放置約束告訴Service Fabric您要將容器放在同一VM上。

注意:要使上述GitHub示例在您的本地計算機上運行,您需要更新C:\\ Program Files \\ Microsoft SDKs \\ Service Fabric \\ ClusterSetup \\ NonSecure \\ FiveNode文件夾中的本地dev清單ClusterManifestTemplate.xml,並將IPAddressOrFQDN屬性更改為“本地主機”到運行它的機器的實際IP。 這是由於上面的git repo中記錄的Windows Server網絡錯誤所致。

<Node NodeName="_Node_0" IPAddressOrFQDN="ComputerFullName" IsSeedNode="true"  NodeTypeRef="NodeType0" FaultDomain="fd:/0" UpgradeDomain="0" />

變成

<Node NodeName="_Node_0" IPAddressOrFQDN="192.1.3.50" IsSeedNode="true"  NodeTypeRef="NodeType0" FaultDomain="fd:/0" UpgradeDomain="0" />

v5.6版本即將推出在下一個版本中,我們在命名服務的頂部添加了一個DNS服務器,以便您可以使用DNS名稱代替反向代理使用的fabric:/名稱。 這意味着您可以在Service Fabric群集中使用http:// [domainname] / path調用在容器之間進行調用。 對於反向代理,同一規則適用於同一台計算機上本地容器之間的調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM