nav-img
Advanced

Deploying an Application Through the Helm v2 Client

Prerequisites

The Kubernetes cluster created on CCE has been connected to kubectl. For details, see Procedure.

Installing Helm v2

This section uses Helm v2.17.0 as an example.

For other versions, visit https://github.com/helm/helm/releases.

  1. Download the Helm client from the VM connected to the cluster.

    wget https://get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz

  2. Decompress the Helm package.

    tar -xzvf helm-v2.17.0-linux-amd64.tar.gz

  3. Copy Helm to the system path, for example, /usr/local/bin/helm.

    mv linux-amd64/helm /usr/local/bin/helm

  4. RBAC is enabled on the Kubernetes API server. Create the service account name tiller for the tiller and assign cluster-admin, a system ClusterRole, to the tiller. Create a tiller resource account as follows:

    vim tiller-rbac.yaml

    File content:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: tiller
    namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
    name: tiller
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: cluster-admin
    subjects:
    - kind: ServiceAccount
    name: tiller
    namespace: kube-system

  5. Deploy the tiller resource account.

    kubectl apply -f tiller-rbac.yaml

  6. Initialize the Helm and deploy the pod of tiller.

    helm init --service-account tiller --skip-refresh

  7. Query the status.

    kubectl get pod -n kube-system -l app=helm

    Command output:

    NAME READY STATUS RESTARTS AGE
    tiller-deploy-7b56c8dfb7-fxk5g 1/1 Running 1 23h

  8. Query the Helm version.

    helm version

    Command output:

    Client: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}

Installing the Helm Chart

If the charts provided by CCE do not meet requirements, download a chart and install it.

You can obtain the required chart in the stable directory at https://github.com/helm/charts, download the chart, and upload it to the node.

  1. Download and decompress the obtained chart. Generally, the chart is in ZIP format.
    unzip chart.zip
  2. Install the Helm chart.
    helm install aerospike/
  3. After the installation is complete, run the helm list command to check the status of the chart releases.

Common Issues

  • The following error message is displayed after the Helm version command is executed:
    Client:
    &version.Version{SemVer:"v2.17.0",
    GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
    E0718 11:46:10.132102 7023 portforward.go:332] an error occurred
    forwarding 41458 -> 44134: error forwarding port 44134 to pod
    d566b78f997eea6c4b1c0322b34ce8052c6c2001e8edff243647748464cd7919, uid : unable
    to do port forwarding: socat not found.
    Error: cannot connect to Tiller

    The preceding information is displayed because the socat is not installed. Run the following command to install the socat:

    yum install socat -y
  • Socat has been installed. When you check the Helm version, the error message "Error: cannot connect to Tiller" is displayed.
    helm version

    Error information:

    Client: &version.Version{SemVer:"v3.3.0", GitCommit:"021cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}
    Error: cannot connect to Tiller

    The Helm chart reads the configuration certificate in .Kube/config and communicates with Kubernetes. The preceding error indicates that the kubectl configuration is incorrect. In this case, reconnect the cluster to kubectl. For details, see Procedure.

  • Storage fails to be created after you have connected to cloud storage services.

    This issue may be caused by the annotation field in the created PVC. Change the chart name and install the chart again.

  • If kubectl is not properly configured, the error message "Error: Kubernetes cluster unreachable..." will be displayed when you install Helm.

    Example:

    helm install prometheus/ --generate-name

    Error information:

    WARNING: This chart is deprecated
    Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version?timeout=32s": dial tcp [::1]:8080: connect: connection refused

    Solution: Configure kubeconfig for the node. For details, see Procedure.