Appendix A. Volt Diagnostics Tools

Documentation

VoltDB Home » Documentation » VoltDB Kubernetes Administrator's Guide

Appendix A. Volt Diagnostics Tools

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.

A.1. Starting and Stopping the Diagnostics Pod

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

A.1.1. Using the Diagnostics Pod With a Persistent Volume (PV)

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.

A.1.2. Using the Diagnostic Tools Securely with TLS/SSL

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.