在Kubernetes

时间:2017-01-25 20:11:38

标签: mongodb kubernetes replicaset

我正在使用有状态集在Kubernetes上创建一个MongoDB集群。我在我的有状态集中配置了3个mongo副本。

现在我只使用一个命令

创建有状态集和服务
  

kubectl create -f mongo-stateful.yaml

然后我使用mongo客户端启动mongo副本集成员。

rs.initiate(
   {
      _id: "replicaset1",
      version: 1,
      members: [
         { _id: 0, host:port1 },
         { _id: 1, host : host:port1 },
         { _id: 2, host : host:port1  }
      ]
   }
)

除了我想自动执行配置副本集成员的步骤之外,所有这些都有效。

我的问题是这个步骤是否可以自动化,是否可以将其添加到yaml文件中?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

是的,有可能,你有几个选择:

  1. 使用@tzik指定的边车方法,然后您不需要在代码中做太多工作
  2. 使用kubernetes lifecycle.postInstall功能自行实现集群(这有点棘手,因为postInstall在每个statefulset成员上运行)
  3. 如果您决定使用helm来管理k8s部署,则可以使用helm post-install hooks来启动您的mongodb群集。