Container Service for Kubernetes (ACK) Auto Mode クラスターは、GPU の弾力性に最適化されており、GPU ノードのスケーリングと基本操作を自動的に処理します。本トピックでは、Qwen3.5-2B モデルを例に、ACK Auto Mode クラスター上で GPU コンピューティングを利用した大規模モデル推論サービスを迅速にデプロイする方法を説明します。
前提条件
インテリジェントマネージドモードで、要件を満たす GPU ノードプールを作成済みであること。
ステップ 1:モデルファイルの準備と OSS のマウント
このステップでは、一時的な ECS インスタンスを使用して ModelScope から Qwen3.5-2B モデルファイルをダウンロードし、OSS バケットにアップロードします。その後、クラスター用に PersistentVolume (PV) と PersistentVolumeClaim (PVC) を設定します。モデルをボリュームとして推論コンテナにマウントすることで、コンテナ起動時のモデルの再ダウンロードを回避できます。
以下の前提条件を満たしていることを確認してください:
一時的な ECS インスタンスに ossutil をインストールし、設定済みであること。
1. Qwen3.5-2B モデルのダウンロード
一時的な ECS インスタンスで以下の手順を実行し、ModelScope からモデルファイルをダウンロードします。
Git をインストールします。
# yum install git または apt install git を実行してインストールできます。 sudo yum install gitGit Large File Storage (LFS) 拡張機能をインストールします。
# yum install git-lfs または apt install git-lfs を実行してインストールできます。 sudo yum install git-lfsGit LFS を初期化し、ModelScope から Qwen3.5-2B リポジトリをクローンします。このコマンドは、重複ダウンロードを防ぐために LFS の大容量ファイルをスキップします。
git lfs install GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/Qwen/Qwen3.5-2B.gitリポジトリディレクトリに移動し、LFS で管理されている大規模モデルファイルをプルします。
cd Qwen3.5-2B/ git lfs pull
2. モデルファイルの OSS へのアップロード
OSS バケットにモデルを格納するためのディレクトリを作成します。
<Your-Bucket-Name>を実際のバケット名に置き換えてください。ossutil mkdir oss://<Your-Bucket-Name>/models/Qwen3.5-2Bローカルのモデルファイルを OSS にアップロードします。
ossutil cp -r ./Qwen3.5-2B oss://<Your-Bucket-Name>/models/Qwen3.5-2B
3. OSS ボリュームの設定
PV と PVC を作成し、Pod が OSS のモデルディレクトリを読み取り専用ボリュームとしてマウントできるようにします。詳細については、「ossfs 2.0 で静的ボリュームを使用する」をご参照ください。
クラスターが OSS バケットリソースに安全にアクセスできるように、認証方式 (RRSA または AccessKey) を選択し、アクセス認証情報を準備します。
この例では AccessKey 認証を使用します。2つの方法には若干の違いがあります。詳細については、「ossfs 2.0 で静的ボリュームを使用する」をご参照ください。
AccessKey を PV 用の Secret として保存します。
<yourAccessKeyID>と<yourAccessKeySecret>を実際の認証情報に置き換えてください。Secret の名前空間は、アプリケーションの名前空間と一致させる必要があります。kubectl create -n default secret generic oss-secret --from-literal='akId=<yourAccessKeyID>' --from-literal='akSecret=<yourAccessKeySecret>'PV と PVC を作成し、OSS のモデルディレクトリを読み取り専用ボリュームとしてマウントします。次の例では、ossfs 2.0 で静的ボリュームを使用します。
ステップ 2:推論サービスのデプロイと検証
1. Deployment と Service の作成
vLLM フレームワークを使用して Qwen3.5-2B モデルを Deployment としてデプロイし、LoadBalancer タイプの Service として公開します。
[ACK クラスター] ページで、クラスター名をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
YAML のリソースの作成 をクリックし、次の YAML コンテンツを送信します。
YAML を送信した後、クラスターの GPU リソースが不足している場合、Pod は
Pending状態になります。ACK Auto Mode は自動的に GPU ノードのスケーリングをトリガーし、新しいノードを作成して、初期化が完了すると Pod を新しいノードにスケジュールします。手動での操作は不要です。Pod がRunning状態になると、モデルサービスがデプロイされます。デプロイメントが完了したら、展開 ページでアプリケーションのステータスを確認できます。
2. 推論サービスの検証
Service によって公開されたパブリック IP アドレスを取得します。
export EXTERNAL_IP=$(kubectl get svc qwen-2b -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo ${EXTERNAL_IP}推論リクエストを送信して、サービスが利用可能であることを確認します。
8.XX.XX.89をご利用のパブリック IP アドレスに置き換えてください。curl http://8.XX.XX.89:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen3.5-2B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Kubernetes" } ] } ], "max_tokens": 200 }'期待される出力:
{"id":"chatcmpl-98f158cdbbb38087","object":"chat.completion","created":1775043962,"model":"Qwen3.5-2B","choices":[{"index":0,"message":{"role":"assistant","content":"**Kubernetes** is an open-source container orchestration platform that automates deployment, scaling, management, and repair of containerized applications..."},"finish_reason":"length"}],"usage":{"prompt_tokens":14,"total_tokens":214,"completion_tokens":200}}