OneDB Minimum Kubernetes Recommendations

When a OneDB Helm chart is deployed you can specify the minimmum and maximum amount of resources that Kuberentes will use.

When scheduling a pod on a kubernetes node the pod specification can request minimmum resources required. If no node is available with those resources the pod will not be scheduled.

Example: If a pod has a resource.request.cpu of 1, kubernetes will attempt to schedule the pod on a node with >= 1 cpu. If not available, then the pod will not be scheduled.

The following are the current values set in the OneDB Helm Charts.
Pod Resource Request Limit
onedb CPU .1 CPU 24 CPU
Memory 2GB 32GB
CM CPU .1 CPU 1 CPU
Memory 100 MB 500 MB
Mongo/REST CPU .1 CPu 2.1 CPU
Memory 128MB 1GB
Explore CPU .1 CPU 2 CPU
Memory 64MB 512MB

The OneDB Helm charts are also configured by default to not allow two OneDB server pods to be scheduled on the same node. See onedb.nodeSelectorRequired configuration parameter.

The OneDB Helm chart is also configureed to not allow two OneDB Connection Manager pods to be scheduled on the same node. See onedbcm.nodeSelectorRequired configuration parameter.

This does not prevent a Connection manager pod from being scheduled on the same node as a OneDB server pod.

For best performance in a production system it is recommended to configure Affinity along with taints and tolerations to have full control of where the OneDB pods will be scheduled. This will allow you to control the resources available to the individual running pod.

Minimum Recommendation:

  • 1 node per OneDB server pod

  • 2 nodes for all other pods to be schedued on

General Recommendation: For best performance possible in a production system.

  • Use affinity, taints and tolerations

  • Configure 1 node per OneDB Server pod

  • Configure 1 node per CM

  • 1 node or Mongo wire listener

  • 1 node for REST wire listener

  • Configure 1-2 nodes for other pods

Note: It is possible to run a OneDB Helm chart with fewer nodes. These recommendations are given to provide the best performance possible for a production system.