Set System Requirements

Each Kubernetes worker node (host system) must meet the system requirements as specified in the System Requirements and Recommendations documentation. The recommended method for configuring these settings is to do so directly on each Kubernetes node where SingleStore will be scheduled to run.

As manually configuring a multitude of worker nodes to conform to SingleStore’s system requirements can be time-consuming, a DaemonSet can be employed to make this configuration easier.

One key benefit to using a DaemonSet is that, as you scale your cluster with additional worker nodes, the DaemonSet will automatically configure each worker node with the required settings.

The following DaemonSet template must run with elevated privileges in order to perform the required system-level updates to a worker node.

Note: The value of sysctl -w vm.min_free_kbytes must be updated to either 1% of system RAM or 4 GB, whichever is smaller:

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: singlestore-sysreq
labels:
"app.kubernetes.io/name": "singlestore-sysreq"
spec:
selector:
matchLabels:
"app.kubernetes.io/name": "singlestore-sysreq"
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
"app.kubernetes.io/name": "singlestore-sysreq"
spec:
hostPID: true
volumes:
- name: sys
hostPath:
path: /sys
initContainers:
- name: sysreq
image: busybox
securityContext:
privileged: true
volumeMounts:
- name: sys
mountPath: /rootfs/sys
command:
- "/bin/sh"
- "-c"
- |
set -euxo pipefail
sysctl -w vm.max_map_count=1000000000
sysctl -w vm.min_free_kbytes=<set this value to either 1% of system RAM or 4 GB, whichever is smaller>
echo never > /rootfs/sys/kernel/mm/transparent_hugepage/enabled
echo never > /rootfs/sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /rootfs/sys/kernel/mm/transparent_hugepage/khugepaged/defrag
containers:
- name: pause
image: gcr.io/google_containers/pause

Last modified: July 20, 2023

Was this article helpful?