Интеграция баз данных с облачными и контейнерными технологиями становится все более востребованной в современных ИТ-инфраструктурах. Появление SQL Server 2025 с поддержкой вызова внешних REST API через встроенную процедуру sp_invoke_external_rest_endpoint открыло новые горизонты для администраторов и разработчиков баз данных. Возможность напрямую взаимодействовать с Kubernetes API изнутри SQL Server позволяет расширить функционал, автоматизировать управление кластером и эффективно получать данные о состоянии контейнерных приложений без необходимости выхода из среды базы данных. Доступ к Kubernetes API представляет собой вызов HTTP-запросов к API-серверу Kubernetes, который по умолчанию защищен и требует аутентификации. Для обеспечения безопасного и стабильного подключения из SQL Server необходимо создать связку обратного прокси и сертификатов, а также настроить доверие к этим сертификатам с обеих сторон.
Процесс интеграции начинается с генерации собственной корневой сертификатной авторитетности (CA) и последующего выпуска серверного сертификата, подписанного этим CA. Использование собственного CA оправдано, поскольку стандартные корни Kubernetes часто не распознаются через SQL Server, что приводит к ошибкам при попытке подключения. Далее на стороне Kubernetes разворачивается обратный прокси на базе Nginx, который принимает HTTPS-соединения, терминейт TLS-сессию с помощью созданных сертификатов и перенаправляет запросы напрямую к Kubernetes API. Такая схема обеспечивает совместимость протоколов и безопасность соединения. После развертывания обратного прокси создается сервис и ingress ресурс, обеспечивающие маршрутизацию трафика.
Для корректной работы DNS-имя прокси добавляется в файл hosts сервера SQL с привязкой к IP-адресу кластера. На уровне SQL Server сертификат CA копируется в специальную директорию для корневых сертификатов и перезапускается служба, чтобы база доверяла обратному прокси. Также не забываем добавить сертификат в системное хранилище доверенных сертификатов для успешного тестирования через curl. Далее включается возможность использования процедуры sp_invoke_external_rest_endpoint, которая служит для выполнения HTTP-запросов из T-SQL к внешним REST API. Тестовый запрос к эндпоинту /version Kubernetes API показывает успешное получение версии сервера, что доказывает работоспособность настроек.
Однако примитивная попытка запроса списка подов заканчивается ошибкой с отказом в доступе, так как запросы отбрасываются с правами system:anonymous. Для решения возникает необходимость настройки управления доступом на уровне Kubernetes через сервисный аккаунт, роль с нужными правами и привязку этой роли к аккаунту. Это обеспечивает выдачу токена, который служит ключом для аутентификации запросов. Полученный токен используется в заголовках HTTP-запроса в процедуре sp_invoke_external_rest_endpoint, что позволяет снять ограничения и полноценно взаимодействовать с Kubernetes API. Ответы приходят в виде JSON, их можно парсить средствами T-SQL через OPENJSON, что даёт возможность оформлять данные в таблицы прямо внутри базы.
Таким способом легко получить информацию о существующих подах, включая имя, namespace, образ контейнера, IP-адрес и статус. Дальнейшие возможности включают создание ресурсов в Kubernetes из SQL Server, благодаря предоставленному праву create. На примере создаётся новый nginx-под в дефолтном namespace, отправляя JSON-представление объекта Kubernetes через POST-запрос. Положительный ответ подтверждает успешное развертывание контейнера через вызов из базы данных. Такой подход открывает новую грань автоматизации, где SQL Server может не только хранить и обрабатывать данные, но и управлять инфраструктурой контейнеров и сервисов, удовлетворяя современные требования DevOps и облачной разработки.
Интеграция с Kubernetes API через SQL Server 2025 становится мощным инструментом для DBA и инженеров, стремящихся повысить контроль и прозрачность работы кластеров, а также внедрять автоматические процессы развертывания и мониторинга, не выходя из привычной среды работы. Внедрение таких инновационных возможностей свидетельствует о развитии SQL Server как платформы, адаптирующейся к современным требованиям современных ИТ-ландшафтов и контейнеризации.