
我正在嘗試透過 helm 運行 mongodb。我想運行 1 個主副本和 2 個輔助副本。
我想在建立 3 個 mongodb pod 後為其設定以下命名: mongo-0 mongo-1 mongo-2 假設 mongo-0 將是主要的。
當我運行以下命令時
helm install --name mongo ~/charts/stable/mongodb --set replicaSet.enabled=true,fullnameOverride=mongo
Pod 不需要命名:
kubectl get pods
NAME READY STATUS RESTARTS AGE
mongo-arbiter-0 1/1 Running 0 15s
mongo-primary-0 0/1 Running 0 15s
mongo-secondary-0 0/1 Running 0 15s
請給我任何建議我該如何改變?我也通過更改values-production.yml 進行了嘗試,但輸出相同。
答案1
您需要修改mongoDB helm 圖表模板。
更具體地說,您需要更改以下文件。
圖表/穩定/mongodb/templates/statefulset-arbiter-rs.yaml
編輯行:
name: {{ template "mongodb.fullname" . }}-arbiter
和
並替換arbiter
為您想要的 ReplicaSet 名稱。
圖表/穩定/mongodb/templates/statefulset-primary-rs.yaml
編輯行:
name: {{ template "mongodb.fullname" . }}-primary
和
並替換primary
為您想要的 ReplicaSet 名稱。
圖表/穩定/mongodb/templates/statefulset-secondary-rs.yaml
編輯行:
name: {{ template "mongodb.fullname" . }}-secondary
和
並替換secondary
為您想要的 ReplicaSet 名稱。
答案2
由於我的評論沒有以非常可讀的形式顯示,我也在這裡發布我的評論:
這是個好主意,但不是 100% 有效。我在 statefulset 中運行 pod,因此 kubectl get rs 不返回任何輸出。這是 kubectl get ss:
kubectl get statefulsets
NAME DESIRED CURRENT AGE
mongo-0 1 1 93s
mongo-1 1 1 93s
mongo-2 1 1 93s
按照 Crou 建議更改配置後,我得到如下所示的 Pod:
kubectl get pods
NAME READY STATUS RESTARTS AGE
mongo-0-0 1/1 Running 0 39s
mongo-1-0 1/1 Running 0 39s
mongo-2-0 1/1 Running 0 39s
現在我想刪除最後的 -0 所以我得到:
kubectl get pods
NAME READY STATUS RESTARTS AGE
mongo-0 1/1 Running 0 39s
mongo-1 1/1 Running 0 39s
mongo-2 1/1 Running 0 39s