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:
lifecycle.postInstall
feature to implement the clustering on your own (this is a bit tricky, because postInstall runs on each statefulset member)This might be what you're looking for:
http://blog.kubernetes.io/2017/01/running-mongodb-on-kubernetes-with-statefulsets.html