vLLM Production Stack: установить Helm-чарт и проверить ответ
На странице · 4 разделов
vLLM Production Stack — готовый набор компонентов для обслуживания модели в Kubernetes: сервер vLLM принимает запросы, а router направляет их к серверу. Для первой проверки официальный пример разворачивает одну учебную модель и позволяет получить ответ через локально перенаправленный порт. Нужен уже работающий GPU-кластер; Modelium сверил инструкцию с кодом, но не запускал кластер.
Для инженера, не домашний рецепт. Понадобятся изолированный Kubernetes-кластер с доступным GPU, установленные
kubectl,helmиgit, права на установку приложений и место для образов и весов. Официальный учебный файл запрашивает 6 CPU, 16Gi оперативной памяти и 1 GPU для группы контейнеров (pod): это параметры примера, не минимальные требования к любому запуску. На этой машине Modelium нет GPU-кластера и Helm; ни модель, ни маршрутизатор редакция не запускала. Подготовка требует сети для репозитория, образов, зависимостей чарта и весов; эта статья не подтверждает офлайн-работу. s1 s2
Что даст учебная установка?
Представьте отдельный тестовый кластер: клиент посылает запрос на один адрес, router передаёт его одному серверу vLLM с моделью. Helm-чарт — конфигурация, по которой Kubernetes создаёт эти компоненты. Официальный минимальный пример использует facebook/opt-125m, одну реплику и один GPU; здесь проверяем маршрут запроса, а не качество модели, работу под нагрузкой или отказоустойчивость. s1
Важная граница: у учебной модели OPT отдельная лицензия с разрешением для некоммерческих исследований, но с запретом коммерческого и производственного использования. Название «Production Stack» относится к программному стеку, а не делает эту модель пригодной для бизнеса. Для реальной задачи выбирайте модель и версию с подходящими условиями отдельно. s4
Как развернуть пример на отдельном кластере?
- Убедитесь, что
kubectl get nodesпоказывает ваш тестовый кластер и что он действительно предоставляет GPU рабочим pod. Не запускайте команды в рабочем кластере по умолчанию. Проверьте установленный контекст командойkubectl config current-context. Если нет GPU или прав, остановитесь: пример рассчитан на готовый GPU-кластер, а не обычный домашний ноутбук. s1 - В терминале получите официальный репозиторий:
git clone https://github.com/vllm-project/production-stack.git, затемcd production-stackиgit checkout 7b1164dbe71b1f02ede85152bdfc2f383376dc2d. Проверьтеgit rev-parse HEAD: вывод должен совпасть с указанным полным коммитом. Это закрепляет файлы чарта и пример; образы с тегомlatestв самом примере не закреплены, поэтому побайтовая воспроизводимость образов здесь не обещается. s1 s2 - В каталоге репозитория выполните
helm dependency build ./helm: зависимости чарта загружаются по егоChart.lock. На своём изолированном стенде установите локальный чарт командойhelm install vllm ./helm -f tutorials/assets/values-01-minimal-example.yaml. Отсутствие ошибок Helm ещё не означает, что модель запущена. Если релиз с именемvllmв текущем пространстве имён кластера (namespace) уже есть, не переустанавливайте поверх него. s1 s3 - Выполните
kubectl get podsи дождитесь состоянияRunningи готовности router и модели; первоначальная загрузка образа и весов может занять время. Если pod не готов, посмотрите его события и логи на своём тестовом кластере, прежде чем отправлять запрос. s1
Как проверить именно ответ модели через router?
В отдельном терминале запустите kubectl port-forward svc/vllm-router-service 30080:80 и оставьте команду работающей. Перенаправление даёт адрес на вашем компьютере, а не разрешение открывать этот сервис в интернет. В первом терминале запросите curl http://127.0.0.1:30080/v1/models: в списке ожидается ID facebook/opt-125m. Один список — ещё не доказательство генерации. s1
Затем отправьте короткое продолжение текста: curl -X POST http://127.0.0.1:30080/v1/completions -H 'Content-Type: application/json' -d '{"model":"facebook/opt-125m","prompt":"Once upon a time,","max_tokens":10}'. Проверьте HTTP-успех и поле choices[0].text в ответе, но не ожидайте заданных слов: модель может продолжить фразу по-разному. Сравните ID запрошенной модели с полем model. Это тест нового ответа через router, не тест безопасности, производительности или правильности фактов. Modelium этот запрос не выполнял. s1
Если /v1/models пуст или запрос не проходит, сначала сравните kubectl get pods, запущенный port-forward и точный ID модели в файле tutorials/assets/values-01-minimal-example.yaml. Не подменяйте тест ответом напрямую от pod — иначе router останется непроверенным. s1
Где смотреть метрики и как убрать учебный релиз?
В закреплённом чарте kube-prometheus-stack.enabled, оба serviceMonitor.enabled и grafanaDashboards.enabled по умолчанию false. Поэтому успешно отвечающая модель не означает, что Prometheus уже собирает показатели или что Grafana установлена. Для своей тестовой среды с Prometheus Operator авторы предлагают отдельно включить ServiceMonitor для engine и router; для пустого кластера — дополнительно kube-prometheus-stack.enabled: true. Проверьте наличие соответствующих объектов и фактический сбор на своём стенде до вывода о наблюдаемости; мы его не проводили. s2 s3
Когда учебный релиз больше не нужен, остановите port-forward через Ctrl+C и выполните helm uninstall vllm только в том же тестовом namespace и контексте. Удаление релиза не равнозначно автоматической очистке всех загруженных данных и persistent volumes; проверьте остатки отдельно, не удаляя рабочие ресурсы. Если кластера пока нет, начните с одиночного сервера vLLM и проверьте модель без Kubernetes. s1 s2
Источники
- vLLM Production Stack: minimal Helm installation, закреплённый tutorial — revision 7b1164dbe71b1f02ede85152bdfc2f383376dc2d. Получено 22.10.2026.
- vLLM Production Stack: значения Helm-чарта 0.1.13 — revision 7b1164dbe71b1f02ede85152bdfc2f383376dc2d. Получено 22.10.2026.
- vLLM Production Stack: наблюдаемость и установка Helm — revision 7b1164dbe71b1f02ede85152bdfc2f383376dc2d. Получено 22.10.2026.
- Meta OPT: лицензия учебной модели на закреплённой ревизии — revision 27dcfa74d334bc871f3234de431e71c6eeba5dd6. Получено 22.10.2026.