クラウドネイティブ AI スイートは、Kubernetes 1.18 以降を実行する Container Service for Kubernetes (ACK) Pro、ACK Serverless Pro、および ACK Edge Pro クラスターにインストールできます。 このトピックでは、スイートをインストールし、クラウドネイティブ AI 運用コンソールと開発コンソールを設定する方法について説明します。
前提条件
以下を確認してください。
-
Kubernetes 1.18 以降を実行するACK Pro、ACK Serverless Pro、またはACK Edge Pro クラスターが作成されていること。
-
(AI 運用コンソールの場合) クラスター作成時に [コンポーネント設定] ページで [コンテナモニタリング] と [Log Service] が選択されている、または アドオン管理 ページで [ack-arms-prometheus] と [loongcollector] がインストールされていること。 詳細については、「Alibaba Cloud Prometheusを使用したモニタリング」および「ACKクラスターからのコンテナログの収集」をご参照ください。
スイートのデプロイ
-
ACKコンソールにログインします。 左側メニューで、[クラスター] をクリックします。
-
[クラスター] ページで、対象のクラスター名をクリックします。 左側メニューで、[アプリケーション] > [クラウドネイティブ AI スイート] を選択します。
-
[クラウドネイティブ AI スイート] ページで、デプロイ をクリックします。
-
デプロイページで、インストールするコンポーネントを選択します。 詳細と互換性については、「コンポーネントリファレンス」をご参照ください。
[Kube Queue]、[コンソール]、[Kubeflow Pipelines] を一緒に選択する場合、[Arena] が必須です。
-
[クラウドネイティブAIスイートのデプロイ] をクリックします。 システムは環境と依存関係のチェックを実行し、選択したコンポーネントをデプロイします。
コンポーネントリファレンス
次の表に、すべてのコンポーネント、その Namespace、およびサポートされているクラスタータイプを示します。
| 設定 | コンポーネント | Namespace | ACK Pro | ACK Serverless Pro | ACK Edge Pro |
|---|---|---|---|---|---|
| [伸縮性] | ack-alibaba-cloud-metrics-adapter | kube-system | はい | いいえ | はい |
| [アクセラレーション] (Fluid データアクセラレーション) | ack-fluid | fluid-system | はい | はい | はい |
| [スケジューリング] (バッチタスクスケジューリング、GPU 共有、トポロジー対応 GPU スケジューリング、および NPU スケジューリング) | ack-ai-installer | kube-system | はい | いいえ | はい |
| [Kube Queue] | ack-kube-queue | kube-queue | はい | はい | はい |
| [Arena] (CLI) | ack-arena | kube-system | はい | はい | はい |
| [コンソール] (Platform for AI) | ack-pai | pai-system | はい | いいえ | はい |
| [コンソール] (AI ダッシュボード) | ack-ai-dashboard | kube-ai | はい | いいえ | はい |
| [コンソール] (AI 開発者コンソール) | ack-ai-dev-console | kube-ai | はい | いいえ | はい |
| [コンソールデータストレージ] | ack-mysql | kube-ai | はい | いいえ | はい |
| [ワークフロー] (Kubeflow Pipelines) | ack-ai-pipeline | kube-ai | はい | いいえ | はい |
| [モニタリング] | ack-arena-exporter | kube-ai | はい | いいえ | はい |
ack-pai は、Platform for AI (PAI) によって最適化されたアルゴリズムとエンジン (Data Science Workshop (DSW)、Deep Learning Containers (DLC)、Elastic Algorithm Service (EAS) など) を統合し、AI の開発、トレーニング、推論の伸縮性と効率を向上させます。
[スケジューリング] コンポーネントにカスタムパラメーターを設定するには、デプロイページで [詳細設定] をクリックします。
[Arena] を選択した場合は、インストール後に別途Arena クライアントを設定してください。
詳細については、「Fluid データアクセラレーション」、「ack-ai-installer」、「ack-kube-queue」、および「ack-ai-pipeline」をご参照ください。
AIコンソールの設定
2025 年 1 月 22 日以降、AI コンソール (AI ダッシュボードおよび AI 開発者コンソール) は、ホワイトリストに登録されたユーザーのみが利用できます。 既存のデプロイは影響を受けません。 ホワイトリストに登録されていないユーザーは、オープンソースコミュニティを通じて AI コンソールをインストールおよび設定できます。 詳細については、「data-on-ack」をご参照ください。
AIコンソールの承認
-
エコツール セクションで、[コンソール] を選択します。 注 ダイアログボックスが表示されます。
-
承認ステータスが [Authorized] と表示されている場合は、「アクセス方法の選択」に進みます。
-
ステータスが赤字で [Unauthorized] と表示され、[OK] が利用できない場合は、以下の承認を完了してください。
-
-
Resource Access Management (RAM) でカスタムポリシーを作成します。
-
RAMコンソールにログインします。 左側メニューで、[権限] > [ポリシー] を選択します。
-
[ポリシーの作成] をクリックします。
-
[JSON] タブで、次のポリシーを入力し、[OK] をクリックします。 ポリシーに
k8sWorkerRolePolicy-{ClusterID}という名前を付けます。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cs:*", "log:GetProject", "log:GetLogStore", "log:GetConfig", "log:GetMachineGroup", "log:GetAppliedMachineGroups", "log:GetAppliedConfigs", "log:GetIndex", "log:GetSavedSearch", "log:GetDashboard", "log:GetJob", "ecs:DescribeInstances", "ecs:DescribeSpotPriceHistory", "ecs:DescribePrice", "eci:DescribeContainerGroups", "eci:DescribeContainerGroupPrice", "log:GetLogStoreLogs", "ims:CreateApplication", "ims:UpdateApplication", "ims:GetApplication", "ims:ListApplications", "ims:DeleteApplication", "ims:CreateAppSecret", "ims:GetAppSecret", "ims:ListAppSecretIds", "ims:ListUsers" ], "Resource": "*" } ] }
-
-
カスタムポリシーをクラスター RAM ロールにアタッチします。
-
RAMコンソールの左側メニューで、[ID] > [ロール] を選択します。
-
KubernetesWorkerRole-{ClusterID}を検索し、[操作] 列の [権限付与] をクリックします。 -
[権限付与] パネルで、
k8sWorkerRolePolicy-{ClusterID}を検索します。 -
ポリシーを選択し、[権限付与] をクリックします。
-
-
注 ダイアログボックスに戻り、[承認チェック] をクリックします。 ステータスが [Authorized] に変わり、[OK] が利用可能になります。
アクセス方法の選択
注 ダイアログボックスで、アクセス方法を選択し、[OK] をクリックします。
| アクセス方法 | 推奨用途 | 注意事項 |
|---|---|---|
| [Private IP] | 本番環境 | 内部ネットワーク経由でコンソールにアクセスします |
| [内部ドメイン] | 本番環境 | プライベートドメイン名を使用します |
| [パブリックドメイン] | テスト専用 | ローカルの hosts ファイルで、パブリックドメインを NGINX Ingress SLB のパブリック IP にマッピングします |
詳細については、「AI運用コンソールへのアクセス」をご参照ください。
コンソールデータストレージの設定
[インタラクションモード] で [コンソール] を選択すると、[コンソールデータストレージ] オプションが表示されます。 ストレージ方法を選択します。
プリインストールされたMySQL (テスト専用)
[ApsaraDB RDS] を選択しない場合、クラスターはデフォルトで組み込みの MySQL データベースを使用します。
このオプションはテスト専用に推奨します。 クラスターに障害が発生したり、ストレージが失われたりすると、データが失われる可能性があります。
デプロイにより、StorageClass を使用して PersistentVolumeClaim (PVC) として 120 GB のディスクが作成されます。 ACK はディスクのライフサイクルを管理しません。 不要になったディスクは手動で削除してください。
ApsaraDB RDS (本番環境)
本番ワークロードには ApsaraDB RDS を使用してください。
接続エラーが発生した場合は、「インスタンス接続の失敗のトラブルシューティング」をご参照ください。
ストレージ方法を変更するには、スイートをアンインストールしてから再インストールしてください。 再インストールする前に、kube-aiNamespace に Secretkubeai-rdsが存在する場合は削除してください。
-
ApsaraDB RDS インスタンスを購入し、データベースとアカウントを作成します。 詳細については、「ApsaraDB RDSクイックスタート」および「課金の概要」をご参照ください。
-
デプロイページの下部にある [クラウドネイティブAIスイートのデプロイ] をクリックします。
-
ACKコンソールで、クラスター名をクリックします。 左側メニューで、[設定] > シークレット を選択します。
-
[Namespace] ドロップダウンリストから、
kube-aiを選択します。 -
[YAMLから作成] をクリックします。
-
次の YAML テンプレートを入力して
kubeai-rdsという名前の Secret を作成し、作成 をクリックします。パラメーター 説明 MYSQL_HOSTApsaraDB RDS 接続エンドポイント MYSQL_DB_NAMEデータベース名 MYSQL_USERデータベースアカウントのユーザー名 MYSQL_PASSWORDデータベースアカウントのパスワード apiVersion: v1 kind: Secret metadata: name: kubeai-rds namespace: kube-ai type: Opaque stringData: MYSQL_HOST: "お使いの RDS エンドポイント" MYSQL_DB_NAME: "データベース名" MYSQL_USER: "データベースのユーザー名" MYSQL_PASSWORD: "データベースのパスワード"
ワークフローデータストレージの設定
ワークフローエンジンとして [Kubeflow Pipelines] を選択すると、[ワークフローデータストレージ] オプションが表示されます。 ストレージ方法を選択します。
プリインストールされたMinIO (テスト専用)
[OSS] を選択しない場合、クラスターはデフォルトで組み込みの MinIO インスタンスを使用します。
このオプションはテスト専用に推奨します。 クラスターに障害が発生したり、ストレージが失われたりすると、データが失われる可能性があります。
デプロイにより、StorageClass を使用して PVC として 20 GB のディスクが作成されます。 ACK はディスクのライフサイクルを管理しません。 不要になったディスクは手動で削除してください。
Object Storage Service (テストおよび本番環境)
永続的でスケーラブルなワークフローデータストレージには、Object Storage Service (OSS) を使用してください。
-
kube-aiNamespace が存在することを確認します。存在しない場合は、次のコマンドを実行して作成します。kube-ai名前空間は、スイートのデプロイ中に自動的に作成されます。作成する前に、その存在を確認してください。kubectl create ns kube-ai -
ACKコンソールで、クラスター名をクリックします。 左側メニューで、[設定] > シークレット を選択します。
-
[Namespace] ドロップダウンリストから、
kube-aiを選択します。 -
[YAMLから作成] をクリックします。
-
次の YAML を入力して
kubeai-ossという名前の Secret を作成し、作成 をクリックします。パラメーター 説明 ENDPOINTお使いのリージョンの OSS エンドポイント。 詳細については、「OSSのリージョンとエンドポイント」をご参照ください。 ACCESS_KEY_IDAliyunOSSFullAccess権限を持つ RAM ユーザーの AccessKey ID。 詳細については、「AccessKeyペアの作成」をご参照ください。ACCESS_KEY_SECRETRAM ユーザーの AccessKey シークレット apiVersion: v1 kind: Secret metadata: name: kubeai-oss namespace: kube-ai type: Opaque stringData: ENDPOINT: "https://oss-cn-beijing.aliyuncs.com" ACCESS_KEY_ID: "****" ACCESS_KEY_SECRET: "****" -
Secret を作成した後、OSSコンソールに
mlpipeline-<clusterid>という名前のバケットが表示されることを確認してください。 OSS の課金については、「課金の概要」をご参照ください。 -
デプロイページに戻り、[Kubeflow Pipelines] をインストールします。
デプロイの検証
デプロイ後、コンポーネントが実行されていることを確認してください。
-
ACKコンソールで、クラスター名をクリックします。 左側メニューで、[アプリケーション] > [クラウドネイティブ AI スイート] を選択します。 コンポーネントリストには、インストールされているすべてのコンポーネントとそのバージョンが表示されます。
-
各コンポーネントでデプロイが成功したステータスが表示されていることを確認してください。 個々のコンポーネントを デプロイ または アンインストール できます。 新しいバージョンが利用可能な場合は、[アップグレード] することもできます。
-
AI コンソールをインストールした場合は、[クラウドネイティブ AI スイート] ページの左上隅にある O&M コンソール または 開発コンソール をクリックして、アクセスを確認してください。