Kubernetes

Kubernetes is a container orchestration project that has become a popular way to deploy and manage containers across multiple servers and cloud providers.

InfluxDB Kubernetes Logos

There are several ways use the InfluxData Platform (also known as the TICK stack) with Kubernetes:

Monitor Kubernetes

The TICK stack is an easy and performant way to monitor the services that make up a Kubernetes cluster, whether or not you’re running InfluxDB in a Kubernetes cluster or somewhere else.

kube-influxdb Kubernetes monitoring project

The kube-influxdb project is a set of Helm charts to make collection and visualization of Kubernetes metrics easy. It uses Telegraf, the metrics collection agent, to collect metrics and events and includes a set of pre-configured Chronograf dashboards.

See the kube-influxdb Getting Started guide.

Collect Kubernetes metrics with Telegraf

The Telegraf metrics collection agent can collect many types of metrics in a Kubernetes cluster, like Docker container metrics and stats from kubelets. It can even scrape Prometheus metrics API endpoints. Telegraf is used in the kube-influxdb project to collect metrics.

See Set up a Kubernetes monitoring architecture using Telegraf.

Prometheus remote read and write support

InfluxDB supports the Prometheus remote read and write API for clusters already using Prometheus for metrics collection. See the FAQ for more information on why a more flexible time series data store is useful.

Read about Prometheus remote read and write API support in InfluxDB.

Deploy the TICK stack in Kubernetes

Instructions for installing and configuring all components of the open source TICK stack – Telegraf, InfluxDB, Chronograf, and Kapacitor in Kubernetes.

Note: Running InfluxDB in Kubernetes in production is not recommended. See the FAQ for more info.

Helm Charts

The TICK Charts repository provides a set of Helm charts to deploy every component of the InfluxData Platform in Kubernetes.

Learn how to deploy the InfluxData Platform using Helm Charts

K8s Operator

The InfluxData operator is a Kubernetes operator. The InfluxData operator can be used to deploy InfluxDB in Kubernetes and can handle operational tasks automatically, like creating a backup. The operator currently has been tested on AWS’s Elastic Kubernetes Service and GCP’s Google Kubernetes Engine.

Deploy InfluxDB using the InfluxData operator

Solutions for Kubernetes services

InfluxData maintains ways to deploy the InfluxData Platform components to popular Kubernetes service providers.

Frequently asked questions

How is the InfluxData Platform (TICK) different from Prometheus?

InfluxDB was purpose-built as a time series database. Overall, it is more flexible and can handle more use cases than Prometheus alone, such as irregular events and string data types.

Many InfluxDB users find it provides several advantages over Prometheus: - Handles event data that comes in at irregular intervals, e.g. structured logs, application events, and trace data. - Works well as a centralized long-term metrics store for federated Prometheus servers in multiple clusters.

Should I run InfluxDB in Kubernetes?

While Kubernetes is rapidly becoming a stable deployment platform for stateful applications, it still introduces significant complexity and few benefits for database workloads.

Therefore, we do not currently recommend running InfluxDB or InfluxDB Enterprise on Kubernetes in production. While many users have managed to run the databases in Kubernetes successfully, many InfluxDB users have also experienced issues including significant downtime and even loss of data due to Kubernetes rescheduling pods or problems with mounted volumes.

InfluxData provides several ways to deploy InfluxDB in Kubernetes, which should be considered experimental and not for use in production. We suggest exploring the Terraform InfluxDB module for a declarative way to deploy InfluxDB for production use.

Note: The other InfluxData Platform components (Telegraf, Chronograf, Kapacitor) run well on Kubernetes. The above recommendation only applies to the database.

This documentation is open source. See a typo? Please, open an issue.

Need help getting up and running? Get Support