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

Container Service for Kubernetes:デフォルトの Kubernetes GPU スケジューリングの使用

最終更新日:Feb 27, 2026

Container Service for Kubernetes (ACK) は、GPU スケジューリングと運用管理をサポートしています。デフォルトの GPU 使用モードは、Kubernetes コミュニティで採用されている標準的なアプローチと一致しています。このトピックでは、GPU アクセラレーションされた TensorFlow ジョブを使用して、GPU アプリケーションを迅速にデプロイする方法を説明します。

注意事項

Kubernetes クラスターによって管理される GPU ノードの場合、このトピックで説明されている標準的な Kubernetes 拡張リソース要求方法を使用して、アプリケーションの GPU リソースを要求します。アプリケーションの GPU リソースを要求および使用する際は、以下のガイドラインに従ってください。

  • GPU アプリケーションをノードで直接実行しないでください。

  • dockerpodmannerdctl などのコマンドラインツールを使用して、コンテナーを作成したり、それらの GPU リソースを要求したりしないでください。たとえば、docker run --gpus all または docker run -e NVIDIA_VISIBLE_DEVICES=all コマンドを実行してから GPU プログラムを実行しないでください。

  • NVIDIA_VISIBLE_DEVICES=allNVIDIA_VISIBLE_DEVICES=<GPU ID> などの環境変数を Pod の YAML ファイルの env セクションに追加しないでください。NVIDIA_VISIBLE_DEVICES 環境変数を使用して、Pod の GPU リソースを直接要求したり、GPU プログラムを実行したりしないでください。

  • Pod のイメージを作成する際、Pod の YAML ファイルで NVIDIA_VISIBLE_DEVICES 環境変数が設定されていない場合でも、そのデフォルト値を NVIDIA_VISIBLE_DEVICES=all に設定して GPU プログラムを実行しないでください。

  • Pod の securityContextprivileged: true を設定して GPU プログラムを実行しないでください。

これらの非標準的な方法で GPU リソースを要求すると、セキュリティリスクが発生する可能性があります。

  • これらの方法で要求された GPU リソースは、スケジューラのデバイスリソース台帳に記録されません。ノード上の実際の GPU リソース割り当てと台帳記録とのこの不一致により、スケジューラが同じノードに追加の GPU ワークロードを割り当てる可能性があります。その結果、同じ GPU カード上で GPU メモリなどのリソース競合によりサービスが失敗する可能性があります。

  • これらの非標準的な操作は、NVIDIA コミュニティによって報告されている既知のエラーなど、その他の不明な問題を引き起こす可能性もあります。

操作手順

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

  2. デプロイメント]ページで、[YAML のリソースの作成]をクリックします。 次のサンプルコードを使用してアプリケーションを作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: tensorflow-mnist
      namespace: default
    spec:
      containers:
      - image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5
        name: tensorflow-mnist
        command:
        - python
        - tensorflow-sample-code/tfjob/docker/mnist/main.py
        - --max_steps=100000
        - --data_dir=tensorflow-sample-code/data
        resources:
          limits:
            nvidia.com/gpu: 1  # このコンテナーに GPU カードを 1 枚要求します。
        workingDir: /root
      restartPolicy: Always
  3. 左側のナビゲーションウィンドウで、ワークロード > ポッド を選択します。作成したPodを見つけ、名前をクリックして詳細を表示します。

    ログ」タブをクリックして、TensorFlow ジョブのログデータを表示できます。以下の出力結果により、ジョブが GPU を正しく使用していることが確認されます。

    image.png