Корпоративные команды, которые хотят использовать собственные языковые модели, часто сталкиваются с дилеммой: внешние сервисы вроде ChatGPT не проходят по требованиям безопасности данных, а аренда или покупка физических серверов приводит к переплатам за простой в неактивные часы или падению сервиса при пиковых нагрузках. Помимо самой модели, нужно развернуть векторные базы данных, сервисы векторизации и оркестраторы сценариев. Одно из решений — запуск приватной LLM в облачном Managed Kubernetes, который сочетает конфиденциальность, гибкое масштабирование и отказоустойчивость.
В качестве примера рассматривается развертывание RAG-системы с использованием LLM-роутера AIBrix, оркестратора n8n и движка инференса vLLM. Дополнительно потребуются Envoy Gateway, cert-manager для выпуска сертификатов, векторная база Qdrant и PostgreSQL для хранения данных n8n. Кластер Managed Kubernetes разворачивается в регионе ru-6, где доступны конфигурации с GPU. Для системных компонентов и AIBrix выделяются две ноды по 4 vCPU, 8 ГБ RAM и 50 ГБ диска, а для GPU-нагрузок — две ноды с 8 vCPU, 32 ГБ RAM, 150 ГБ диска и одной видеокартой RTX 4090 24 ГБ каждая. Диск 150 ГБ выбран с запасом, чтобы веса модели гарантированно поместились в эфемерном хранилище Kubernetes.
| Компонент | Роль |
|---|---|
| AIBrix | LLM-роутер, единый шлюз для моделей |
| n8n | Оркестратор сценариев |
| vLLM | Движок инференса для LLM |
| Qdrant | Векторная база данных для RAG |
| PostgreSQL | База данных для n8n |
При создании GPU-нод важно установить флаг автоматической установки драйверов и nvidia-device-plugin, а также задать taint vllm=true:NoExecute. Это гарантирует, что на этих нодах будут запускаться только поды vLLM, которые требуют значительных вычислительных ресурсов. Без taint поды vLLM могут зависнуть в состоянии Pending, если нода занята другими компонентами.
Для RAG-системы используются AIBrix, n8n, vLLM, Qdrant и PostgreSQL в Managed Kubernetes.
AIBrix — это LLM-роутер с открытым исходным кодом, который выступает единым шлюзом для различных моделей. Версия v0.7.0, вышедшая к моменту написания статьи, добавила поддержку аудиоинтерфейсов в стиле OpenAI (/v1/audio/transcriptions, /v1/audio/translations), API для генерации изображений и видео (/v1/images/generations, /v1/video/generations), а также эндпоинт /v1/rerank для переранжирования результатов. Кроме того, появился Wire-compatible Batch API для асинхронной пакетной обработки запросов и Management Console (Preview) на React и Go, которая позволяет управлять моделями и заданиями без использования kubectl.
Установка AIBrix выполняется через kustomization.yaml, который подключает официальный манифест aibrix-core-v0.7.0.yaml и применяет патчи для оптимизации. Например, EnvoyProxy переводится в режим DaemonSet, а ресурсы контейнеров ограничиваются 1 CPU и 2 ГБ памяти. Это снижает накладные расходы и повышает стабильность.
Для тех, кто впервые сталкивается с RAG, поясним: RAG (Retrieval-Augmented Generation) — это подход, при котором языковая модель дополняется поиском по внешней базе знаний. Векторная база данных, такая как Qdrant, хранит эмбеддинги документов, а модель при ответе обращается к ним, что повышает точность и актуальность ответов. В данной архитектуре n8n выступает оркестратором сценариев, связывая компоненты в единый конвейер.
Таким образом, Managed Kubernetes с GPU-нодами позволяет развернуть приватную LLM без капитальных затрат на оборудование, обеспечивая при этом безопасность данных и автоматическое масштабирование. AIBrix v0.7.0 расширяет функциональность шлюза, делая его пригодным для мультимодальных нагрузок. Однако стоит учитывать, что проект активно развивается, и в будущих версиях возможны изменения API и конфигурации.

