A.3. Kubernetes Cluster Startup Options

Documentation

VoltDB Home » Documentation » VoltDB Kubernetes Administrator's Guide

A.3. Kubernetes Cluster Startup Options

The following properties affect the size and structure of the Kubernetes cluster that gets started, as well as the startup attributes of the VoltDB cluster running on those pods.

Table A.2. Options Starting with cluster.clusterSpec...

ParameterDescriptionDefault
.replicasPod (VoltDB Node) replica count, scaling to 0 will shutdown the cluster gracefully3
.maxPodUnavailableMaximum pods unavailable in Pod Disruption Budgetkfactor
.maintenanceModeVoltDB Cluster maintenance mode (pause all nodes)false
.takeSnapshotOnShutdownTakes a snapshot when cluster is shut down by scaling to 0. One of: NoCommandLogging (default), Always, Never. NoCommandLogging means 'snapshot only if command logging is disabled'.""
.initForceAlways init --force on VoltDB node start/restart. WARNING: This will destroy VoltDB data on PVCs except snapshots.false
.deletePVCDelete and cleanup generated PVCs when VoltDBCluster is deleted, requires finalizers to be enabled (on by default)false
.allowRestartDuringUpdateAllow VoltDB cluster restarts if necessary to apply user-requested configuration changes. May include automatic save and restore of database.false
.stoppedNodesUser-specified list of stopped nodes based on StatefulSet # (e.g. [ 2, 3 ])[ ]
.additionalXDCRReadinessAdd additional readiness checks using XDCR to ensure both clusters are healthy (WARNING: May cause app downtime)false
.persistentVolume.sizePersistent Volume size per Pod (VoltDB Node)1Gi
​.persistentVolume​.storageClassNameStorage Class name to use, otherwise use default""
​.persistentVolume​.hostpath​.enabledUse HostPath volume for local storage of VoltDB. This node storage is often ephemeral and will not use PVC storage classes if enabled.false
​.persistentVolume​.hostpath​.pathHostPath mount point, defaults to /data/voltdb/ if not specified.""
.ssl.certificateFilePEM encoded certificate chain used by the VoltDB operator when SSL/TLS is enabled""
.ssl.insecureIf true, skip certificate verification by the VoltDB operator when SSL/TLS is enabledfalse
.storageConfigsOptional storage configs for provisioning additional persistent volume claims automatically[ ]
.additionalVolumesAdditional list of volumes that can be mounted by node containers[ ]
.additionalVolumeMountsPod volumes to mount into the container's filesystem, cannot be modified once set[ ]
.image.registryImage registrydocker.io
.image.repositoryImage repositoryvoltdb/voltdb-enterprise
.image.tagImage tag10.0.0
.image.pullPolicyImage pull policyAlways
.additionalStartArgsAdditional VoltDB start command args for the pod container[ ]
.priorityClassNamePod priority defined by an existing PriorityClass""
.additionalAnnotationsAdditional custom Pod annotations{ }
.additionalLabelsAdditional custom Pod labels{ }
.resourcesCPU/Memory resource requests/limits{ }
.nodeSelectorNode labels for pod assignment{ }
.tolerationsPod tolerations for Node assignment[ ]
.affinityNode affinity{ }
.podSecurityContextPod security context{"runAsNonRoot":true,​"runAsUser":1001,​"fsGroup":1001}
.securityContextContainer security context. WARNING: Changing user or group ID may prevent VoltDB from operating.{"privileged":false,​"runAsNonRoot":true,​"runAsUser":1001,​"runAsGroup":1001,​"readOnlyRootFilesystem":true}
​.clusterInit​.initSecretRefNameName of pre-created Kubernetes secret containining init configuration (deployment.xml, license.xml and log4j.xml), ignores init configuration if set""
​.clusterInit​.schemaConfigMapRefNameName of pre-created Kubernetes configmap containining schema configuration""
​.clusterInit​.classesConfigMapRefNameName of pre-created Kubernetes configmap containining schema configuration""
​.podTerminationGracePeriodSecondsDuration in seconds the Pod needs to terminate gracefully. Defaults to 30 seconds if not specified.30
.livenessProbe.enabledEnable/disable livenessProbetrue
​.livenessProbe​.initialDelaySecondsDelay before liveness probe is initiated20
​.livenessProbe​.periodSecondsHow often to perform the probe10
​.livenessProbe​.timeoutSecondsWhen the probe times out1
​.livenessProbe​.failureThresholdMinimum consecutive failures for the probe10
​.livenessProbe​.successThresholdMinimum consecutive successes for the probe1
.readinessProbe.enabledEnable/disable readinessProbetrue
​.readinessProbe​.initialDelaySecondsDelay before readiness probe is initiated30
​.readinessProbe​.periodSecondsHow often to perform the probe17
​.readinessProbe​.timeoutSecondsWhen the probe times out2
​.readinessProbe​.failureThresholdMinimum consecutive failures for the probe6
​.readinessProbe​.successThresholdMinimum consecutive successes for the probe1
.startupProbe.enabledEnable/disable startupProbe, feature flag must also be enabled at a cluster level (enabled by default in 1.18)true
​.startupProbe​.initialDelaySecondsDelay before startup probe is initiated45
​.startupProbe​.periodSecondsHow often to perform the probe10
​.startupProbe​.timeoutSecondsWhen the probe times out1
​.startupProbe​.failureThresholdMinimum consecutive failures for the probe18
​.startupProbe​.successThresholdMinimum consecutive successes for the probe1
.env.VOLTDB_OPTSVoltDB cluster additional java runtime options (VOLTDB_OPTS)""
.env.VOLTDB_HEAPMAXVoltDB cluster heap size, integer number of megabytes (VOLTDB_HEAPMAX)""
.env.VOLTDB_HEAPCOMMITCommit VoltDB cluster heap at startup, true/false (VOLTDB_HEAPCOMMIT)""
​.env​.VOLTDB_K8S_LOG_CONFIGVoltDB log4jcfg file path""
.customEnvKey-value map of additional envvars to set in all VoltDB node containers{ }