Skip to main content
Utiliza un servicio de Compute cuando necesites GPUs para una carga de trabajo persistente, como servir modelos. Un servicio es la misma ejecución genérica de contenedor que un trabajo, más puertos con nombre, una sonda de preparación (readiness) opcional y un endpoint público — Compute no tiene un esquema de despliegue ni de modelo, así que esta guía sirve con vLLM puramente como carga útil de la carga de trabajo. Un servicio se ejecuta hasta que lo terminas, y tú eres dueño del ciclo de vida de principio a fin: Compute nunca reinicia, reescala ni cambia revisiones a tus espaldas, así que lo que desplegaste es exactamente lo que está en ejecución. Esa previsibilidad viene con dos reglas: mantén el proceso del servidor en primer plano durante toda la vida del servicio — una carga de trabajo que sale, incluso con código 0, termina el servicio como failed — y reemplaza un servicio fallido u obsoleto creando uno nuevo.

Antes de comenzar

Necesitas: Los servicios pasan por requestedallocatingprovisioningready, y permanecen ahí hasta que algo termina la ejecución:
  • Un fallo en cualquier fase, incluida la salida de la carga de trabajo después de ready, desmonta el servicio a través de terminating hasta failed.
  • Una terminación explícita, un límite alcanzado o un presupuesto de organización agotado terminan en terminated en su lugar.
Con una sonda de preparación, ready significa que la sonda pasó. Sin una, solo significa que la carga de trabajo se lanzó; no hace ninguna afirmación de salud a nivel de aplicación, así que declara una sonda siempre que la imagen ofrezca una ruta de salud.
La facturación comienza en la asignación, no en la disponibilidad.El gasto se acumula desde la asignación hasta que el servicio alcanza un estado terminal, incluyendo todo el tiempo de aprovisionamiento y de carga del modelo. Un servicio nunca se completa por sí solo — termínalo cuando acabes y establece limits como salvaguarda.

Paso 1 - Guarda la clave del endpoint como un secreto

Pasa la clave de API de la carga de trabajo mediante secret_env, no en línea en el comando, para que nunca aparezca en las especificaciones de pod del proveedor.
Los valores de los secretos son de solo escritura. Guarda el id sec_... devuelto para el cuerpo de creación, y el valor de la clave en sí para tus clientes.

Paso 2 - Crea el servicio

Crea el servicio con el encabezado obligatorio Idempotency-Key, exactamente igual que con los trabajos. Este ejemplo sirve Qwen2.5-0.5B-Instruct con el servidor compatible con OpenAI de vLLM, replicando la prueba de humo de la plataforma:
Notas sobre los campos: Como con los trabajos, 201 significa que la solicitud fue aceptada; los problemas de capacidad y aprovisionamiento aparecen después a través de state, reason, los registros y los eventos.

Paso 3 - Espera a que esté listo

La descarga y la carga del modelo ocurren dentro de la carga de trabajo, así que espera minutos de provisioning antes de que la sonda de preparación pase. Un servicio listo incluye sus endpoints públicos:
Si en cambio el servicio aterriza en failed, lee reason, y luego GET .../logs?source=user para la salida del propio servidor y source=system para problemas de asignación y arranque — la misma superficie de registros y eventos que los trabajos.

Paso 4 - Llama a tu endpoint

El endpoint es vLLM puro: una API compatible con OpenAI autenticada con la clave que guardaste en el Paso 1.
curl
Una solicitud sin la clave es rechazada por el propio vLLM — Compute no se interpone delante de tu endpoint.
Comprueba el esquema de la url del endpoint antes de enviar cualquier cosa sensible. Dependiendo de dónde se asignó la capacidad, un endpoint puede servirse sobre http plano, en cuyo caso los tokens bearer y las cargas útiles cruzan internet sin cifrar.

Paso 5 - Regístralo en el gateway LLM

Opcionalmente, registra el endpoint como un modelo propio (bring-your-own) en el gateway LLM de MKA1, para que se pueda llamar a través de la API /responses de la plataforma con claves normales de la plataforma. Agrega el endpoint a tu catálogo de modelos:
curl
Luego registra el id de modelo devuelto:
curl
Los modelos con formato completions se aceptan en /responses; el gateway maneja por ti el upstream de chat-completions. Por eso el cuerpo de creación del Paso 2 pasó los flags de tool-choice a vLLM.

Paso 6 - Termina el servicio

Un servicio se ejecuta, y factura, hasta que lo detienes.
La terminación es idempotente, libera el recurso del proveedor y detiene el gasto; el registro sigue siendo legible para auditoría y uso.

Servir un modelo desde mka1-repos

Para servir pesos desde mka1-repos — como la salida fusionada de un trabajo de ajuste fino, o pesos que subiste por git — cambia solo el identificador del modelo y las credenciales. Compute siempre inyecta HF_ENDPOINT en cada carga de trabajo, apuntando al endpoint de artefactos configurado para tu clúster, y vLLM resuelve los identificadores de modelo contra él. mka1-repos autentica con tu clave de API de MKA1, inyectada como HF_TOKEN mediante secret_env:
El servicio descarga los pesos desde el repositorio de tu organización al arrancar y los sirve bajo el mismo identificador, cerrando el ciclo: ajusta finamente como trabajo, publica en mka1-repos y sirve como servicio.

Supervisar el gasto

El gasto de los servicios se acumula por minuto completo desde la asignación y aparece junto a los trabajos en el endpoint de uso:
El gasto de Compute se descuenta de los mismos presupuestos de organización que cualquier otro servicio de MKA1, y un servicio que alcanza un presupuesto de la organización o sus propios limits se termina sin periodo de gracia.

Referencia de API

Para ver el esquema completo de solicitud y respuesta, abre los grupos de Compute en la Referencia de API.

Ver también