VoltDB Kubernetes Administrator's Guide

Documentation

VoltDB Home » Documentation » VoltDB Kubernetes Administrator's Guide

VoltDB Kubernetes Administrator's Guide

V11.4

The text and illustrations in this document are licensed under the terms of the GNU Affero General Public License Version 3 as published by the Free Software Foundation. See the GNU Affero General Public License (http://www.gnu.org/licenses/) for more details.

Many of the core VoltDB database features described herein are part of the VoltDB Community Edition, which is licensed under the GNU Affero Public License 3 as published by the Free Software Foundation. Other features are specific to the VoltDB Enterprise Edition and VoltDB Pro, which are distributed by Volt Active Data, Inc. under a commercial license.

The VoltDB client libraries, for accessing VoltDB databases programmatically, are licensed separately under the MIT license.

Your rights to access and use VoltDB features described herein are defined by the license you received when you acquired the software.

VoltDB is a trademark of Volt Active Data, Inc.

VoltDB software is protected by U.S. Patent Nos. 9,600,514, 9,639,571, 10,067,999, 10,176,240, and 10,268,707. Other patents pending.

Abstract

This book explains how to create and manage VoltDB database clusters using Kubernetes.


Table of Contents

Preface
1. Structure of This Book
2. Related Documents
1. Introduction
1.1. Overview: Running VoltDB in Kubernetes
1.2. Setting Up Your Kubernetes Environment
1.2.1. Product Requirements
1.2.2. Configuring the Host Environment and Accounts
1.2.3. Configuring the Client
1.2.4. Granting Kubernetes Access to the Docker Repository
2. Configuring the VoltDB Database Cluster
2.1. Using Helm Properties
2.2. Configuring the Cluster and Database
2.2.1. Configuring the Cluster
2.2.2. Configuring the Database
2.2.3. Configuring Logging
3. Managing VoltDB Databases in Kubernetes
3.1. Managing the Cluster Using kubectl and helm
3.2. Managing the Database Using voltadmin and sqlcmd
3.2.1. Accessing the Database Interactively
3.2.2. Accessing the Database Programmatically
4. Starting and Stopping the Database
4.1. Starting the Cluster for the First Time
4.2. Stopping and Restarting the Cluster
4.3. Resizing the Cluster with Elastic Scaling
4.4. Pausing and Resuming the Cluster
5. Updates and Upgrades
5.1. Updating the Database Schema
5.2. Updating the Database Configuration
5.2.1. Changing Database Properties on the Running Database
5.2.2. Changing Database Properties That Require a Restart
5.2.3. Changing Cluster Properties
5.3. Updating TLS Security Certificates
5.4. Upgrading the VoltDB Software and Helm Charts
5.4.1. Updating Your Helm Repository
5.4.2. Updating the Custom Resource Definition (CRD)
5.4.3. Upgrading the VoltDB Operator and Software
5.4.4. Updating VoltDB for XDCR Clusters
6. Monitoring VoltDB Databases in Kubernetes
6.1. Using Prometheus to Monitor VoltDB
7. Cross Datacenter Replication in Kubernetes
7.1. Requirements for XDCR in Kubernetes
7.2. Choosing How to Establish a Network Mesh
7.3. Common XDCR Properties
7.4. Configuring XDCR in Local Namespaces
7.5. Configuring XDCR Using Load Balancers
7.5.1. Separate Load Balancers For Each Node (cluster.serviceSpec.perpod)
7.5.2. Single Load Balancer For Discovery with Virtual Networking Peering (cluster.serviceSpec.dr)
7.6. Configuring XDCR Using Node Ports for Replication
7.7. Configuring XDCR Using Network Services
8. Managing XDCR Clusters in Kubernetes
8.1. Removing a Cluster Temporarily
8.2. Removing a Cluster Permanently
8.3. Resetting XDCR When a Cluster Leaves Unexpectedly
8.4. Rejoining an XDCR Cluster That Was Previously Removed
A. VoltDB Helm Properties
A.1. How to Use the Properties
A.2. Top-Level Kubernetes Options
A.3. Kubernetes Cluster Startup Options
A.4. Network Options
A.5. VoltDB Database Startup Options
A.6. VoltDB Database Configuration Options
A.7. Metrics Configuration Options

List of Figures

1.1. Kubernetes/VoltDB Architecture