Many of the configuration options that are performed through hardware configuration, system commands or environment variables on traditional server platforms are now available through Helm properties. Most of these settings are listed in Section B.3, “Kubernetes Cluster Startup Options”.
Hardware settings, such as the number of processors and memory size, are defined as Kubernetes image resources
through the Helm cluster.clusterSpec.resources
property. Under resources
, you
can specify any of the YAML properties Kubernetes expects when configuring pods within a container. For
example:
cluster: clusterSpec: resources: requests: cpu: 500m memory: 1000Mi limits: cpu: 500m memory: 1000Mi
System settings that control process limits that are normally defined through environment variables can be set
with the cluster.clusterSpec.env
properties. For example, the following YAML increases the Java
maximum heap size and disables the collection of JVM statistics:
cluster: clusterSpec: env: VOLTDB_HEAPMAX: 3072 VOLTDB_OPTS: -XX:+PerfDisableSharedMem
One system setting that is not configurable through Kubernetes or Helm is whether the base platform has Transparent Huge Pages (THP) enabled or not. This is dependent of the memory management settings on the actual base hardware on which Kubernetes is hosted. Having THP enabled can cause problems with memory-intensive applications like VoltDB and it is strongly recommended that THP be disabled before starting your cluster. (See the section on Transparent Huge Pages in the VoltDB Administrator's Guide for an explanation of why this is an issue.)
If you are not managing the Kubernetes environment yourself or cannot get your provider to modify their environment, you will need to override VoltDB's warning about THP on startup by setting the cluster.clusterSpec.additionalArgs property to include the VoltDB start argument to disable the check for THP. For example:
cluster: clusterSpec: additionalStartArgs: - "--ignore=thp"