Volt Active Data provides a number of diagnostic tools to assist in managing and troubleshooting VoltDB databases. On Kubernetes, some of these tools are available with additional automation in a separately installable diagnostics pod. You can start the diagnostics pod using Helm, then create a terminal session (using kubectl exec) and run the individual tools from the command line. This appendix explains how to start and stop the pod and how to use the individual tools provided.
You start the diagnostics pod using Helm in the same way you start a VoltDB database. First make sure you have the latest Volt Active Data Helm charts by doing a helm repo update:
$ helm repo update
Next, start the pod with the helm install command. The diagnostics pod is independent of the Volt database and the Operator. So it does not matter whether you start the tools pod before or after the database. For example, the following command starts the diagnostics pod using the volt-diagnostics chart to create a release called volt-tools:
$ helm install volt-tools voltdb/volt-diagnostics
The diagnostics helm chart does not create a deployment resource, it only creates the temporary pod. This approach has several benefits:
The pod is consistently named using the release name plus the suffix -volt-diagnostics.
The pod is not automatically rescheduled if Kubernetes stops it, which can be beneficial if your cluster runs low on resources.
When you have finished using the diagnostics pod, you can remove it by simply uninstalling it. For example, the following command deletes the diagnostics pod, volt-tools, created in the previous example:
$ helm uninstall volt-tools
The only writable space on the diagnostics pod itself is the /tmp
directory. If you need more
space for collecting cluster data (for example, when using the collect command) we encourage you to
attach persistent storage. You can attach additional storage in two ways:
If you already have defined a PersistentVolumeClaim (PVC), set the diagnostics.pvc.claimName
property pointing to the PVC:
$ helm install volt-tools voltdb/volt-diagnostics \ --set diagnostics.pvc.claimName=tooloutput
If no PVC is defined, but there is a existing Storage Class, you can use the
diagnostics.pvc.storage.className
property and a PVC will be created for you when the diagnostics
pod starts:
$ helm install volt-tools voltdb/volt-diagnostics \ --set diagnostics.pvc.storage.className=standard
Attaching a PVC to the diagnostics pod provides an additional writeable target for the output of the diagnostics tools, collect and sqlcmd. Use the output qualifiers, --outdir and --output-file respectively, to save output to the PVC.
If the cluster being analyzed has security enabled using TLS/SSL, the diagnostics pod must provide the necessary key
information to establish connection to the cluster. The tools themselves also connect to VoltDB cluster so must be aware
of the TLS/SSL settings. You can configure this information when you start the pod using the
diagnostics.ssl.*
properties. For example:
$ helm install volt-tools voltdb/volt-diagnostics \ --set-file diagnostics.ssl.truststore.file=mytrust.jks \ --set diagnostics.ssl.truststore.password=mySSLpassword
Note that the password is optional. Once TLS is configured for the diagnostics pod, those secrity settings are used automatically when invoking the diagnostics tools from within the pod.