Documentation

Deploy your InfluxDB cluster

Limited availability

InfluxDB Clustered is currently only available to a limited group of InfluxData customers. If interested in being part of the limited access group, please contact the InfluxData Sales team.

Use Kubernetes and related tools to deploy your InfluxDB cluster. This guide provides instructions for deploying your InfluxDB cluster using the following tools:

  • kubectl: CLI for controlling the Kubernetes cluster manager
  • kubit: A Kubernetes controller that can render and apply jsonnet templates based on the kubecfg jsonnet tooling and framework

InfluxDB Clustered uses an AppInstance Kubernetes custom resource (CR) to configure and deploy your InfluxDB Cluster. Installing a CustomResourceDefinition (CRD) requires cluster-wide permissions and may cause kubectl to fail if you do not have those permissions in your cluster.

kubectl uses your local credentials to install the AppInstance CRD. If you do not have the necessary permissions, you can use the kubit CLI to manually install the package in your cluster.

If you meet any of the following criteria, install and use the kubit CLI on your local machine. This allows you to act as the operator would and deploy your cluster, but from your terminal.

  • You do not have permissions to install a CRD.
  • You do not have permissions to install the operator in the kubit namespace.
  • You do not have permissions to create cluster-wide role-based access control (RBAC).
  • You want to preview the generated YAML.
  • You do not want to run the operator in your Kubernetes cluster.

Use the kubectl apply command to apply your custom-configured myinfluxdb.yml and deploy your InfluxDB cluster:

kubectl apply \
  --filename myinfluxdb.yml \
  --namespace influxdb
  1. Install the kubit CLI and related tools on your local machine.

  2. Use the kubit local apply command to apply your custom-configured myinfluxdb.yml and deploy your InfluxDB Cluster. Set the DOCKER_CONFIG environment variable to the directory path of your InfluxDB Clustered pull secret credentials provided by InfluxData.

    DOCKER_CONFIG=/path/to/pullsecrets kubit local apply myinfuxdb.yml
    

NOTE: By default, kubit will use tools that are installed on your local system. You can specify the --docker flag to opt-in to using containers instead. This will pull images for tool dependencies, meaning the required versions are tracked by kubit.

Check deployment status

Kubernetes deployments take some time to complete. To check on the status of a deployment, use the kubectl get command:

The following example uses the yq command-line YAML parser to parse and format the YAML output. You can also specify the output as json and use the jq command-line JSON parser to parse and format the JSON output. Installing and using either of these utilities is optional.

kubectl get \
  --filename myinfluxdb.yml \
  --output yaml | yq -P .status.conditions

The status field in the output contains two useful fields:

  • conditions: Summary of the current state of the deployment
  • lastLogs: Verbose logs of deployment stages

For example, if you have incorrect container registry credentials, the output is similar to the following:

- lastTransitionTime: '2023-08-18T12:53:54Z'
  message: ''
  observedGeneration: null
  reason: Failed
  status: 'False'
  type: Reconcilier
- lastTransitionTime: '2023-08-18T12:53:54Z'
  message: |
    Cannot launch installation job: OCI error: Authentication failure: {"errors":[{"code":"UNAUTHORIZED","message":"authentication failed"}]}    
  observedGeneration: null
  reason: Failed
  status: 'False'
  type: Ready

Inspect cluster pods

After deploying your InfluxDB cluster, use the following command to list all the deployed pods:

kubectl get pods --namespace influxdb

This command returns a collection of pods similar to the following:

NAMESPACE     NAME                                      READY   STATUS      RESTARTS       AGE
influxdb      minio-0                                   2/2     Running     2 (101s ago)   114s
influxdb      catalog-db-0                              2/2     Running     0              114s
influxdb      keycloak-b89bc7b77-zpt2r                  1/1     Running     0              114s
influxdb      debug-service-548749c554-m4sxk            1/1     Running     0              91s
influxdb      token-gen-56a2e859-zlvnw                  0/1     Completed   0              91s
influxdb      database-management-579bfb9fcb-dw5sv      1/1     Running     0              91s
influxdb      database-management-579bfb9fcb-22qgm      1/1     Running     0              91s
influxdb      authz-59f456795b-qt52p                    1/1     Running     0              91s
influxdb      account-df457db78-j9z6f                   1/1     Running     0              91s
influxdb      authz-59f456795b-ldvmt                    1/1     Running     0              91s
influxdb      account-df457db78-8ds4f                   1/1     Running     0              91s
influxdb      token-management-754d966555-fmkbk         1/1     Running     0              90s
influxdb      token-management-754d966555-rbvtv         1/1     Running     0              90s
influxdb      global-gc-7db9b7cb4-ml6wd                 1/1     Running     0              91s
influxdb      iox-shared-compactor-0                    1/1     Running     1 (62s ago)    91s
influxdb      iox-shared-ingester-0                     1/1     Running     1 (62s ago)    91s
influxdb      iox-shared-ingester-1                     1/1     Running     1 (62s ago)    91s
influxdb      iox-shared-ingester-2                     1/1     Running     1 (62s ago)    91s
influxdb      global-router-86cf6b869b-56skm            3/3     Running     1 (62s ago)    90s
influxdb      iox-shared-querier-7f5998b9b-fpt62        4/4     Running     1 (62s ago)    90s
influxdb      kubit-apply-influxdb-g6qpx                0/1     Completed   0              8s

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Flux is going into maintenance mode and will not be supported in InfluxDB 3.0. This was a decision based on the broad demand for SQL and the continued growth and adoption of InfluxQL. We are continuing to support Flux for users in 1.x and 2.x so you can continue using it with no changes to your code. If you are interested in transitioning to InfluxDB 3.0 and want to future-proof your code, we suggest using InfluxQL.

For information about the future of Flux, see the following: