2015-12-24 32 views
0

我想在Kubernetes上設置一個三節點的Mongo副本集。我的想法是啓動三個豆莢,每個豆莢都有Mongo,當豆莢開始時,它會自動設置副本集,所以我需要修改Mongo鏡像Dockerfile以在Mongo shell中執行一些命令。
但我堅持執行命令rs.initiate()。如果我只是使用命令rs.initiate()不帶參數它的工作原理,但添加參數時,則出現錯誤,如如何在Kubernetes上設置Mongo副本集?

rs.initiate({ "_id": "rs0", "members" : [ { "_id" : 0, "host" : "172.18.248.87:27017" } ]}) 

但執行莢,並使用與參數相同的命令時,它的工作原理。與命令rs.add()相同的情況。如何解決這個問題?

Plus:在我的Dockerfile中,我使用mongo admin --port 27017 --eval "rs.initiate()"來執行該命令。

回答

0

您應該檢查主機文件(主機名)的吊艙,並添加:

IP_ADDRESS mongoslave

IP_ADDRESS mongomaster

例如:

172.18.248.87 mongomaster

然後添加parametters:

rs.initiate()

rsconf = { _id: 「RS0」, 成員:[ { _id:0, 主機:「mongomaster :27017" } ] }

rs.reconfig(rsconf,{力:真})

+0

謝謝。它工作,我終於解決了這個問題。 – henry