Helm は、アプリケーションの定義、インストール、および更新を簡素化します。これにより、Kubernetes クラスターでのアプリケーション管理がより効率的かつ便利になります。Container Compute Service (ACS) は、アプリケーションディレクトリ管理機能に Helm を統合しています。ACK の Helm は機能を拡張し、Spark や Dify などの一般的なサードパーティアプリケーションを提供します。
Helm の概要
Helm は、Kubernetes クラスター内のアプリケーションを管理するために使用されるオープンソースツールです。 Helm は、ソフトウェアをパッケージ化し、ソフトウェアバージョンを管理するための統一された方法を提供します。 Helm を使用すると、Kubernetes アプリケーションのデプロイと管理を簡素化できます。次の表に、Helm の基本的な概念を示します。詳細については、「Helm」をご参照ください。
名称 | 説明 |
Chart | Helm で使用されるパッケージング形式。各 Chart には、アプリケーションを実行するために必要なイメージ、依存関係、およびリソース定義が含まれています。Chart には、Kubernetes クラスターで使用されるサービス定義が含まれている場合があります。Helm Chart は、Homebrew formula、Advanced Package Tool (APT) dpkg、または Yum rpm に似ています。 |
Release | Kubernetes クラスターで実行されている Chart のインスタンス。1 つの Chart を Kubernetes クラスターに複数回インストールできます。Chart をインストールすると、新しい Release が作成されます。たとえば、MySQL Chart を使用してサーバー上で 2 つのデータベースを実行する場合、Chart を 2 回インストールし、Chart をインストールするたびに Release と Release 名を生成できます。 |
Repository | リポジトリは、Chart を格納するために使用されます。Helm クライアントは、HTTP 経由で Chart リポジトリ内のインデックスファイルおよびパッケージ化された Chart にアクセスできます。 |
Helm CLI | Helm コマンドラインツール。 Helm CLI のインストール方法の詳細については、「Helm のインストール」をご参照ください。 |
ACK リポジトリを使用してアプリケーションをデプロイする
ACS は、Spark などの一般的なアプリケーションを含むリポジトリを提供しています。コンソールまたは Helm CLI を使用して、ACK が提供するリポジトリにアクセスできます。
コンソールの使用
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションウィンドウで、
を選択します。[Helm] ページの左上隅にある [デプロイ] をクリックします。
次の表では、基本情報の構成方法について説明します。情報を構成した後、次へ をクリックします。
パラメーター
説明
例
アプリケーション名
クラスター内の Release の名前。
demo-app
名前空間
Release がデプロイされる名前空間。
default
発生元
Chart のソース。
[マーケットプレイス]: アプリケーションマーケットプレイス
Acr ee: Container Registry Enterprise Edition
[マーケットプレイス]
[Chart]
アプリケーションのインストールに使用する Chart。
ack-dify
Chart のバージョンを選択し、Chart のコンテンツを変更してから、OK をクリックします。
説明Release がインストールされた後、コンソールでインストール済みのアプリケーションを管理できます。詳細については、「ACK で Helm を使用してアプリケーションを管理する」をご参照ください。
Helm CLI の使用
オンプレミスデバイスに kubectl と Helm CLI をインストールして構成し、クラスターに接続します。詳細については、「クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続する」および「Helm のインストール」をご参照ください。
説明CloudShell を使用してクラスターに接続する場合、Helm CLI はデバイスにプリインストールされています。 Helm CLI を手動でインストールする必要はありません。詳細については、「Cloud Shell で kubectl を使用して ACK クラスターを管理する」をご参照ください。
aliyunhub という名前の ACK リポジトリを Helm リポジトリのリストに追加します。
helm repo add aliyunhub https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
期待される出力:
"aliyunhub" has been added to your repositories
aliyunhub に関する情報を更新します。
helm repo update aliyunhub
期待される出力:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "aliyunhub" chart repository Update Complete. ⎈Happy Helming!⎈
リポジトリ内の Chart を表示します。
helm search repo aliyunhub
期待される出力:
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 ... ...
この例では、Spark 3.0 を使用してアプリケーションをデプロイします。
説明以下のコマンドは参考用です。アプリケーションをデプロイする際は、リージョンとビジネス要件に基づいてコマンドを変更してください。
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-operator
期待される出力:
NAME: spark LAST DEPLOYED: * * ****** 2024 NAMESPACE: spark-operator STATUS: deployed REVISION: 1 TEST SUITE: None
Helm CLI を使用してサードパーティの Chart リポジトリからアプリケーションをデプロイする
ACK が提供する Chart が要件を満たしていない場合は、サードパーティの Chart を使用してアプリケーションをデプロイできます。
helm repo add <REPO_NAME> <REPO_URL> # Chart リポジトリを追加します。REPO_NAME は Chart リポジトリの名前に置き換えます。REPO_URL は Chart リポジトリのアドレスに置き換えます。
helm repo update # リポジトリ情報を更新します。
helm install <APP_NAME> <REPO_NAME>/<CHART_NAME> # アプリケーションをインストールします。APP_NAME はアプリケーションの名前に、CHART_NAME は Chart の名前に置き換えます。
Helm コマンドの詳細については、「Helm の使用」をご参照ください。