簡體   English   中英

如何創建在kubernetes中外部可用的mongodb副本集或碎片?

[英]How do you create a mongodb replica set or shard that is externally available in kubernetes?

我已經按照教程進行了操作,並設置了可運行的mongodb副本集,但是在將它們作為服務公開時,我卻堅持使用直接指向任何Pod的LoadBalancer。 在大多數情況下,這最終將成為輔助數據庫,並且效果不佳。 我還設法建立了單獨的mongodb副本,然后嘗試連接到外部副本,但是連接失敗,因為內部副本集ip全部通過本地google cloud dns。

我希望的是這樣的事情。 完美世界中的蒙哥副本

然后(可能)有一個連接uri,可以將您連接到mongodb副本集,而無需單獨的mongodb連接詳細信息。

我不確定這是否可行,但是任何幫助將不勝感激!

負載平衡器類型服務會將流量路由到與其選擇器匹配的任何一個Pod,這不是mongodb副本集的工作方式。 連接字符串應包含集合中的所有實例。 您可能需要使用type = loadbalancer公開每個副本實例。 然后,您可以通過“ mongodb:// mongo-0_IP,mongo-1_IP,mongo-2_IP:27017 / dbname_? ”進行連接

如果使用狀態集配置mongodb副本集,則還應創建無頭服務。 然后,您可以使用以下網址連接到副本集:

“MongoDB的://mongo-0.mongo,mongo-1.mongo,mongo-2.mongo:27017 / dbname_?”

這里的mongo-0,mongo-1,mongo-2是pod名稱,“ mongo”是無頭服務名稱。

如果仍然希望能夠連接到特定的mongo實例,則可以為每個部署/副本創建單獨的服務(類型= NodePort),然后應該可以使用<any-node-ip>:<nodeport>連接到特定的mongo實例。 <any-node-ip>:<nodeport>但在這種情況下,您將無法利用設置mongo副本的優勢。

暫無
暫無

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

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