100 lines
3.9 KiB
Markdown
100 lines
3.9 KiB
Markdown
# InfluxDB
|
|
|
|
## An Open-Source Time Series Database
|
|
|
|
[InfluxDB](https://github.com/influxdata/influxdb) is an open source time series database built by the folks over at [InfluxData](https://influxdata.com) with no external dependencies. It's useful for recording metrics, events, and performing analytics.
|
|
|
|
## QuickStart
|
|
|
|
```bash
|
|
$ helm install stable/influxdb --name foo --namespace bar
|
|
```
|
|
|
|
## Introduction
|
|
|
|
This chart bootstraps an InfluxDB deployment and service on a Kubernetes cluster using the Helm Package manager.
|
|
|
|
## Prerequisites
|
|
|
|
- Kubernetes 1.4+
|
|
- PV provisioner support in the underlying infrastructure (optional)
|
|
|
|
## Installing the Chart
|
|
|
|
To install the chart with the release name `my-release`:
|
|
|
|
```bash
|
|
$ helm install --name my-release stable/influxdb
|
|
```
|
|
|
|
The command deploys InfluxDB on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
|
|
|
|
> **Tip**: List all releases using `helm list`
|
|
|
|
## Uninstalling the Chart
|
|
|
|
To uninstall/delete the `my-release` deployment:
|
|
|
|
```bash
|
|
$ helm delete my-release --purge
|
|
```
|
|
|
|
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
|
|
|
## Configuration
|
|
|
|
The default configuration values for this chart are listed in `values.yaml`.
|
|
|
|
The [full image documentation](https://hub.docker.com/_/influxdb/) contains more information about running InfluxDB in docker.
|
|
|
|
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
|
|
|
```bash
|
|
$ helm install --name my-release \
|
|
--set persistence.enabled=true,persistence.size=200Gi \
|
|
stable/influxdb
|
|
```
|
|
|
|
The above command enables persistence and changes the size of the requested data volume to 200GB.
|
|
|
|
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
|
|
|
|
```bash
|
|
$ helm install --name my-release -f values.yaml stable/influxdb
|
|
```
|
|
|
|
> **Tip**: You can use the default [values.yaml](values.yaml)
|
|
|
|
### InfluxDB Watcher Configuration
|
|
|
|
Parameter | Description | Default
|
|
--------- | ----------- | -------
|
|
`watcher.enabled` | InfluxDB watcher enabled flag | `false`
|
|
`watcher.image.repository` | InfluxDB watcher container image repository | `monasca/influxdb-watcher`
|
|
`watcher.image.tag` | InfluxDB watcher container image tag | `latest`
|
|
`watcher.image.pullPolicy` | InfluxDB watcher container image pull policy | `IfNotPresent`
|
|
`watcher.address` | InfluxDB service address | `http://localhost:8086`
|
|
`watcher.username` | InfluxDB username with read/write privileges | `influxdb_watcher`
|
|
`watcher.password` | InfluxDB password | `password`
|
|
`watcher.database` | InfluxDB database | `mon`
|
|
`watcher.watcher_period` | InfluxDB watcher period | `600`
|
|
`watcher.watcher_timeout` | InfluxDB watcher read/write timeout | `60`
|
|
`watcher.stay_alive_on_failure` | If `true`, watcher container stays alive for 2 hours after watcher exits | `false`
|
|
`watcher.port` | InfluxDB watcher port to expose Promethues metrics on | `8080`
|
|
|
|
## Persistence
|
|
|
|
The [InfluxDB](https://hub.docker.com/_/influxdb/) image stores data in the `/var/lib/influxdb` directory in the container.
|
|
|
|
The chart mounts a [Persistent Volume](http://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning.
|
|
|
|
## Starting with authentication
|
|
|
|
In `values.yaml` change `.Values.config.http.auth_enabled` to `true`.
|
|
|
|
Influxdb requires also a user to be set in order for authentication to be enforced. See more details [here](https://docs.influxdata.com/influxdb/v1.2/query_language/authentication_and_authorization/#set-up-authentication).
|
|
|
|
To handle this setup on startup, a job can be enabled in `values.yaml` by setting `.Values.setDefaultUser.enabled` to `true`.
|
|
|
|
Make sure to uncomment or configure the job settings after enabling it. If a password is not set, a random password will be generated.
|