Kubernetes is a container orchestration project that has become a popular way to deploy and manage containers across multiple servers and cloud providers.
This page is about using Kubernetes with the TICK stack and 1.x versions of InfluxDB.
To start experimenting with InfluxDB 2.0 and Kubernetes, go to the Kubernetes section of the Get Started page for InfluxDB 2.0.
There are several ways use the InfluxData Platform with Kubernetes:
- Monitor Kubernetes
- Deploy the TICK stack in Kubernetes
- Frequently asked questions
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.
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.
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.
InfluxData recommends using the Helm Stable repository for installing the TICK stack.
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.
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.