すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Helm を使用したアプリケーションデプロイの簡素化

最終更新日:Nov 09, 2025

Helm は、ワークロード、サービス、Ingress などの Kubernetes リソースをパッケージ化して管理し、ACK クラスターでのアプリケーションのデプロイとアップグレードを簡素化します。

Helm アプリケーションの作成

このトピックでは、Helm を使用してコンソールから Dify アプリケーションをデプロイする方法の例を示します。ACK クラスターに少なくとも 2 つの CPU コアと 4 GB の使用可能なメモリがあることを確認してください。
  1. Dify で必要な Container Network File System (CNFS) と NAS StorageClass を作成します。

    1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター] ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、[ストレージ] > [ストレージクラス] を選択します。

    2. [ストレージクラス] ページで、[YAML から作成] をクリックします。次の YAML コンテンツをテンプレートにコピーし、[作成] をクリックします。

      同じ名前のリソースが既に存在することを示すメッセージがシステムに表示された場合、クラスターが CNFS と NAS StorageClass を自動的に作成したことを示します。アプリケーションのデプロイに進むことができます。NAS ファイルシステムの作成には料金が発生します。詳細については、「NAS の課金」をご参照ください。
      apiVersion: storage.alibabacloud.com/v1beta1
      kind: ContainerNetworkFileSystem
      metadata:
        name: cnfs-nas-filesystem
      spec:
        description: "cnfs"
        type: nas
        reclaimPolicy: Retain  # Retain のみがサポートされています。CNFS インスタンスが削除されても、バックエンドの NAS インスタンスは削除されません。
      ---
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        name: alibabacloud-cnfs-nas
      mountOptions:
        - nolock,tcp,noresvport
        - vers=3
      parameters:
        volumeAs: subpath # 各永続ボリューム要求 (PVC) は、NAS ファイルシステムに個別のサブディレクトリを作成します。
        containerNetworkFileSystem: cnfs-nas-filesystem # 上で定義された CNFS インスタンスに関連付けます。
        path: "/"
      provisioner: nasplugin.csi.alibabacloud.com
      reclaimPolicy: Retain
      allowVolumeExpansion: true # オプション: true に設定すると、永続ボリューム (PV) のディレクトリクォータのスケールアウトが許可されます。
  2. Dify アプリケーションをデプロイします。

    クラスター詳細ページで、[アプリケーション] > [Helm] を選択します。[Helm] ページで、[作成] をクリックします。

    • 基本情報: チャートセクションで、ack-dify を検索し、検索結果から選択します。

    • パラメーター: Chart Version については、最新バージョンを選択します。

  3. Dify アプリケーションにアクセスします。

    1. ack-dify サービスのパブリックネットワークアクセスを有効にします。

      パブリックネットワークアクセスは、デモンストレーションの目的に便利です。本番環境にアプリケーションをデプロイする場合は、[Resource Access Management (RAM)] を有効にしてデータセキュリティを確保してください。

      [ネットワーク] > [サービス] を選択し、名前空間を dify-system に設定します。ack-dify という名前のサービスを選択し、[更新] をクリックしてパブリックネットワークアクセスを構成し、[OK] をクリックします。

      • [タイプ] を Server Load Balancer (LoadBalancer) に設定します。

      • [アクセス方法] をパブリックネットワークアクセスに設定します。

      • [VSwitch] については、VPC の対応するゾーンの vSwitch を選択します。

    2. Dify アプリケーションにアクセスします。

      構成が完了したら、ブラウザのアドレスバーに [外部 IP アドレス] を入力して Dify サービスにアクセスします。

Helm アプリケーションの管理

コンソールの Helm ページでは、アプリケーションの更新や削除などの管理ができます。

操作

説明

アプリケーションの表示

対象アプリケーションの名前または 詳細 をクリックして、そのリソース、YAML ファイル、バージョン履歴、およびその他の情報を表示します。

アプリケーションの更新

更新 をクリックします。リリースのアップデート パネルで、必要に応じてパラメーターを変更し、OK をクリックします。

重要

更新は、関連付けられたアプリケーションの実行ステータスに直接影響し、サービスの再起動や機能の異常を引き起こす可能性があります。変更を行う前に、潜在的な影響を十分に評価し、オフピーク時に操作を実行してください。

アプリケーションの削除

[削除] をクリックします。削除 ダイアログボックスで、消去 を選択し、[OK] をクリックして、アプリケーションとそのリソース (サービスやデプロイメントなど) を削除します。

この例では、Dify アプリケーションを削除しても NAS リソースは自動的に削除されません。手動で NAS ファイルシステムを削除する必要があります。
重要

アプリケーションの削除時に 消去 を選択しない場合、アプリケーションはリリースリストに残ります。その後、同じ名前のアプリケーションをデプロイしようとすると、名前の競合により失敗します。

よくある質問

Helm CLI を使用してサードパーティのアプリケーションをデプロイするにはどうすればよいですか?

ACK が提供するチャートがニーズを満たさない場合は、Helm コマンドラインインターフェイス (CLI) を使用してアプリケーションをデプロイできます。
  1. クラスターに接続します。

    クラウド内

    Workbench または CloudShell の kubectl を使用してクラスターに接続する

    Alibaba Cloud が提供するブラウザベースのコマンドラインツールには、プリインストール済みの Helm が含まれています。追加の構成は必要ありません。

    オンプレミス

    1. クラスターの KubeConfig ファイルを取得し、kubectl を使用してクラスターに接続する

    2. Helm CLI をインストールします

      curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
  2. チャートリポジトリを追加します。

    <REPO_NAME> をリポジトリのエイリアスに、<REPO_URL> をリポジトリの URL に置き換えます。
    helm repo add <REPO_NAME> <REPO_URL>
  3. リポジトリ情報を更新します。

    helm repo update
  4. サードパーティのアプリケーションをデプロイします。

    <APP_NAME> をアプリケーションインスタンス名に、<CHART_NAME> をインストールするチャートの名前に置き換えます。
    helm install <APP_NAME> <REPO_NAME>/<CHART_NAME>

その他の Helm コマンドについては、「Helm 公式ドキュメント」をご参照ください。

Helm アプリケーションを削除できないのはなぜですか?

現象

  • コンソールで Helm アプリケーションを削除すると、アプリケーションが長時間「アンインストール中」の状態のままになります。

  • Helm CLI を使用してアプリケーションを削除すると、コマンドラインで次のエラーが返されます:

    no matches for kind "***" in version "***"
    ensure CRDs are installed first

原因

この問題は通常、クラスターのアップグレード後に古い API が非推奨になった場合に発生します。Helm アプリケーションに非推奨の API を使用するリソースが含まれている場合、指定された API バージョンが存在しないため、削除は失敗します。

異なる Kubernetes バージョンの非推奨 API のリストについては、「非推奨 API 移行ガイド」をご参照ください。

解決策

  1. 公式の Helm helm-mapkubeapis プラグインを使用して、リリース内の非推奨の API バージョンをサポートされている新しい API バージョンにマッピングしてから、アプリケーションを削除します。

    <RELEASE_NAME> を Helm リリース名に、<NAMESPACE> をその名前空間に置き換えます。
    helm plugin install https://github.com/helm/helm-mapkubeapis
    helm mapkubeapis <RELEASE_NAME> -n <NAMESPACE> 

    期待される出力 ...completed successfully は、API バージョンが正常にマッピングされたことを示します。

  2. API バージョンがマッピングされた後、アプリケーションを削除できます。

    helm uninstall <RELEASE_NAME> -n <NAMESPACE>

    期待される出力 release "***" uninstalled は、Helm アプリケーションが正常に削除されたことを示します。

リファレンス