Создание управляемого экземпляра Azure SQL с помощью средств Kubernetes

Примечание

В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.

Последние обновления доступны в заметках о выпуске.

Для текущего обновления развертывание контроллера данных Arc в режиме прямого подключения поддерживается только на портале Azure.

Предварительные требования

Созданный контроллер данных Azure Arc.

Чтобы создать управляемый экземпляр SQL с помощью средств Kubernetes, необходимо их установить. В примерах в этой статье будет использоваться kubectl, но аналогичные подходы можно использовать и для других средств Kubernetes, например панели мониторинга Kubernetes, oc или helm, если вы знакомы с этими средствами и YAML/JSON Kubernetes.

Установка средства kubectl

Обзор

Чтобы создать управляемый экземпляр SQL, необходимо создать секрет Kubernetes для безопасного хранения имени для входа и пароля системного администратора, а также ресурс настраиваемого управляемого экземпляра SQL на основе определения ресурса sqlmanagedinstance.

Создание YAML-файла

В качестве отправной точки для создания собственного YAML-файла управляемого экземпляра SQL можно использовать шаблон YAML-файла. Скачайте этот файл на локальный компьютер и откройте в текстовом редакторе. Удобно использовать текстовый редактор, например VS Code, поддерживающий выделение синтаксиса и анализ кода для YAML-файлов.

Это пример YAML-файла:

apiVersion: v1
data:
  password: <your base64 encoded password>
  username: <your base64 encoded user name. 'sa' is not allowed>
kind: Secret
metadata:
  name: sql1-login-secret
type: Opaque
---
apiVersion: sql.arcdata.microsoft.com/v1alpha1
kind: sqlmanagedinstance
metadata:
  name: sql1
spec:
  limits:
    memory: 4Gi
    vcores: "4"
  requests:
    memory: 2Gi
    vcores: "1"
  service:
    type: LoadBalancer
  storage:
    data:
      className: default
      size: 5Gi
    logs:
      className: default
      size: 1Gi

Настройка имени для входа и пароля

Секрет Kubernetes хранится в формате строки в кодировке Base64. Одна строка используется для имени пользователя, а другая — для пароля. Вам потребуется выполнить шифрование имени для входа и пароля системного администратора в кодировке Base64 и поместить указать их вместо заполнителей data.password и data.username соответственно. Не используйте символы < и >, указанные в шаблоне.

Примечание

Из соображений безопасности использование значения sa в качестве имени для входа не допускается. Обеспечьте соблюдение политики сложности паролей.

Можно воспользоваться веб-инструментом для кодировки задаваемого имени пользователя и пароля в Base64 или использовать встроенные средства, работающие из интерфейса командной строки, в зависимости от платформы.

PowerShell

[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('<your string to encode here>'))

#Example
#[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('example'))

Linux/macOS

echo -n '<your string to encode here>' | base64

#Example
# echo -n 'example' | base64

Настройка имени

В шаблоне атрибуту имени присваивается значение sql1. Его можно изменить, но необходимо использовать символы, соответствующие стандартам DNS-имен. Понадобится также соответствующим образом изменить имя секрета. Например, если для управляемого экземпляра SQL указать имя sql2, понадобится также изменить имя секрета с sql1-login-secret на sql2-login-secret.

Настройка требований к ресурсам

При необходимости можно изменить требования к ресурсам — запросы и ограничения на использование ОЗУ и ядер.

Примечание

Дополнительные сведения см. в статье Управление ресурсами Kubernetes.

Требования к ограничениям и запросам ресурсов:

  • В целях выставления счетов обязательно нужно указать предельное количество ядер.
  • Остальные запросы и ограничения ресурсов являются необязательными.
  • Предельное и запрашиваемое количество ядер должно быть положительным целым числом, если оно указано.
  • Запрашиваемое количество ядер должно быть не менее 2, если оно указано.
  • Формат значения памяти соответствует нотации Kubernetes.
  • Запрашиваемый объем памяти должен быть не менее 2 ГиБ, если указано.
  • В качестве общей рекомендации в рабочих вариантах использования необходимо по 4 ГБ ОЗУ для каждого ядра.

Настройка типа службы

При необходимости тип службы можно изменить на NodePort. Будет назначен случайный номер порта.

Настройка хранилища

Классы хранения для хранилища можно настроить в соответствии с вашей средой. Если вы не знаете, какие классы хранилища доступны, можно выполнить команду kubectl get storageclass, чтобы просмотреть их. В шаблоне используется значение по умолчанию — default. Это означает, что существует класс хранения с именем default, а не то, что имеется класс хранения, используемый по умолчанию. При необходимости можно также изменить размер хранилища. Подробные сведения приведены в статье о конфигурации хранилища.

Создание управляемого экземпляра SQL

Теперь, когда вы настроили YAML-файл управляемого экземпляра SQL, вы можете создать управляемый экземпляр SQL, выполнив следующую команду:

kubectl create -n <your target namespace> -f <path to your yaml file>

#Example
#kubectl create -n arc -f C:\arc-data-services\sqlmi.yaml

Мониторинг состояния создания

Создание управляемого экземпляра SQL займет несколько минут. Вы можете отслеживать ход выполнения этой операции в другом окне терминала с помощью следующих команд:

Примечание

В примерах команд ниже предполагается, что вы создали управляемый экземпляр SQL с именем sql1 и пространством имен Kubernetes с именем arc. Если вы использовали другое пространство имен или имя управляемого экземпляра SQL, вы можете заменить arc и sqlmi своими именами.

kubectl get sqlmi/sql1 --namespace arc
kubectl get pods --namespace arc

Вы также можете проверить состояние создания любого модуля Pod, выполнив команду, как показано ниже. Это особенно полезно для устранения неполадок.

kubectl describe po/<pod name> --namespace arc

#Example:
#kubectl describe po/sql1-0 --namespace arc

Устранение неполадок при создании

Если при создании возникают какие-либо проблемы, ознакомьтесь с руководством по устранению неполадок.

Дальнейшие действия

Подключение к Управляемому экземпляру SQL с поддержкой Azure Arc