Skip to main content

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 SingleStoreDB will be scheduled to run.

As manually configuring a multitude of worker nodes to conform to SingleStoreDB’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.

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=658096
          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