Los clústeres de Container Service for Kubernetes (ACK) Auto Mode están optimizados para la elasticidad de GPU y gestionan automáticamente el escalado y las operaciones básicas de los nodos GPU. Este tema toma como ejemplo el modelo Qwen3.5-2B para mostrar cómo desplegar rápidamente un servicio de inference de modelo grande con capacidad de cómputo GPU en un clúster de ACK Auto Mode.
Requisitos previos
Usted ha created an ACK Auto Mode cluster.
-
Usted creó un node pool de GPU compatible en modo de hosting inteligente.
Paso 1: preparar los archivos del modelo y montar OSS
En este paso se utiliza una instancia ECS temporal para descargar los archivos del modelo Qwen3.5-2B desde ModelScope y cargarlos a un bucket de OSS. Después, se configura un PersistentVolume (PV) y un PersistentVolumeClaim (PVC) para el clúster. Montar el modelo en el contenedor de inference como un volumen evita que se descargue repetidamente cada vez que inicia el contenedor.
Asegúrese de cumplir con a continuación requisitos previos:
Usted ha created an OSS bucket.
Usted instaló y configuró ossutil en la instancia ECS temporal.
1. Descargar el modelo Qwen3.5-2B
Ejecute los siguientes pasos en la instancia ECS temporal para descargar los archivos del modelo desde ModelScope.
-
Instale Git.
# You can run yum install git or apt install git to install it. sudo yum install git -
Instale la extensión 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 -
Inicialice Git LFS y clone el repositorio Qwen3.5-2B desde ModelScope. Este comando omite los archivos grandes de LFS para evitar descargas duplicadas.
git lfs install GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/Qwen/Qwen3.5-2B.git -
Cambie al directorio del repositorio y descargue los archivos grandes del modelo administrados por LFS.
cd Qwen3.5-2B/ git lfs pull
2. Cargar los archivos del modelo a OSS
-
Cree un directorio en el bucket de OSS para almacenar el modelo.
Reemplace
<Your-Bucket-Name>con el nombre real de su bucket.ossutil mkdir oss://<Your-Bucket-Name>/models/Qwen3.5-2B -
Cargue los archivos locales del modelo a OSS.
ossutil cp -r ./Qwen3.5-2B oss://<Your-Bucket-Name>/models/Qwen3.5-2B
3. Configurar un volumen de OSS
Cree un PV y un PVC para permitir que los pods monten el directorio del modelo en OSS como un volumen de solo lectura. Para obtener más información, consulte Use a static volume with ossfs 2.0.
-
Select an authentication method (RRSA or AccessKey) and prepare access credentials para garantizar que el clúster acceda de forma segura a los recursos del bucket de OSS.
Este ejemplo utiliza autenticación mediante AccessKey. Ambos métodos difieren ligeramente. Para obtener más información, consulte Use a static volume with ossfs 2.0 .
-
Guarde su AccessKey como un Secret para el PV.
Reemplace
<yourAccessKeyID>y<yourAccessKeySecret>con sus credenciales reales. El namespace del Secret debe coincidir con el namespace de la aplicación.kubectl create -n default secret generic oss-secret --from-literal='akId=<yourAccessKeyID>' --from-literal='akSecret=<yourAccessKeySecret>' -
Cree un PV y un PVC para montar el directorio del modelo en OSS como un volumen de solo lectura. A continuación se muestra un ejemplo que uses a static volume with ossfs 2.0.
Paso 2: desplegar y comprobar el servicio de inference
1. Crear el Deployment y el Service
Utilice el framework vLLM para desplegar el modelo Qwen3.5-2B como un Deployment y expóngalo como un Service de tipo LoadBalancer.
En la página ACK Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
Haga clic en Create from YAML y envíe a continuación contenido YAML.
Si el clúster no cuenta con suficientes recursos de GPU después de enviar el YAML, el pod pasará al estado
Pending. ACK Auto Mode activa automáticamente el escalado de nodos GPU, crea nuevos nodos y programa el pod en uno de ellos cuando finaliza su inicialización. No se requiere intervención manual. Cuando el pod entra en el estadoRunning, el despliegue del servicio del modelo queda completo.Una vez completado el despliegue, consulte el estado de la aplicación en la página Deployments.
2. Comprobar el servicio de inference
-
Obtenga la dirección IP pública que expone el Service.
export EXTERNAL_IP=$(kubectl get svc qwen-2b -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo ${EXTERNAL_IP} -
Envíe una solicitud de inference para comprobar que el servicio está disponible.
Reemplace
8.XX.XX.89con su dirección IP pública.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 }'Resultado esperado:
{"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}}