B.3. Kubernetes Cluster Startup Options

Documentation

VoltDB Home » Documentation » VoltDB Kubernetes Administrator's Guide

B.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 B.2. Options Starting with cluster.clusterSpec...

ParameterDescriptionDefault
.additionalAnnotationsAdditional custom pod annotations{ }
.additionalLabelsAdditional custom pod labels{ }
.additionalStartArgsAdditional arguments for the 'voltdb start' command issued in the pod container[ ]
.additionalVolumeMountsPod volumes to mount into the container's filesystem; cannot be modified once set[ ]
.additionalVolumesAdditional list of volumes that can be mounted by node containers[ ]
.affinityKubernetes node affinity{ }
.allowRestartDuringUpdateAllow VoltDB cluster restarts if necessary to apply user-requested configuration changes. May include automatic save and restore of database.false
.adminOperationTimeoutTimeout for activity check for admin actions such as pause/stop/shutdown. If not specified 120 seconds is used as default. If set less than 120 it will use default 120 seconds.0
.autoScaling.enabledEnable/disable auto-scaling. Also used to reset a failed state by disable/enable sequencefalse
.autoScaling.maxReplicasMaximum scale up limit. Effective value will be rounded up to nearest multiple of kfactor+116
.autoScaling.maxRetriesMaximum number of times a failed elastic operation will be retried. 0 means no retries0
​.autoScaling​.metrics​.cpu​.scaleDownThe threshold that the value of the CPU metric must cross downwards for a cluster scale down0
​.autoScaling​.metrics​.cpu​.scaleUpThe threshold that the value of the CPU metric must cross upwards for a cluster scale up0
.autoScaling.metrics.cpuThe 'CPU percent usage' metric: the average value of the PERCENT_USED values reported in the CPU statistics{ }
​.autoScaling​.metrics​.idletime​.scaleDownThe threshold that the value of the idle time metric must cross upwards for a cluster scale down0
​.autoScaling​.metrics​.idletime​.scaleUpThe threshold that the value of the idle time metric must cross downwards for a cluster scale up0
​.autoScaling​.metrics​.idletimeThe 'idle time' metric: the average value of the PERCENT values reported in the IDLETIME statistics. Note: lower values require scale up, higher values require scale down{ }
​.autoScaling​.metrics​.rss​.scaleDownThe threshold that the value of the RSS metric must cross downwards for a cluster scale down0
​.autoScaling​.metrics​.rss​.scaleUpThe threshold that the value of the RSS metric must cross upwards for a cluster scale up0
.autoScaling.metrics.rssThe 'resident set size' metric: the average value of the RSS values reported in the MEMORY statistics{ }
​.autoScaling​.metrics​.tps​.scaleDownThe threshold that the value of the TPS metric must cross downwards for a cluster scale down0
​.autoScaling​.metrics​.tps​.scaleUpThe threshold that the value of the TPS metric must cross upwards for a cluster scale up0
.autoScaling.metrics.tpsThe 'transactions per second' metric: the average value of the TPS values reported in the LATENCY statistics{ }
.autoScaling.metricsLists the thresholds for the monitored metrics, indexed by metric name: cpu, idletime, rss, tps{ }
.autoScaling.minReplicasMinimum scale down limit. Effective value will be rounded up to nearest multiple of kfactor+1kfactor + 1
​.autoScaling​.notificationIntervalThe duration, in seconds, between notification events reporting that an elastic operation is ongoing. 0 means no notification0
.autoScaling.retryTimeoutDefines the duration, in seconds, to wait for a retried operation to start. If the timeout expires and the operation didn’t start, auto-scaling will be stopped.60
​.autoScaling​.stabilizationWindow​.scaleDownThe duration, in seconds, that a ‘scaleDown threshold crossed’ condition must remain true in order to trigger an elastic remove operation300
​.autoScaling​.stabilizationWindow​.scaleUpThe duration, in seconds, that a ‘scaleUp threshold crossed’ condition must remain true in order to trigger an elastic add operation300
​.clusterInit​.classesConfigMapRefNameName of pre-created Kubernetes configmap containing stored procedure classes""
​.clusterInit​.initSecretRefNameName of pre-created Kubernetes secret containing init configuration, using key 'deployment.xml'. Ignores init configuration if set. Deprecated.""
​.clusterInit​.licenseSecretRefNameName of pre-created Kubernetes secret containing Volt license, using key 'license.xml'""
​.clusterInit​.logConfigMapNameName of pre-created Kubernetes config map containing custome logging configuration, using key 'log4j.xml'""
​.clusterInit​.schemaConfigMapRefNameName of pre-created Kubernetes configmap containing schema configuration""
.customEnvKey-value map of additional environment variables to set in all VoltDB node containers{ }
.disableFinalizersDisables Helm finalizers to permit cluster deletion. WARNING: many resources will require manual cleanup.false
.deletePVCDelete and cleanup generated PVCs when VoltDBCluster is deleted, requires finalizers to be enabled (on by default)false
.dr.excludeClustersUser-specified list of clusters not part of XDCR[ ]
.dr.forceDropIndicate if you want to drop cluster from XDCR without producer drain.false
​.elasticRemove​.checkIntervalTime in seconds to wait between checks of the status of an ongoing elastic remove operation. A value of 10 seconds or more is recommended to let other workflows be executed by the operator10
.elasticRemove.ignoreCan be set to disabled_export to force ignoring the disabled exports, since elastic remove waits for all exports to be drained prior to removing the nodes``
.elasticRemove.restartRequests the restart of an elastic remove operation currently in the FAILED state. Value must be nonzero and also different from the last value used for restart0
​.elasticRemove​.shutdownDelaySpecifies the number of minutes to wait before shutting down the nodes being removed. Must be greater than 0 if topics are being used, otherwise the elastic remove fails0
.elasticRemove.updateRequests an update of the parameters of an ongoing elastic remove operation, e.g. ignore or shutdownDelay. Value must be nonzero and also different from the last value used for update0
.elasticResetRequests a reset of the elastic remove information in the cluster status. Reserved for VoltDB support. Value must be nonzero and also different from the last value used for reset0
.enableInServiceUpgradeEnable rolling upgrade of software version rather than requiring full cluster restart (V13.1.0 or later).false
.env.VOLTDB_GC_OPTSVoltDB cluster java runtime garbage collector options (VOLTDB_GC_OPTS)""
.env.VOLTDB_HEAPCOMMITCommit VoltDB cluster heap at startup, true/false (VOLTDB_HEAPCOMMIT)""
.env.VOLTDB_HEAPMAXVoltDB cluster heap size, integer number of megabytes (VOLTDB_HEAPMAX)""
.env.VOLTDB_OPTSVoltDB cluster additional java runtime options (VOLTDB_OPTS)""
​.env​.VOLTDB_REGION_LABEL_NAMEOverride for region label on node""
​.env​.VOLTDB_ZONE_LABEL_NAMEOverride for zone label on node""
.forceStopNodeEnable or disable force stop node (V12.2 or later)false
.image.pullPolicyImage pull policyAlways
.image.registryImage registrydocker.io
.image.repositoryImage repositoryvoltdb/voltdb-enterprise
.image.tagImage tagSame as global.voltdbVersion
.inServiceUpgrade.delayFOR TESTING PURPOSES ONLY: Specifies the delay in seconds upgrading pods to new image.false
.initForceAlways init --force on VoltDB node start/restart. WARNING: This will destroy VoltDB data on PVCs except snapshots.false
.livenessProbe.enabledEnable/disable livenessProbe; see Kubernetes documentation for probe settingstrue
.maintenanceModeVoltDB Cluster maintenance mode (pause all nodes)false
.maxPodUnavailableMaximum pods allowed to be unavailable in Pod Disruption Budgetkfactor
.nodeSelectorNode labels for pod assignment{ }
​.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."/data/voltdb/"
.persistentVolume.sizePersistent Volume size per pod (VoltDB Node)32Gi
​.persistentVolume​.storageClassNameStorage Class name to use, otherwise use default""
.podSecurityContextPod security context defined by KubernetesSee file values.yaml
​.podTerminationGracePeriodSecondsDuration in seconds the pod needs to terminate gracefully.30
.priorityClassNamePod priority defined by an existing PriorityClass""
.readinessProbe.enabledEnable/disable readinessProbe; see Kubernetes documentation for probe settingstrue
.replicasPod (VoltDB Node) replica count; scaling to 0 will shutdown the cluster gracefully3
.resourcesCPU/Memory resource requests/limits{ }
.securityContextContainer security context defined by KubernetesSee file values.yaml
.ssl.certificateFilePEM-encoded certificate chain used by the operator to connect to VoltDB when TLS/SSL is enabled""
.ssl.insecureIf true, skip VoltDB certificate verification by the operator when TLS/SSL is enabledfalse
.startupProbe.enabledEnable/disable startupProbe; see Kubernetes documentation for probe settingstrue
.stoppedNodesUser-specified list of stopped VoltDB nodes, by pod ordinal (0, 1, ...)[ ]
.storageConfigsOptional storage configs for provisioning additional persistent volume claims automatically[ ]
.takeSnapshotOnShutdownTakes a snapshot when cluster is shut down by scaling to 0. One of: NoCommandLogging, Always, Never. NoCommandLogging means 'only if command logging is disabled'."NoCommandLogging"
.tolerationsPod tolerations for node assignment (see Kubernetes documentation)[ ]
​.topologySpreadConstraintsDescribes how a group of pods ought to spread across topology (see Kubernetes documentation)[ ]
​.useCloudNativePlacementGroupEnable or disable cloud native placement group in VoltDBfalse