クラウドネイティブAIスイートは、Kubernetes 1.18以降を実行するContainer Service for Kubernetes (ACK) Proクラスター、ACK Serverless Proクラスター、およびACK Edge Proクラスターにデプロイできます。 このトピックでは、クラスターにクラウドネイティブAIスイートをデプロイする方法について説明します。 このトピックでは、AIダッシュボードとAI開発者コンソールをインストールおよび設定する方法についても説明します。
前提条件
ACK Proクラスター、ACK Serverless Proクラスター、またはACK Edge Proクラスターが作成されます。 クラスターのKubernetesバージョンが1.18以降です。 詳細については、「ACK Proクラスターの作成」「ACK Serverless Proクラスターの作成」「ACK Edgeクラスターの作成」をご参照ください。
クラスターの作成時に [コンポーネント設定] ページで [Prometheusのマネージドサービスの有効化] と [Log Serviceの有効化] が選択されるか、クラスターの作成後に [操作] ページからack-arms-prometheusとlogtail-dsがインストールされます。 これらのサービスまたはコンポーネントは、AIダッシュボードをインストールして設定する場合にのみ必要です。 詳細については、「Prometheus向けマネージドサービス」および「DaemonSetモードでKubernetesコンテナーからテキストログを収集する」をご参照ください。
クラウドネイティブAIスイートのデプロイ
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[クラウドネイティブAI Suite] ページで、[デプロイ] をクリックします。 表示されるページで、インストールするコンポーネントを選択します。
次の表に、パラメーターの設定方法を示します。 次の表では、コンポーネントとサポートされているクラスタータイプについても説明します。
コンソールでの設定
コンポーネント設定
サポートされているクラスター
設定アイテム
説明
コンポーネント名と説明
名前空間
ACK Proクラスター
ACK Serverless Proクラスター
ACK Edge Proクラスター
弾性
エラスティック機能を有効にするかどうかを指定します。 詳細については、「Kubernetesベースのモデルトレーニングジョブ」および「コンテナー化されたelastic inference services」をご参照ください。
ack-alibaba-cloud-metrics-adapter、自動スケーリングコンポーネント。
kube-system
加速
Fluid Data Acceleration機能を有効にするかどうかを指定します。 詳細については、「Fluidの概要」をご参照ください。
ack-fluid、データキャッシュおよびアクセラレーションコンポーネント。
流体システム
スケジューリング
スケジューリングコンポーネント (バッチタスクスケジューリング、GPU共有、トポロジ対応GPUスケジューリング、およびNPUスケジューリング) 機能を有効にするかどうかを指定します。 [詳細設定] をクリックして、カスタムパラメーターを設定できます。
ack-ai-installer、スケジューリングコンポーネント。
kube-system
Kubeキュー機能を有効にするかどうかを指定します。 詳細については、「ack-kube-queueを使用したジョブキューの管理」をご参照ください。
ack-kube-queueは、Kubernetesのワークロードを管理するスケジューリングコンポーネントです。
kube-queue
相互作用モード
Arena: Arena CLIを使用する場合は、このオプションを選択します。 Arena CLIを使用するには、Arenaクライアントをインストールして設定する必要もあります。 Arenaクライアントをインストールしたら、Arena CLIを使用してKubeflowトレーニング演算子を統合できます。 [詳細設定] をクリックして、カスタムパラメーターを設定できます。
Kube Queue、Console、およびKubeflow Pipelinesを同時に選択した場合、アリーナオプションが必要です。 詳細については、「Arenaクライアントの設定」をご参照ください。
ack-arena (エコシステムツール) 、機械学習CLI。
kube-system
コンソール: 軽量のPlatform for AIをデプロイします。 [詳細設定] をクリックして、カスタムパラメーターを設定できます。
ack-pai、軽量のPlatform for AI。 推奨。
長年の経験に基づいてPAIによって深く最適化されたアルゴリズムとエンジンをコンテナ化されたアプリケーションに統合できます。 Data Science Workshop (DSW) 、Deep Learning Containers (DLC) 、Elastic Algorithm Service (EAS) などのサービスは、AIモデルの開発、トレーニング、および推論の弾力性と効率を向上させ、AI開発への障壁を減らしながら、トレーニングと推論の有効性を高めます。
pai-system
コンソール: このオプションを選択してAI Suiteコンソールをデプロイした後、[メモ] ダイアログボックスでパラメーターを設定します。 詳細については、「AIダッシュボードとAI開発者コンソールのインストールと設定」をご参照ください。
ack-ai-dashboard (エコシステムツール) 、視覚化されたO&Mコンソール。
kube-ai
ack-ai-dev-console (エコシステムツール) 、深層学習開発コンソール。
kube-ai
コンソールデータストレージ
インタラクションモードをコンソールに設定した後、コンソールデータストレージをプリインストールMySQLまたはApsaraDB RDSに設定します。 詳細については、「AIダッシュボードとAI開発者コンソールのインストールと設定」をご参照ください。
ack-mysql、MySQLデータベースコンポーネント。
kube-ai
ワークフロー
Kubeflow Pipelinesを選択した後、ワークフローデータストレージをプリインストールMinIOまたはOSSに設定できます。 詳細については、「Kubeflow Pipelinesのインストールと設定」をご参照ください。
エンドツーエンドの機械学習ワークフローを構築するためのプラットフォームであるack-ai-pipeline (エコシステムツール) 。
kube-ai
モニタリング
監視コンポーネントをインストールするかどうかを指定します。 詳細については、「クラウドネイティブAIダッシュボードの操作」をご参照ください。
ack-arena-exporter、クラスター監視コンポーネント。
kube-ai
ページの下部にある [クラウドネイティブAIスイートのデプロイ] をクリックします。 システムは、環境と選択されたコンポーネントの依存関係をチェックします。 環境と依存関係がチェックに合格した後、システムは選択したコンポーネントをデプロイします。
コンポーネントのインストール後、コンポーネントリストに次の情報を表示できます。
クラスターにインストールされているコンポーネントの名前とバージョンを表示できます。 コンポーネントをデプロイまたはアンインストールできます。
コンポーネントが更新可能な場合は、コンポーネントを更新できます。
ack-ai-dashboardとack-ai-dev-consoleをインストールした後、Cloud-native AI Suiteページの左上隅にAIダッシュボードとAI開発者コンソールへのハイパーリンクが表示されます。 ハイパーリンクをクリックすると、対応するコンポーネントにアクセスできます。
インストールが完了すると、クラウドネイティブAI Suiteページの左上隅にAIダッシュボードとAI開発者コンソールへのハイパーリンクが表示されます。 ハイパーリンクをクリックすると、対応するコンポーネントにアクセスできます。
AIダッシュボードとAI開発者コンソールのインストールと設定
Cloud-native AI Suiteページの [インタラクションモード] セクションで、[コンソール] を選択します。 次の図に示すように、[メモ] ダイアログボックスが表示されます。
RAMワーカーロールに権限を付与するカスタムポリシーを作成します。
カスタムポリシーを作成します。
RAM コンソールにログインします。 左側のナビゲーションウィンドウで、[権限]> [ポリシー] を選択します。
[ポリシー] ページで [ポリシーの作成] をクリックします。
[JSON] タブをクリックします。
[アクション]
フィールドに次の内容を追加し、[次へ] をクリックしてポリシー情報を編集します。"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"
[Name] パラメーターを
k8sWorkerRolePolicy-{ClusterID}
形式で指定し、[OK] をクリックします。
クラスターのRAMワーカーロールに権限を付与します。
RAM コンソールにログインします。 左側のナビゲーションウィンドウで、[アイデンティティ]> [ロール] を選択します。
Kubernetes WorkerRole-{ClusterID}
形式のRAMワーカーロールを検索ボックスに入力します。 管理するロールを見つけて、[操作] 列の [権限の付与] をクリックします。[ポリシーの選択] セクションで、[カスタムポリシー] をクリックします。
k8sWorkerRolePolicy-{ClusterID}
形式で作成したカスタムポリシーの名前を検索ボックスに入力し、ポリシーを選択します。[OK] をクリックします。
[メモ] ダイアログボックスに戻り、[権限付与チェック] をクリックします。 承認が成功すると、承認済みが表示され、[OK] ボタンが使用可能になります。 次に、ステップ3を実行します。
AIダッシュボードにアクセスする方法とAI開発者コンソールにアクセスする方法を選択します。 次に、[OK] をクリックします。
プライベートIPアドレス、内部ドメイン名、またはパブリックドメイン名を使用して、AIダッシュボードまたはAI開発者コンソールにアクセスできます。
本番環境では、プライベートIPまたはパブリックドメイン名を使用してサービスにアクセスします。
パブリックドメイン名の方法は、テストにのみ推奨されます。 パブリックドメイン名を使用する必要がある場合は、ローカルホストファイルでクラスターのNginx Ingree SLBのパブリックIPにバインドします。
説明プライベートIPアドレスを使用してAIダッシュボードまたはAI開発者コンソールにアクセスする場合は、[メモ] ダイアログボックスで [プライベートIP] を選択します。
プライベートIPアドレスまたは内部ドメイン名を使用してAIダッシュボードまたはAI開発者コンソールにアクセスする方法の詳細については、「AIダッシュボードへのアクセス」をご参照ください。
を設定します。Set theコンソールのデータストレージパラメーターを使用します。
[コンソール] を選択すると、[コンソールデータストレージ] パラメーターが [インタラクションモード] パラメーターの下に表示されます。 プリインストールMySQLまたはApsaraDB RDSを選択できます。
プリインストールMySQL
ApsaraDB RDSを選択しない場合、デフォルトでプリインストールされたMySQLが使用されます。 安定性とSLAの問題により、この方法はテストにのみ使用することを推奨します。 この方法を選択すると、クラウドネイティブAIスイートをデプロイするたびに新しいディスクが作成され、課金されます。 手動でディスクをリリースする必要があります。
重要クラスタまたはストレージに障害が発生すると、データが失われる可能性があります。
クラウドネイティブAIスイートをデプロイすると、ACKは指定されたStorageClassに基づいて永続ボリューム要求 (PVC) を作成し、MySQLデータを永続化するためにサイズが120 GBのディスクを作成してマウントします。 ディスクに対して課金され、ディスクを管理する必要があります。 ディスクを使用しなくなった場合は、できるだけ早くディスクをリリースしてください。 ディスクのリリース方法の詳細については、「ディスクのリリース」をご参照ください。
ApsaraDB RDS
説明ApsaraDB RDSを使用しているときに接続に問題が発生した場合は、「ApsaraDB RDS for MySQLインスタンスへの接続に関するエラーのトラブルシューティング」をご参照ください。
データを保存する方法を変更する場合は、クラウドネイティブAIスイートをアンインストールして再デプロイする必要があります。
kubeai-rds
という名前のシークレットが既に存在する場合は、kubectlを使用してシークレットを削除します。
ApsaraDB RDSインスタンスを購入し、データベースとアカウントを作成します。 詳細については、「クイックスタート」をご参照ください。 ApsaraDB RDSの課金の詳細については、「課金の概要」をご参照ください。
ページ下部の [クラウドネイティブAIスイートのデプロイ] をクリックして、クラウドネイティブAIスイートをインストールします。
クラスターの名前をクリックし、左側のナビゲーションウィンドウで [設定]> [秘密] を選択します。
ページ上部の名前空間ドロップダウンリストから
kube-ai
を選択します。ページの右上隅にある [YAMLから作成] をクリックします。
次のYAMLコンテンツをコピーして、
kubeai-rds
という名前のシークレットを作成します。apiVersion: v1 kind: Secret metadata: name: kubeai-rds namespace: kube-ai type: Opaque stringData: MYSQL_HOST: "Your RDS URL" MYSQL_DB_NAME: "Database name" MYSQL_USER: "Database username" MYSQL_PASSWORD: "Database password"
パラメーター
説明
name
秘密の名前。The name of the Secret.
namespace
名前空間の名前。
MYSQL_HOST
MYSQL_DB_NAME
MYSQL_USER
MYSQL_PASSWORD
ApsaraDB RDS for MySQLインスタンスに関連するパラメーター。 詳細については、「ApsaraDB RDS For MySQLインスタンスの作成」および「アカウントとデータベースの作成」をご参照ください。
Kubeflow Pipelinesのインストールと設定
Kubeflow Pipelinesを選択した後、Workflow Data Storageパラメーターを設定する必要があります。
プリインストールMinIO
OSSを選択しない場合、プリインストールされたMinIOがデフォルトで使用されます。 安定性とSLAの問題により、この方法はテストにのみ使用することを推奨します。 この方法を選択すると、クラウドネイティブAIスイートをデプロイするたびに新しいディスクが作成され、課金されます。 手動でディスクをリリースする必要があります。
クラスタまたはストレージに障害が発生すると、データが失われる可能性があります。
クラウドネイティブAIスイートをデプロイすると、ACKは指定されたStorageClassに基づいてPVCを作成し、MinIOデータを保持するためにサイズが20 GBのディスクを作成してマウントします。 ディスクに対して課金され、ディスクを管理する必要があります。 ディスクを使用しなくなった場合は、できるだけ早くディスクをリリースしてください。 ディスクのリリース方法の詳細については、「ディスクのリリース」をご参照ください。
OSS
クラスターに存在しない場合は、kube-aiという名前の名前空間を追加します。
kubectl create ns kube-ai
クラウドネイティブAIスイートによって提供されるKubeflow Pipelinesをインストールする前に、ACKコンソールの [クラスター] ページでクラスターの名前をクリックします。 次に、左側のナビゲーションウィンドウで [設定]> [秘密] を選択します。
ページ上部の名前空間ドロップダウンリストから名前空間kube-aiを選択します。
ページの右上隅にある [YAMLから作成] をクリックします。
次のYAMLコンテンツをコピーし、[作成] をクリックします。 クラスターは自動的にYAMLファイルを実行し、
kubeai-oss
という名前のシークレットを作成します。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: "****"
パラメーター
説明
name
秘密の名前。The name of the Secret.
namespace
名前空間の名前。
説明namespace: kube-aiは、クラウドネイティブAIスイートをデプロイすると自動的に作成されます。
エンドポイント
Object Storage Service (OSS) のエンドポイント。 この例では、中国 (北京) リージョンのOSSのエンドポイントが使用されています。 詳細は、「リージョンとエンドポイント」をご参照ください。
ACCESS_KEY_ID
ACCESS_KEY_SECRET
アカウントのAccessKeyペアを入力します。 AccessKeyペアの取得方法については、「AccessKeyペアの取得」をご参照ください。
重要データのセキュリティを確保するため、RAMユーザーのAccessKeyペアを入力することを推奨します。 RAMユーザーとしてログオンした後、
AliyunOSSFullAccess
ポリシーをRAMユーザーにアタッチする必要があります。シークレットが作成された後、しばらくお待ちください。OSSコンソールで
mlpipeline-<clusterid>
という名前のバケットが作成された場合、OSSがストレージとして使用されるように設定されていることを示します。 OSSの課金の詳細については、「課金」をご参照ください。Cloud-native AI SuiteでKubeflowパイプラインをデプロイします。