TimescaleDB on Kubernetes
You can install a TimescaleDB instance on any Kubernetes deployment. Use the timescaledb-single
Helm chart to deploy a highly available TimescaleDB database, and the timescaledb-multinode
Helm chart to deploy a multi-node distributed TimescaleDB database.
High availability TimescaleDB
The timescaledb-single
Helm chart performs these actions:
- Creates three default Pods using Kubernetes StatefulSet.
- Creates each Pod that has a container using the TimescaleDB Docker image.
- Installs TimescaleDB 2.1 and PG 13.
- Creates containers that run a TimescaleDB instance and Patroni agent.
- Configures each TimescaleDB instance for replication with one master and two replicas.
When you deploy on AWS Elastic Kubernetes service the Pods are scheduled on nodes which run in different availability zones (AZs). An AWS Elastic load balancer (ELB) is configured to handle routing incoming traffic to the master Pod.
note
The backup to S3 is turned off by default. To configure backup location, credentials, schedules, and more, see the Administrator Guide.
When configured for backups to S3:
- Each Pod also includes a container running pgBackRest.
- Two cron jobs are created to handle full weekly and incremental daily backups.
- The backups are stored in an S3 bucket.
Multi-node distributed TimescaleDB
The timescaledb-multinode
Helm chart deploys a multinode TimescaleDB cluster that sets up:
- Creates s single TimescaleDB
Access Node
using Kubernetes StatefulSet. - Creates three Pods containing
Data Nodes
using another Kubernetes StatefulSet. - Creates each Pod that has a container using a Docker image which includes the TimescaleDB multi-node sources.
To add or remove nodes, change the dataNodes
parameter in the values.yaml
file. Do this before installing TimescaleDB from the timescaledb-multinode
Helm chart. For details about the parameters you can set, see the Administrator Guide.
When you deploy on AWS Elastic Kubernetes service, an AWS Elastic load balancer (ELB) is configured to handle routing incoming traffic to the access node.