Helm は、ワークロード、サービス、Ingress などの Kubernetes リソースをパッケージ化して管理し、ACK クラスターでのアプリケーションのデプロイとアップグレードを簡素化します。
Helm アプリケーションの作成
このトピックでは、Helm を使用してコンソールから Dify アプリケーションをデプロイする方法の例を示します。ACK クラスターに少なくとも 2 つの CPU コアと 4 GB の使用可能なメモリがあることを確認してください。
Dify で必要な Container Network File System (CNFS) と NAS StorageClass を作成します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター] ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
[ストレージクラス] ページで、[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) のディレクトリクォータのスケールアウトが許可されます。
Dify アプリケーションをデプロイします。
クラスター詳細ページで、 を選択します。[Helm] ページで、[作成] をクリックします。
基本情報: チャートセクションで、ack-dify を検索し、検索結果から選択します。
パラメーター: Chart Version については、最新バージョンを選択します。
Dify アプリケーションにアクセスします。
ack-dify サービスのパブリックネットワークアクセスを有効にします。
パブリックネットワークアクセスは、デモンストレーションの目的に便利です。本番環境にアプリケーションをデプロイする場合は、[Resource Access Management (RAM)] を有効にしてデータセキュリティを確保してください。
を選択し、名前空間を
dify-systemに設定します。ack-difyという名前のサービスを選択し、[更新] をクリックしてパブリックネットワークアクセスを構成し、[OK] をクリックします。[タイプ] を Server Load Balancer (LoadBalancer) に設定します。
[アクセス方法] をパブリックネットワークアクセスに設定します。
[VSwitch] については、VPC の対応するゾーンの vSwitch を選択します。
Dify アプリケーションにアクセスします。
構成が完了したら、ブラウザのアドレスバーに [外部 IP アドレス] を入力して Dify サービスにアクセスします。
Helm アプリケーションの管理
コンソールの Helm ページでは、アプリケーションの更新や削除などの管理ができます。
操作 | 説明 |
アプリケーションの表示 | 対象アプリケーションの名前または 詳細 をクリックして、そのリソース、YAML ファイル、バージョン履歴、およびその他の情報を表示します。 |
アプリケーションの更新 | 更新 をクリックします。リリースのアップデート パネルで、必要に応じてパラメーターを変更し、OK をクリックします。 重要 更新は、関連付けられたアプリケーションの実行ステータスに直接影響し、サービスの再起動や機能の異常を引き起こす可能性があります。変更を行う前に、潜在的な影響を十分に評価し、オフピーク時に操作を実行してください。 |
アプリケーションの削除 | [削除] をクリックします。削除 ダイアログボックスで、消去 を選択し、[OK] をクリックして、アプリケーションとそのリソース (サービスやデプロイメントなど) を削除します。 この例では、Dify アプリケーションを削除しても NAS リソースは自動的に削除されません。手動で NAS ファイルシステムを削除する必要があります。 重要 アプリケーションの削除時に 消去 を選択しない場合、アプリケーションはリリースリストに残ります。その後、同じ名前のアプリケーションをデプロイしようとすると、名前の競合により失敗します。 |
よくある質問
Helm CLI を使用してサードパーティのアプリケーションをデプロイするにはどうすればよいですか?
ACK が提供するチャートがニーズを満たさない場合は、Helm コマンドラインインターフェイス (CLI) を使用してアプリケーションをデプロイできます。
クラスターに接続します。
クラウド内
Workbench または CloudShell の kubectl を使用してクラスターに接続する。
Alibaba Cloud が提供するブラウザベースのコマンドラインツールには、プリインストール済みの Helm が含まれています。追加の構成は必要ありません。
オンプレミス
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
チャートリポジトリを追加します。
<REPO_NAME>をリポジトリのエイリアスに、<REPO_URL>をリポジトリの URL に置き換えます。helm repo add <REPO_NAME> <REPO_URL>リポジトリ情報を更新します。
helm repo updateサードパーティのアプリケーションをデプロイします。
<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 移行ガイド」をご参照ください。
解決策
公式の 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 バージョンが正常にマッピングされたことを示します。API バージョンがマッピングされた後、アプリケーションを削除できます。
helm uninstall <RELEASE_NAME> -n <NAMESPACE>期待される出力
release "***" uninstalledは、Helm アプリケーションが正常に削除されたことを示します。
リファレンス
クラスターのセキュリティを確保し、より多くの機能を利用するために、Helm V2 から Helm V3 にアップグレードおよび移行します。
Container Registry Enterprise Edition の Helm チャート機能は、Helm チャートのプッシュとプルをサポートしています。