Multi-POD deployment in K8

We are using Weaviate deployment using helm on EKS cluster.
weaviate-helm/weaviate/templates at master · weaviate/weaviate-helm · GitHub

We see poor performance using single POD Weaviate and looking for the option to have multiple PODs deployed to have stability in the application.

I was unable to find details on how to upgrade the deployment to multi POD model? Do we have any document explaining the configuration required?

hi @abhisheknamdeo!

Welcome to our community :hugs:

The best path for your scenario will be deploying a second weaviate instance, with the desired replicas.

Then you create your collections, and migrate your data over.

We have this handy script to help you on that:

Let me know if this helps!

Thanks for your response. As I understand, I should be creating a new Weaviate instance in EKS with multiple replicas and later migrate the data from current Weaviate instance to the new one.

Could you please point me to the location where we can define replicas? I was unable to find that in the HELM deployment configurations.

there you go:

Thank you so much. This helps.

I increased the replica count to 3. No we see three PODs, but with that we see three PV and three PVC.

We assume the new volumes doesn’t contain the same data that we had in initial volume, is that correct? Do we have an inbuilt feature to sync data between these volumes or should be done manually?

Here are the resources -

#-> kubectl get pods | grep weaviate
weaviate-0 1/1 Running 0 47m
weaviate-1 1/1 Running 1 (49m ago) 49m
weaviate-2 1/1 Running 0 47m
[root@AWSBZZNVAL0009:/root]#
#-> kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-79fcd7fe-86ef-431c-965e-641634978e53 1000Gi RWO Delete Bound weaviate/weaviate-data-weaviate-2 gp3 91m
pvc-9b8d33fe-a498-47f9-9627-44762bec179a 1000Gi RWO Delete Bound weaviate/weaviate-data-weaviate-0 gp3 50d
pvc-a9ee6ce3-cdd7-4205-b5c7-31e68c37c3d3 1000Gi RWO Delete Bound weaviate/weaviate-data-weaviate-1 gp3 128m
[root@AWSBZZNVAL0009:/root]#
#-> kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
weaviate-data-weaviate-0 Bound pvc-9b8d33fe-a498-47f9-9627-44762bec179a 1000Gi RWO gp3 50d
weaviate-data-weaviate-1 Bound pvc-a9ee6ce3-cdd7-4205-b5c7-31e68c37c3d3 1000Gi RWO gp3 128m
weaviate-data-weaviate-2 Bound pvc-79fcd7fe-86ef-431c-965e-641634978e53 1000Gi RWO gp3 91m

that’s right.

you now have 3 weaviates running in multi node.

Now you can create your collections and specify to use a replication factor of 3, for example: