我正在尝试通过 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/模板/statefulset-arbiter-rs.yaml
编辑行:
name: {{ template "mongodb.fullname" . }}-arbiter
和
并将其替换arbiter
为您所需的 ReplicaSet 名称。
图表/稳定/mongodb/模板/statefulset-primary-rs.yaml
编辑行:
name: {{ template "mongodb.fullname" . }}-primary
和
并将其替换primary
为您所需的 ReplicaSet 名称。
图表/稳定/mongodb/模板/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