Helm simplifies the definition, installation, and update of applications. This makes application management in Kubernetes clusters more efficient and convenient. Container Compute Service (ACS) integrates Helm in its application directory management feature. Helm in ACS extends features to provide regular third-party applications, such as Spark and Dify.
Introduction to Helm
Helm is an open source tool that is used to manage applications in Kubernetes clusters. Helm provides a unified method to package software and manage software versions. You can use Helm to simplify the deployment and management of Kubernetes applications. The following table describes the basic concepts of Helm. For more information, see Helm.
Name | Description |
Chart | A packaging format used by Helm. Each chart contains the images, dependencies, and resource definitions that are required to run an application. A chart may contain service definitions used in a Kubernetes cluster. A Helm chart is similar to a Homebrew formula, an Advanced Package Tool (APT) dpkg, or a Yum rpm. |
Release | An instance of a chart that runs in a Kubernetes cluster. A chart can be installed multiple times in a Kubernetes cluster. After a chart is installed, a new release is created. For example, if you want to use a MySQL chart to run two databases on a server, you can install the chart twice and generate a release and a release name each time you install the chart. |
Repository | A repository is used to store charts. The Helm client can access the index file and packaged charts in a chart repository over HTTP. |
Helm CLI | The Helm command-line tool. For more information about how to install Helm CLI, see Installing Helm. |
Use the ACS repository to deploy applications
ACS provides a repository that contains regular applications, such as Spark. You can access the repository provided by ACS in the console or by using Helm CLI.
Use the console
Log on to the ACS console. In the left-side navigation pane, click Clusters.
On the Clusters page, find the cluster that you want to manage and click its ID. In the left-side navigation pane of the cluster details page, choose .
In the upper-left corner of the Helm page, click Deploy.
The following table describes how to configure the basic information. After you configure the information, click Next.
Parameter
Description
Example
Application Name
The name of the release in the cluster.
demo-app
Namespace
The namespace in which the release is deployed.
default
Source
The source of the chart.
Marketplace:Application marketplace
ACR EE: Container Registry Enterprise Edition
Marketplace
Chart
The chart used to install the application.
ack-dify
Select a chart version, modify the chart content, and then click OK.
NoteAfter the release is installed, you can manage the installed applications in the console. For more information, see Use Helm to manage applications in ACS.
Use Helm CLI
Install and configure kubectl and Helm CLI on your on-premises device, and then connect to the cluster. For more information, see Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster and Install Helm.
NoteWhen you use CloudShell to connect to a cluster, Helm CLI is pre-installed on the device. You do not need to manually install Helm CLI. For more information, see Use kubectl on Cloud Shell to manage ACK clusters.
Add the ACS repository named aliyunhub to the list of Helm repositories.
helm repo add aliyunhub https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/Expected output:
"aliyunhub" has been added to your repositoriesUpdate information about aliyunhub.
helm repo update aliyunhubExpected output:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "aliyunhub" chart repository Update Complete. ⎈Happy Helming!⎈View the chart in the repository.
helm search repo aliyunhubExpected output:
NAME CHART VERSION APP VERSION DESCRIPTION aliyunhub/ack-acr-acceleration-p2p 0.3.6 0.3.6 Speed Up Container Startup on ACK aliyunhub/ack-acr-acceleration-suite 0.2.8 0.2.8 Speed Up Container Startup on ACK aliyunhub/ack-advanced-audit 0.5.0 0.5.0 Kubernetes advanced audit aliyunhub/ack-advanced-horizontal-pod-autoscaler 0.1.0 1.0 A Helm chart for Kubernetes aliyunhub/ack-aegis-installer 0.1.1 Install Aegis in Alibaba Cloud Kubernetes cluster. aliyunhub/ack-agones 1.23.0 1.23.0 a library for hosting, running and scaling dedi... aliyunhub/ack-ags-wdl 1.1.0 1.16.0 A Helm chart for AGS to support WDL language. aliyunhub/ack-ahas-pilot 1.17.2 1.17.2 A cloud service that aims to improve the high a... aliyunhub/ack-ahas-sentinel-pilot 0.3.0 0.3.0 AHAS Sentinel Pilot - Webhook Admission Controller aliyunhub/ack-ahas-springcloud-gateway 0.1.1 0.1.1 Spring Cloud Gateway with AHAS Sentinel integra... aliyunhub/ack-ai-dashboard 1.0.15 1.0.0 ai-dashboard for Kube-AI aliyunhub/ack-ai-dev-console 1.2.1 1.2.1 ack-ai-dev-console of KubeAI aliyunhub/ack-ai-installer 1.9.15 1.9.15 a toolkit for scheduling computing resources in... aliyunhub/ack-ai-pipeline 1.0.4 1.0.4 ack-ai-pipeline of KubeAI aliyunhub/ack-alibaba-cloud-metrics-adapter 1.3.4 0.1.5 An implementation of the Kubernetes Custom Metr... aliyunhub/ack-amd-device-plugin 1.0.0 1.0.0 A Helm chart for deploying ack-amd-device-plugin aliyunhub/ack-amd-smi-exporter 1.0.0 1.0.0 A Helm chart for deploying ack-amd-smi-exporter aliyunhub/ack-application-acceleration 1.1.0 1.1.0 Reduce application startup time on ACK aliyunhub/ack-arena 0.9.16 0.9.16 Running Deep Learning Containers on ACK aliyunhub/ack-arena-exporter 0.5.0 0.5.0 A Helm chart for deploying arena-exporter aliyunhub/ack-arms-cmonitor 4.1.2 4.1.2 ARMS Container Monitor aliyunhub/ack-arms-pilot 1.52.4 1.52.4 ARMS Pilot - deprecated aliyunhub/ack-arms-prometheus 1.1.25 4.2.0 ARMS Prometheus Operator aliyunhub/ack-arms-vector 1.0.2 1.0.0 ARMS Prometheus Vector aliyunhub/ack-autoscaling-placeholder 1.1.0 1.1 Installs the a deployment that overprovisions t... aliyunhub/ack-blazing-dns 2.0.0 2.0.0 BlazingDNS speeds up DNS. aliyunhub/ack-celeborn 0.1.0 Apache Celeborn is an intermediate data service... aliyunhub/ack-cgpu 1.5.2 1.5.2 A GPU sharing and isolation solution on Kuberne... aliyunhub/ack-coredns-dnstap-analyser 0.1.0 v0.4.0.0 A dnstap receiver and analyser for CoreDNS dnst... aliyunhub/ack-cost-exporter 1.0.17 0.1 export cost metrics of cloud resources aliyunhub/ack-descheduler 0.27.1 0.27.1 ACK descheduler for Kubernetes is used to rebal... aliyunhub/ack-dify 0.1.7 0.8.3 Helm chart for deploying dify resources. aliyunhub/ack-edge-acr-acceleration-p2p 0.2.2 0.2.2 Speed Up Container Startup on ACK aliyunhub/ack-edge-arms-prometheus 0.1.5 1.0.5 ARMS Prometheus Operator aliyunhub/ack-edge-nas-csiplugin 1.1.0 v1 this chart provides nas csi driver for ack@edge. aliyunhub/ack-edge-node-problem-detector 1.2.0 0.8.0 this chart aims to make various node problems ... ...In this example, Spark 3.0 is used to deploy the application.
NoteThe following commands are only for reference. Modify the commands based on the region and your business requirements when you deploy applications.
helm install spark aliyunhub/ack-spark-operator3.0 \ --namespace spark-operator \ --create-namespace \ --set image.repository=registry-cn-shanghai-vpc.ack.aliyuncs.com/acs/spark-operatorExpected output:
NAME: spark LAST DEPLOYED: * * ****** 2024 NAMESPACE: spark-operator STATUS: deployed REVISION: 1 TEST SUITE: None
Use a third-party chart repository to deploy applications by using Helm CLI
If the charts provided by ACS cannot meet your requirements, you can use third-party charts to deploy applications.
helm repo add <REPO_NAME> <REPO_URL> # Add a chart repository. Replace REPO_NAME with the name of the chart repository. Replace REPO_URL with the address of the chart repository.
helm repo update # Update repository information.
helm install <APP_NAME> <REPO_NAME>/<CHART_NAME> # Install the application. Replace APP_NAME with the name of an application and CHART_NAME with the name of a chart.For more information about Helm commands, see Using Helm.