简体   繁体   中英

Automating MongoDB Replica set configuration on Kubernetes

I am creating a MongoDB cluster on Kubernetes using Stateful sets. I have 3 mongo replicas configured in my Stateful set.

Now I create Stateful set and service using just one command

kubectl create -f mongo-stateful.yaml

Then I use the mongo client to initiate mongo replica set members.

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

All of this works except I would like to automate this step of configuring replica set members.

My questions is whether this step can be automated and if we can add this to the yaml file?

Yes, it is possible, you have several choices:

  1. Use the sidecar approach as specified by @tzik, then you don't need to do much in your code
  2. Use the kubernetes lifecycle.postInstall feature to implement the clustering on your own (this is a bit tricky, because postInstall runs on each statefulset member)
  3. Use if you decide to use helm to manage your k8s deployments, then you can use helm post-install hooks to initiate your mongodb cluster.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM