Kubernetes リソースを再利用可能な Helm Chart にパッケージ化し、Container Service for Kubernetes (ACK) アプリケーションをデプロイおよび管理します。
Helm アプリケーションの作成
この例では、ACK コンソールから Dify アプリケーションをデプロイします。 クラスターには、少なくとも 2 vCPU コアと 4 GB のメモリが必要です。
-
Dify 用の Container Network File System (CNFS) と Network Attached Storage (NAS) の StorageClass を作成します。
-
ACK コンソールにログインし、[クラスター] ページに移動します。 対象のクラスターをクリックし、左側のナビゲーションペインで を選択します。
-
[StorageClasses] ページで、[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 # 各 Persistent Volume Claim (PVC) は、NAS ファイルシステム内に個別のサブディレクトリを作成します。 containerNetworkFileSystem: cnfs-nas-filesystem # 上で定義した CNFS インスタンスに関連付けます。 path: "/" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain allowVolumeExpansion: true # オプション:ディレクトリクォータのボリューム拡張を許可するには true に設定します。
-
-
Dify アプリケーションをデプロイします。
クラスターの詳細ページで、左側のナビゲーションペインで を選択します。 [Helm] ページで、[デプロイ] をクリックします。
-
[基本情報]: [チャート] セクションで、
ack-difyを検索して選択します。 -
[パラメーター]: [チャートバージョン] で、最新バージョンを選択します。
-
-
Dify アプリケーションにアクセスします。
-
ack-difyService をパブリックインターネットに公開します。パブリックアクセスはデモンストレーションのみを目的としています。 本番環境では、アクセス制御を使用してアプリケーションデータを保護してください。
に移動し、
dify-system名前空間を選択します。ack-difyService を見つけ、[更新] をクリックし、次のように設定して [OK] をクリックします。-
[サービスタイプ]: [SLB] をクリックします。
-
[アクセス方法]: [パブリックアクセス] を選択します。
-
[VSwitch]: Virtual Private Cloud (VPC) の各アベイラビリティーゾーンに適した vSwitch を選択します。
-
-
Dify アプリケーションにアクセスします。
[外部 IP] アドレスをコピーしてブラウザーで開き、Dify にアクセスします。
-
Helm アプリケーションの管理
デプロイされたアプリケーションは、コンソールの [Helm] ページで管理します。
|
アクション |
説明 |
|
表示 |
アプリケーション名または 詳細 をクリックして、リソース、YAML マニフェスト、リリース履歴を表示します。 |
|
更新 |
更新 をクリックします。 リリースのアップデート パネルで、必要に応じてパラメーターを変更し、OK をクリックします。 重要
更新によって、サービスの再起動や機能上の問題が発生する可能性があります。 変更を加える前に影響を評価し、オフピーク時に更新してください。 |
|
削除 |
[削除] をクリックします。 削除 ダイアログボックスで、消去 を選択し、[OK] をクリックして、Service や Deployment などのアプリケーションとそのリソースを削除します。 Dify アプリケーションを削除しても、バックエンドの NAS リソースは削除されません。 手動でNAS ファイルシステムを削除してください。 重要
消去 を選択しない場合、アプリケーション名は保持されます。 同じ名前の別のアプリケーションをデプロイすると失敗します。 |
よくある質問
Helm CLI を使用してサードパーティ製アプリケーションをデプロイする方法
ACK Charts がニーズを満たさない場合は、Helm CLI を使用してアプリケーションをデプロイします。
-
クラスターに接続します。
クラウドベース
Workbench または CloudShell で kubectl を使用してクラスターに接続します。
Alibaba Cloud のブラウザーベースの CLI には 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 uninstallコマンドが次のようなエラーで失敗します:no matches for kind "***" in version "***" ensure CRDs are installed first
原因
これは通常、クラスターのアップグレードによって Helm Chart リソースが使用していた API バージョンが削除された後に発生します。 指定された API バージョンが存在しなくなったため、アンインストールは失敗します。
各 Kubernetes バージョンの非推奨 API については、「非推奨 API 移行ガイド」をご参照ください。
解決策
-
helm-mapkubeapis プラグインを使用して、非推奨 API をサポートされているバージョンにマッピングしてから、アプリケーションを削除します。
RELEASE_NAMEを Helm アプリケーションの名前に、NAMESPACEを名前空間に置き換えます。helm plugin install https://github.com/helm/helm-mapkubeapis helm mapkubeapis RELEASE_NAME -n NAMESPACE...completed successfullyメッセージにより、API バージョンがマッピングされたことが確認されます。 -
アプリケーションを再度アンインストールします。
helm uninstall RELEASE_NAME -n NAMESPACE出力
release "***" uninstalledは、Helm アプリケーションが削除されたことを示します。
関連ドキュメント
-
セキュリティの向上と最新機能を利用するために、Helm V2 から Helm V3 に移行します。
-
Container Registry Enterprise Edition は、Helm Chart のプッシュおよびプルをサポートしています。