Deploying RavenDB with Helm Chart
Helm is the package manager for Kubernetes. It allows you to easily deploy applications and systems to a Kubernetes cluster easily, safely and in a reproducible manner.
We provide you with a chart so you can use Helm to deploy RavenDB clusters.
You can visit this link for a full discussion on how to do so.
Comments
Great job, helm charts are really a great way to provide fully functional/complex installations. Quick feedback : Why do you manage HA with multiple sts instead of one with replicas ? You should also consider adding anti node affinity. I'm not sure I understand the need for service pointing to a single pod. I don't see any single entry point for the cluster is it expected ?
remi,
Each node in RavenDB is running independently and acts on its own.
With replicas, K8s will handle routing and treat them as interchangeable. We need to be able to access each node without anything in the middle.This follows the guidance we already have for k8s, see here: https://ravendb.net/docs/article-page/5.4/csharp/start/installation/setup-examples/kubernetes/aws-eks
I looked at the templates a bit - without doing an actual deployment. Things that came to my mind
Storage class. Developers often have varying storage classes depending on how fast they need the data. Also, depending on the cloud provider, default may not be suitable for serving ravendb. I have had a storage classes with hard drive, and also have had balanced-rwo that used CSI interface to provision disks etc. I am fairly sure this is a rather common pattern. Hetzner cloud with k3s comes with a different provisioner and storage class, so feels like this would need to be exposed (i checked and didn't see from the template).
Ingress. Is ingress for external access to management ui and for actual db communication? I often do this manually - but not sure how applicable this is. I often put admin ui behind oauth proxy for example.
Namespace: This may just be me, but I tend to keep everything in the same namespace as the app itself.
Tuna,
1/ Not sure how we can do better here in a generic fashion. "Give me your fastest storage option" is an option that would work?
2/ Yes, both admin UI and the production access use the same endpoint ( and security ).
Comment preview