Перейти к содержанию

Безопасная изоляция метрик GPU в многопользовательском Kubernetes

8.0/10

Контекст

В многопользовательских кластерах Kubernetes централизованный Prometheus собирал метрики со всей инфраструктуры, но платформенная команда не могла открыть к ним доступ из-за отсутствия изоляции неймспейсов в PromQL и риска перегрузки хранилища сложными запросами. В результате команды не имели видимости своих ресурсов, а дорогостоящие GPU неделями простаивали вхолостую без ведома их владельцев.

Суть

Инженеры Adobe разработали архитектуру prometheus-multi-tenant-proxy, связывающую центральное хранилище и изолированные экземпляры Prometheus команд. Аутентификация выполняется через kube-rbac-proxy с использованием RBAC Kubernetes, а prom-label-proxy автоматически внедряет фильтр неймспейса в каждый PromQL-запрос ниже уровня языка, исключая утечку чужих данных. С помощью CRD-ресурса MetricAccess команды декларируют нужные метрики, а опция metricIsolation принудительно отсекает сторонние ряды еще на этапе сбора, что сократило объем хранимых данных у тенанта примерно на 97% (с 10 000+ до ~300 рядов) и решило проблему «шумного соседа». Отобранные метрики затем реплицируются через remote-write в собственные Prometheus-экземпляры команд, включая поддержку HA-конфигураций.

Вывод

Комбинация RBAC-авторизации, принудительной подстановки меток и декларативного self-service позволяет безопасно предоставить командам доступ к метрикам без развертывания вендорских платформ. Такой подход возвращает разработчикам видимость стоимости и эффективности инфраструктуры, сохраняя надежность центрального хранилища.