是否可以在NAT後面運行akka節點(每個節點位於單獨的nat後面,公共端口是DNAT'ed爲private)?目前我正試圖在Docker容器中部署akka節點。 Docker將公共端口NAT爲實例私有端口,問題在於akka節點的地址是從akka.remote.netty.tcp.hostname創建的,但是在natted環境中它不同於面向公衆的主機名。來自公共接口的消息被拒絕,導致akka被綁定到私有IP。是否有可能更改akka節點地址不尊重akka.remote.netty.tcp.hostname,可以說當前節點地址是akka.tcp://[email protected]:2551,其中172.16.10.5是akka.remote.netty .tcp.hostname,但我想將其更改爲akka.tcp://[email protected]:2551,其中10.2.0.222是公共可訪問地址,但akka仍應該在172.16.10.5:2551上進行偵聽。NAT後面的akka集羣節點(使用docker)
5
A
回答
2
也許你可以指示Akka或Netty綁定在特定的地址和端口上,但在另一個地方宣佈自己。我不明白Akka或Netty是否有可能。
否則,有三件事情,你可以嘗試:
- 檢查,如果他們可以宣佈一個給定的IP地址(主機的一個),但仍然結合
0.0.0.0
,然後執行「身份端口綁定「,即docker run -p 1234:1234 …
這將暴露容器外部的端口1234到容器內的端口1234(從而稍微減輕NAT); - 將集羣部署在單個Docker主機上,並使用內部IP地址 - 您將無法擴展到多臺計算機,但可以在將代理部署到更大的系統之間驗證分佈式代碼,這可以提供幫助;
- 使用Pipework,它允許您將額外接口添加到容器,並將多個容器(在多個主機上)橋接在一個網絡上。 Docker沒有正式支持管道,但許多人發現它對於類似的場景非常有用。
2
是的,這是可能的 - 你需要配置bind-host
和bind-port
爲除遠程平時host
和port
。
How to configure Akka behind NAT來自Akka文檔。
自Akka 2.4.x以來,本機支持此功能;和2.3.11爲Typesafe subscription customers。
相關問題
- 1. 節點羣集和/或Docker羣集?
- 2. Akka Streams在羣集節點上運行
- 3. 節點羣集
- 4. Docker羣管理器無法識別羣集節點
- 5. Akka:如何查找集羣中的當前節點?
- 6. Akka集羣,節點部署在不同的數據中心
- 7. 帶演員的Akka羣集節點離開
- 8. Docker羣集節點無法檢測羣集中另一主機的服務
- 9. Akka集羣應用程序
- 10. 重新啓動所有後端節點後,akka前端節點如何連接到羣集?
- 11. Akka集羣 - 每節點一個經理角色
- 12. 在Kubernetes集羣中添加節點後重新分發集羣
- 13. 單節點羣集在多節點羣集上工作?
- 14. 將2節點cassandra集羣轉換爲1節點集羣
- 15. 在節點集羣中使用babel
- 16. 使用Cytoscape.js進行節點羣集
- 17. 使用websockets進行節點羣集
- 18. 在Akka集羣中使用Guice
- 19. AWS中的Docker化Elasticsearch集羣 - 每個節點選擇自己
- 20. 2節點的Cassandra集羣
- 21. Hadoop的2節點集羣
- 22. akka集羣感知路由器和akka集羣分片的不同用例?
- 23. Docker服務在`n-1`羣集節點中創建`n`副本
- 24. Docker swarm集羣和elasticsearch,使用約束將服務綁定到特定節點
- 25. 刪除SQL羣集節點
- 26. 恢復oracle羣集節點
- 27. 4節點集羣查詢
- 28. Hadoop多節點羣集
- 29. Hazelcast羣集更新節點
看起來像管道可以做的伎倆,我可以使物理接口和碼頭集裝箱接口之間的橋樑,並連接碼頭節點到主網絡不使用NAT – frx
選項1(綁定到0.0.0.0)是不可能與akka 2.3,但使用https://github.com/akka/akka/issues/15007中介紹的'bind-hostname'參數可以實現akka 2.4 –