Skip to main content

Helm Deployment

Helm is a package manager for Kubernetes that simplifies the deployment, configuration, and management of Kubernetes applications. This guide introduces how to deploy the TDengine IDMP service on Kubernetes using a Helm Chart.

Prerequisites

  1. Install Kubernetes v1.24 or later.
  2. Install Helm 3.
  3. (Optional) To persist data, configure a PersistentVolume.

Install Helm

Run the following command to install Helm:

curl -fsSL -o get_helm.sh \
https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod +x get_helm.sh
./get_helm.sh

Obtain the TDengine IDMP Helm chart

git clone https://github.com/taosdata/tdengine-idmp-deployment.git
cd tdengine-idmp-deployment/helm

Install TDengine IDMP

info
  • To install TDengine TSDB-Enterprise, refer to the following document: Deploy TDengine with Helm
  • To configure the base path for the gateway reverse proxy, you first need to explicitly specify this base path by setting the TDA_REST_BASE_PATH environment variable. Meanwhile, the gateway side needs to complete two configurations: 1. Configure the routing forwarding rule pointing to http://<target address>/idmp_config; 2. Configure the path rewriting rule to ensure that the aforementioned base path contained in the request URL is removed before forwarding the request to the backend service.

  1. Install TDengine IDMP with the Helm chart:

    cd tdengine-idmp-deployment/helm
    helm install tdengine-idmp .

    To use custom settings, you can specify a values file:

    helm install tdengine-idmp . -f my-values.yaml

    or command-line parameters:

    helm install tdengine-idmp . --set key=value

The Helm parameters used to deploy TDengine IDMP are described as follows: You can set these parameters on the command line or in a values file.

ParameterDescriptionDefault
replicaCountNumber of replicas1
image.repositoryImage repositorytdengine/idmp-ee
image.tagImage taglatest
image.pullPolicyImage pull policyIfNotPresent
service.typeKubernetes service typeClusterIP
service.portService port6042
resourcesResource requests and limits{}
persistence.enabledWhether persistence is enabledfalse
persistence.sizeSize of persistent volume2Gi
persistence.storageClassPersistent volume class""
nodeSelectorNode selector for pod allocation{}
tolerationsTolerance for pod allocation[]
affinityAffinity for pod allocation{}
  1. Access the service

    • ClusterIP (Default): Forward the port as follows:
    kubectl port-forward svc/tdengine-idmp 6042:6042 --address 0.0.0.0

    Then access localhost:6042 in a web browser.

    • NodePort:

      1. Obtain the node port and IP:

        kubectl get svc tdengine-idmp
        kubectl get nodes -o wide
      2. Access https://<ip>:<nodeport> in a browser.

    • LoadBalancer: Access the service through the external IP address provided by your cloud service provider.

  2. To configure persistent storage, add the following configuration to values.yml:

    persistence:
    enabled: true
    size: 2Gi

    Ensure that you have configured a PersistentVolume.

  3. Run the following command to uninstall TDengine IDMP:

    helm uninstall tdengine-idmp