Les clusters Container Service for Kubernetes (ACK) en mode automatique sont optimisés pour l'élasticité des GPU et gèrent automatiquement la mise à l'échelle ainsi que les opérations de base des nœuds GPU. Cette rubrique utilise le modèle Qwen3,5-2B comme exemple pour illustrer comment déployer rapidement un service d'inférence de grand modèle avec calcul GPU sur un cluster ACK en mode automatique.
Prérequis
Vous avez créé un cluster ACK en mode automatique.
-
Vous avez créé un pool de nœuds GPU éligible en mode d'hébergement intelligent.
Étape 1 : Préparer les fichiers du modèle et monter OSS
Dans cette étape, vous utilisez une instance ECS temporaire pour télécharger les fichiers du modèle Qwen3,5-2B depuis ModelScope, les téléverser vers un bucket OSS, puis configurer un volume persistant (PV) et une revendication de volume persistant (PVC) pour le cluster. Le montage du modèle dans le conteneur d'inférence sous forme de volume évite les téléchargements répétés au démarrage du conteneur.
Assurez-vous que les prérequis suivants sont remplis :
Vous avez créé un bucket OSS.
Vous avez installé et configuré ossutil sur l'instance ECS temporaire.
1. Télécharger le modèle Qwen3,5-2B
Effectuez les étapes suivantes sur l'instance ECS temporaire pour télécharger les fichiers du modèle depuis ModelScope.
-
Installez Git.
# You can run yum install git or apt install git to install it. sudo yum install git -
Installez l'extension Git Large File Storage (LFS).
# You can run yum install git-lfs or apt install git-lfs to install it. sudo yum install git-lfs -
Initialisez Git LFS et clonez le dépôt Qwen3,5-2B depuis ModelScope. Cette commande ignore les fichiers volumineux LFS pour éviter les téléchargements en double.
git lfs install GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/Qwen/Qwen3.5-2B.git -
Accédez au répertoire du dépôt et récupérez les fichiers du grand modèle gérés par LFS.
cd Qwen3.5-2B/ git lfs pull
2. Téléverser les fichiers du modèle vers OSS
-
Créez un répertoire dans le bucket OSS pour stocker le modèle.
Remplacez
<Your-Bucket-Name>par le nom réel de votre bucket.ossutil mkdir oss://<Your-Bucket-Name>/models/Qwen3.5-2B -
Téléversez les fichiers locaux du modèle vers OSS.
ossutil cp -r ./Qwen3.5-2B oss://<Your-Bucket-Name>/models/Qwen3.5-2B
3. Configurer un volume OSS
Créez un PV et un PVC pour permettre aux pods de monter le répertoire du modèle dans OSS en tant que volume en lecture seule. Pour plus d'informations, consultez Utiliser un volume statique avec ossfs 2,0.
-
Sélectionnez une méthode d'authentification (RRSA ou AccessKey) et préparez les identifiants d'accès afin de garantir que le cluster puisse accéder de manière sécurisée aux ressources du bucket OSS.
Cet exemple utilise l'authentification par AccessKey. Les deux méthodes diffèrent légèrement. Pour plus d'informations, consultez Utiliser un volume statique avec ossfs 2,0 .
-
Stockez votre AccessKey en tant que Secret pour le PV.
Remplacez
<yourAccessKeyID>et<yourAccessKeySecret>par vos identifiants réels. Le namespace du Secret doit correspondre au namespace de l'application.kubectl create -n default secret generic oss-secret --from-literal='akId=<yourAccessKeyID>' --from-literal='akSecret=<yourAccessKeySecret>' -
Créez un PV et un PVC pour monter le répertoire du modèle dans OSS en tant que volume en lecture seule. L'exemple suivant utilise un volume statique avec ossfs 2,0.
Étape 2 : Déployer et vérifier le service d'inférence
1. Créer le Deployment et le Service
Utilisez le framework vLLM pour déployer le modèle Qwen3,5-2B en tant que Deployment et l'exposer via un Service LoadBalancer.
Sur la page Clusters ACK, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Cliquez sur Create from YAML et soumettez le contenu YAML suivant.
Après avoir soumis le YAML, si le cluster ne dispose pas de suffisamment de ressources GPU, le pod passera à l'état
Pending. Le mode automatique ACK déclenche automatiquement la mise à l'échelle des nœuds GPU, crée de nouveaux nœuds et planifie le pod sur un nouveau nœud une fois celui-ci initialisé. Aucune intervention manuelle n'est requise. Lorsque le pod passe à l'étatRunning, le service de modèle est déployé.Une fois le déploiement terminé, vous pouvez consulter l'état de l'application sur la page Deployments.
2. Vérifier le service d'inférence
-
Récupérez l'adresse IP publique exposée par le Service.
export EXTERNAL_IP=$(kubectl get svc qwen-2b -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo ${EXTERNAL_IP} -
Envoyez une requête d'inférence pour vérifier que le service est disponible.
Remplacez
8.XX.XX.89par votre adresse IP publique.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 }'Sortie attendue :
{"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}}