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

Container Service for Kubernetes:共有 GPU スケジューリングコンポーネントの管理

最終更新日:Jun 24, 2026

Container Service for Kubernetes (ACK) は、単一の GPU を共有するモデル推論シナリオ向けに GPU 共有およびスケジューリング機能を提供します。また、NVIDIA ドライバーのカーネルモジュールを使用して、GPU メモリ分離を実現します。すでにクラスターに共有 GPU スケジューリングコンポーネントをインストール済みで、ノード上の GPU ドライバーまたはオペレーティングシステムが、インストールされている cGPU バージョンと互換性がない場合は、コンポーネントを最新バージョンにアップグレードする必要があります。このトピックでは、GPU ノード上の共有 GPU スケジューリングコンポーネントを管理し、GPU のスケジューリングと分離を有効にする方法について説明します。

前提条件

  • 共有 GPU スケジューリングを使用する前に、Cloud-native AI Suite がアクティブ化されている必要があります。課金の詳細については、「Cloud-native AI Suite の課金」をご参照ください。

  • cGPU の使用に関する注意事項については、「cGPU に関する FAQ」をご参照ください。

  • ACK managed cluster が作成され、インスタンスタイプとして GPU クラウドサーバー が選択されていること。

制限事項

  • cGPU のメモリ分離機能は ECS ノードでのみサポートされています。ECS 以外のノードには、ack.node.gpu.schedule=cgpu または ack.node.gpu.schedule=core_mem ラベルを追加しないでください。

  • 共有 GPU スケジューリングを使用するノードでは、CPU ポリシーを static に設定しないでください。

  • KubeConfig ファイルにカスタムパスを指定する必要がある場合は、export KUBECONFIG=<kubeconfig> コマンドを実行してください。kubectl inspect cgpu コマンドは --kubeconfig パラメーターをサポートしていません。

  • cGPU の隔離は統合仮想メモリ (UVM) をサポートしていないため、cudaMallocManaged() を呼び出して GPU メモリを割り当てることはできません。代わりに、cudaMalloc() を呼び出してください。詳細については、NVIDIA ドキュメントをご参照ください。

  • 共有 GPU の DaemonSet Pod の優先度は最高ではありません。ノードリソースが他の優先度の高い Pod によってプリエンプトされる可能性があり、これによりこれらの DaemonSet Pod が排除されることがあります。これを防ぐには、共有 GPU メモリ用の gpushare-device-plugin-ds など、使用している DaemonSet を変更し、priorityClassName: system-node-critical を追加して高い優先度を確保してください。

  • パフォーマンス上の理由から、cGPU を使用する場合、単一の GPU カード上に最大 20 個の Pod を作成できます。この制限を超えると、そのカードにスケジュールされた後続の Pod は実行に失敗し、エラーメッセージ Error occurs when creating cGPU instance: unknown が返されます。

  • 共有 GPU コンポーネントはどのリージョンにもインストールできます。ただし、GPU メモリ分離機能は以下のリージョンでのみ利用できます。クラスターがこれらのリージョンのいずれかにあることを確認してください。

    リージョン

    リージョン

    リージョン ID

    中国 (北京)

    cn-beijing

    中国 (上海)

    cn-shanghai

    中国 (杭州)

    cn-hangzhou

    中国 (張家口)

    cn-zhangjiakou

    中国 (ウランチャブ)

    cn-wulanchabu

    中国 (深圳)

    cn-shenzhen

    中国 (成都)

    cn-chengdu

    中国 (河源)

    cn-heyuan

    香港 (中国)

    cn-hongkong

    日本 (東京)

    ap-northeast-1

    インドネシア (ジャカルタ)

    ap-southeast-5

    シンガポール

    ap-southeast-1

    米国 (バージニア)

    us-east-1

    米国 (シリコンバレー)

    us-west-1

    ドイツ (フランクフルト)

    eu-central-1

  • バージョンの互換性。

    コンポーネント

    サポートされるバージョン

    Kubernetes バージョン

    • ack-ai-installer 1.12.0 より前のバージョンは、Kubernetes 1.18.8 以降を実行しているクラスターをサポートします。

    • ack-ai-installer 1.12.0 以降は、Kubernetes 1.20 以降を実行しているクラスターをサポートします。

    NVIDIA ドライバーバージョン

    418.87.01 以降

    コンテナランタイムバージョン

    • Docker: 19.03.5 以降

    • containerd: 1.4.3 以降

    オペレーティングシステム

    Alibaba Cloud Linux 3.x (コンテナ最適化版には ack-ai-installer v1.12.6 以降が必要)、Alibaba Cloud Linux 2.x、CentOS 7.6、CentOS 7.7、CentOS 7.9、Ubuntu 22.04

    サポートされる GPU

    P シリーズ、T シリーズ、V シリーズ、A シリーズ、H シリーズ

共有 GPU スケジューリングコンポーネントのインストール

ステップ 1:共有 GPU コンポーネントのインストール

AI Suite がデプロイされていない場合

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[アプリケーション] > [クラウドネイティブAIスイート] を選択します。

  3. クラウドネイティブ AI コンポーネントセット ページで、デプロイ をクリックしてください。

  4. クラウドネイティブ AI コンポーネントセット のデプロイページで、[スケジューリングポリシー拡張 (バッチタスクスケジューリング、GPU 共有、トポロジー対応 GPU スケジューリング)] を選択してください。

  5. (オプション) cGPU ポリシーをカスタマイズするには、スケジューリングポリシーの拡張 (一括タスクスケジューリング、GPU 共有、GPU トポロジ認識) の右にある 上級 をクリックしてください。パラメーター ダイアログボックスで、cGPU の policy フィールドを変更し、OK をクリックしてください。

    cGPU の計算能力共有に特別な要件がない場合は、デフォルトの policy: 5 (ネイティブスケジューリング) を使用することを推奨します。cGPU でサポートされているポリシーの詳細については、「cGPU サービスのインストールと使用」をご参照ください。

  6. クラウドネイティブ AI コンポーネントセット ページの下部で、クラウドネイティブ AI コンポーネントセットのデプロイ をクリックしてください。

    インストール後、[ack-ai-installer] コンポーネントが クラウドネイティブ AI コンポーネントセット ページのコンポーネントリストに表示されます。

AI Suite がデプロイされている場合

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[アプリケーション] > [クラウドネイティブAIスイート] を選択します。

  3. [ack-ai-installer] コンポーネントを見つけ、操作 列の デプロイ をクリックしてください。

  4. (オプション) 表示される パラメーター ダイアログボックスで、cGPU の policy フィールドを変更してください。

    cGPU の計算能力共有に特別な要件がない場合は、デフォルトの policy: 5 (ネイティブスケジューリング) を使用することを推奨します。cGPU でサポートされているポリシーの詳細については、「cGPU サービスのインストールと使用」をご参照ください。

  5. パラメーターの変更が完了したら、OK をクリックしてください。

    コンポーネントがインストールされると、[ack-ai-installer]ステータスデプロイ済み に変わります。

ステップ 2:共有 GPU スケジューリングと分離の有効化

  1. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[ノード] > [ノードプール] を選択します。

  2. ノードプール ページで、ノードプールの作成 をクリックしてください。「ノードプールの作成と管理」の説明に従ってパラメーターを設定してください。

  3. ノードプールの作成 ページで、ノードプールのパラメーターを設定し、注文の確認 をクリックしてください。次の表に、主要なパラメーターを示します。

    パラメーター

    説明

    ノードの期待数

    ノードプールの初期ノード数を入力してください。初期ノードが不要な場合は 0 を使用してください。

    ノードラベル

    ビジネス要件に基づいてラベル値を設定してください。ノードラベルの詳細については、「スケジューリングの有効化」をご参照ください。

    この例では、ラベル値 cgpu を使用します。この値により、ノードで共有 GPU スケジューリングが有効になり、各 Pod は GPU メモリリソースのみを要求するだけでよくなります。単一の GPU カード上の複数の Pod は、計算能力を共有し、メモリが分離されます。

    [ノードラベル] の横にある 节点标签 をクリックしてください。キーack.node.gpu.schedule に、cgpu に設定してください。

    重要
    • cGPU 分離機能の使用に関する注意事項については、「cGPU に関する FAQ」をご参照ください。

    • 共有 GPU スケジューリングラベルを追加した後、kubectl label nodes コマンドや ノード ページのラベル管理機能を使用して GPU スケジューリングラベルを変更しないでください。変更すると、問題が発生する可能性があります。詳細については、「スケジューリングの有効化」をご参照ください。推奨される方法は、「スケジューリングの有効化」に記載されています。

ステップ 3:GPU ノードの追加

説明

ノードプールを追加したときにすでに GPU ノードを作成している場合は、この手順をスキップできます。

ノードプールを作成した後、GPU ノードを追加してください。その際、インスタンスタイプとして GPU クラウドサーバー を指定してください。詳細については、「既存ノードのノードプールへの追加」または「ノードプールの作成と管理」をご参照ください。

ステップ 4:GPU クエリツールのインストール

  1. kubectl-inspect-cgpu 実行可能ファイルを PATH 内のディレクトリ (例: /usr/local/bin/) にダウンロードしてください。

    • Linux を使用している場合は、次のコマンドを実行して kubectl-inspect-cgpu をダウンロードしてください。

      wget http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/gpushare/kubectl-inspect-cgpu-linux -O /usr/local/bin/kubectl-inspect-cgpu
    • macOS を使用している場合は、次のコマンドを実行して kubectl-inspect-cgpu をダウンロードしてください。

      wget http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/gpushare/kubectl-inspect-cgpu-darwin -O /usr/local/bin/kubectl-inspect-cgpu
  2. ファイルを実行可能にしてください:

    chmod +x /usr/local/bin/kubectl-inspect-cgpu
  3. クラスター内の GPU 使用状況を確認してください:

    kubectl inspect cgpu

    期待される出力:

    NAME                       IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
    cn-shanghai.192.168.6.104  192.168.6.104  0/15                   0/15
    ----------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    0/15 (0%)

共有 GPU スケジューリングコンポーネントのアップグレード

ステップ 1:アップグレード方法の決定

アップグレード方法は、ack-ai-installer コンポーネントが最初にインストールされた方法によって異なります。2つの方法があります:

  • クラウドネイティブ AI コンポーネントセット ページ経由 (推奨):コンポーネントが クラウドネイティブ AI コンポーネントセット ページからインストールされた場合。

  • Marketplaceアプリカタログ ページからインストール (現在利用不可):ack-ai-installer コンポーネントを アプリカタログ ページからインストールした場合。このインストール方法は現在利用できません。ただし、この方法でインストールされた既存のコンポーネントがある場合は、引き続きこの方法でアップグレードできます。

    重要

    この方法でインストールされたコンポーネントをアンインストールした場合、再インストールするには Cloud-native AI Suite をアクティブ化し、インストールを完了する必要があります。

インストール方法の特定

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[アプリケーション] > [クラウドネイティブAIスイート] を選択します。

  3. クラウドネイティブ AI コンポーネントセット ページで、ack-ai-installer コンポーネントがデプロイされているかどうかを確認してください。

    コンポーネントがデプロイされている場合、クラウドネイティブ AI コンポーネントセット 経由でインストールされています。そうでない場合は、アプリカタログ からインストールされています。

ステップ 2:コンポーネントのアップグレード

Cloud-native AI Suite

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[アプリケーション] > [クラウドネイティブAIスイート] を選択します。

  3. コンポーネント セクションで、[ack-ai-installer] コンポーネントを見つけ、アクション 列の アップグレード をクリックしてください。

App Catalog

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

  3. Helm ページで、ack-ai-installer リリースを見つけ、アクション 列で 更新 をクリックしてください。プロンプトに従って最新の Chart バージョンを選択し、コンポーネントを更新してください。

    重要

    Chart 設定をカスタマイズする必要がある場合は、変更を行った後にコンポーネントの更新を確認してください。

    更新後、Helm ページで ack-ai-installer リリースの Chart バージョンが最新バージョンであることを確認してください。

ステップ 3:既存ノードのアップグレード

[ack-ai-installer] コンポーネントをアップグレードしても、既存ノードの cGPU バージョンは自動的にアップグレードされません。次の情報を使用して、ノードで cGPU 分離機能が有効になっているかどうかを判断してください。

  • クラスターに cGPU 分離機能が有効になっている GPU ノードが含まれている場合は、それらのノードの cGPU バージョンもアップグレードする必要があります。詳細については、「ノードの cGPU バージョンのアップグレード」をご参照ください。

  • クラスターに cGPU 分離機能が有効になっているノードがない場合は、この手順をスキップできます。

    説明
    • ノードに ack.node.gpu.schedule=cgpu または ack.node.gpu.schedule=core_mem というラベルが付いている場合、cGPU 分離機能は有効になっています。

    • 既存ノードの cGPU バージョンをアップグレードするには、それらのノード上のすべてのビジネス Pod を停止する必要があります。ビジネスへの影響を最小限に抑えるため、この操作はオフピーク時に実行してください。