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.

Illustration of Highly Available TimescaleDB without backups to S3

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.

Highly Available TimescaleDB with backups to S3

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 Nodesusing 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.

Multi-node TimescaleDB on Kubernetes

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.