Высокий уровень доступности для контейнеров SQL Server

Область применения: SQL Server — Linux

Создание собственных экземпляров SQL Server в собственном коде Kubernetes и управление ими.

Развертывание SQL Server в контейнерах Docker под управлением Kubernetes. В Kubernetes контейнер с экземпляром SQL Server может автоматически восстанавливаться в случае отказа узла кластера.

В SQL Server 2017 представлен образ Docker, который можно развертывать в Kubernetes. Вы можете использовать для настройки этого образа утверждение постоянного тома Kubernetes (PVC). Kubernetes отслеживает процесс SQL Server в контейнере. В случае сбоя процесса, pod, контейнера или узла Kubernetes автоматически загружает другой экземпляр и восстанавливает подключение к хранилищу.

Контейнер с экземпляром SQL Server в Kubernetes

В Kubernetes версии 1.6 и более поздних поддерживаются классы хранилища, утверждения постоянного тома, а также тип тома диска Azure.

В этой конфигурации Kubernetes играет роль оркестратора контейнера.

Схема с кластером SQL Server Kubernetes.

На предыдущей схеме mssql-server — это экземпляр SQL Server (контейнер) в pod. Применение набора реплик гарантирует автоматическое восстановление pod в случае отказа узла. Приложения подключаются к службе. В этом случае служба представляет подсистему балансировки нагрузки, которая содержит IP-адрес, остающийся неизменным в случае отказа mssql-server.

Kubernetes управляет ресурсами в кластере. В случае отказа узла, на котором размещается контейнер экземпляра SQL Server, осуществляется загрузка нового контейнера экземпляра SQL Server, который привязывается к тому же постоянному хранилищу.

SQL Server на Linux поддерживает контейнеры в Kubernetes, OpenShift и D2Hi.