Helm simplifies the definition, installation, and upgrade of applications, making application management on Kubernetes clusters more efficient.Container Compute Service (ACS) integrates Helm into its Marketplace to offer popular third-party applications such as Spark and Dify.
Helm concepts
Helm is an open-source package manager for Kubernetes. It provides a standardized way to package applications and supports version control, which reduces the complexity of distributing and deploying applications. The following table describes the basic concepts of Helm. For more information, see the official Helm documentation.
|
Concept |
Description |
|
Chart |
A Helm package that contains all the necessary resources to run an application, such as the required images, dependencies, and resource definitions. It may also include service definitions for a Kubernetes cluster. A Chart is similar to a Homebrew formula, an APT dpkg file, or a Yum rpm file. |
|
Release |
An instance of a Chart running on a Kubernetes cluster. You can install the same Chart multiple times on the same cluster. Each installation creates a new Release with its own name. For example, if you want to run two databases on a cluster by using a MySQL Chart, you can install the Chart twice. Each installation generates a separate Release with a unique name. |
|
Repository |
A Chart repository. The Helm client accesses the index file and packaged Charts in a repository over HTTP. |
|
Helm CLI |
The Helm command-line tool. For installation instructions, see Installing Helm. |
Deploy from the ACK Repository
ACS provides a Repository that includes common applications such as Apache Spark. You can use the ACK Repository using the console or the Helm CLI.
Console
-
Log on to the ACS console. In the left navigation pane, click Clusters.
-
On the Clusters page, click the name of the target cluster. In the left navigation pane, choose .
-
On the Helm page, click Deploy in the upper-left corner.
-
Configure the basic information as described in the following table, and then click Next.
Parameter
Description
Example value
Application Name
The name of the Release in the cluster.
demo-app
Namespace
The namespace where the Release is deployed.
default
Source
The source of the Chart.
-
App Catalog: The application marketplace.
-
ACR EE: Container Registry Enterprise Edition (ACR EE).
App Catalog
Chart
The Chart to install.
ack-dify
-
-
Select a Chart version, configure the Chart's parameters as needed, and then click OK.
NoteAfter the Release is installed, you can manage the installed application from the console. For more information, see Manage applications in ACK by using Helm.
Helm CLI
-
Install and configure kubectl and the Helm CLI, 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.
NoteCloud Shell comes with the Helm CLI pre-installed, so you do not need to install it. For more information, see Use kubectl on Cloud Shell to manage Kubernetes clusters.
-
Add the ACK Repository to your Helm repositories and name it aliyunhub.
helm repo add aliyunhub https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/Expected output:
"aliyunhub" has been added to your repositories -
Update the aliyunhub repository index.
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!⎈ -
List the Charts 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 ... ... -
Deploy Apache Spark 3.0 as an example.
NoteThe following command is an example. For production deployments, you might need to change values like the image repository URL to match your region.
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
Deploy from third-party repositories
If the Charts in the ACK Repository do not meet your requirements, you can use a third-party repository to deploy applications.
helm repo add <REPO_NAME> <REPO_URL> # Add a chart repository.
helm repo update # Update repository information.
helm install <APP_NAME> <REPO_NAME>/<CHART_NAME> # Install a chart.
For more information about Helm commands, see Using Helm.