Создание сервера PostgreSQL с поддержкой Azure Arc из CLI

В этом документе описаны шаги по созданию сервера PostgreSQL в Azure Arc и подключению к нему.

Необходимые компоненты

Прежде чем продолжить работу с задачами в этой статье, необходимо иметь необходимые средства. Для всех развертываний требуются следующие средства:

  • Azure Data Studio

  • Расширение Azure Arc для Azure Data Studio

  • Azure CLI (az)

  • arcdata расширение для Azure CLI

  • kubectl

    Дополнительные клиентские средства в зависимости от среды. Более полный список см. в разделе "Клиентские инструменты".

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

Примечание.

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

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

Начало работы

Если вы уже знакомы с нижеприведенными темами, этот абзац можно пропустить. Прежде чем перейти к процессу создания, необходимо ознакомиться со следующими важными темами:

Если вы предпочитаете действовать без самостоятельной подготовки полнофункциональной среды, начните работу с помощью статьи Быстрый старт с Azure Arc на основе Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) или в виртуальной машине Azure.

Предварительный и временный шаг только для пользователей OpenShift

Выполните этот шаг, прежде чем переходить к следующему шагу. Чтобы развернуть сервер PostgreSQL в Red Hat OpenShift в проекте, отличном от по умолчанию, необходимо выполнить следующие команды в кластере, чтобы обновить ограничения безопасности. Эта команда предоставляет необходимые привилегии учетным записям служб, которые будут запускать сервер PostgreSQL. Ограничение контекста безопасности (SCC) arc-data-scc — это ограничение, которое вы добавили при развертывании контроллера данных Azure Arc.

oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>

Имя сервера — это имя сервера, который будет создан на следующем шаге.

Дополнительные сведения об SCC в OpenShift см. в документации по OpenShift. Перейдите к следующему шагу.

Создание сервера PostgreSQL с поддержкой Azure Arc

Чтобы создать сервер PostgreSQL с поддержкой Azure Arc на контроллере данных Arc, используйте команду az postgres server-arc create , в которую вы будете передавать несколько параметров.

Дополнительные сведения обо всех параметрах, которые можно задавать во время создания, см. в выводе команды:

az postgres server-arc create --help

Ниже приведены основные параметры, которые следует учитывать.

  • имя сервера , который требуется развернуть. Укажите либо --name, либо -n, после чего должно следовать имя длиной не более 11 символов.

  • Классы хранилища, которые требуется использовать на сервере. Важно задать класс хранилища прямо во время развертывания сервера, так как этот параметр нельзя изменить после развертывания. Вы можете указать классы хранения, предназначенные для данных, журналов и резервных копий. По умолчанию, если классы хранения не указаны, будут использоваться классы хранения контроллера данных.

    • Чтобы задать класс хранилища для резервных копий, укажите параметр --storage-class-backups , за которым следует имя класса хранилища. Исключение этого параметра отключает автоматические резервные копии
    • Чтобы задать класс хранилища для данных, укажите параметр --storage-class-data , за которым следует имя класса хранилища.
    • Чтобы задать класс хранилища для журналов, укажите параметр --storage-class-logs , за которым следует имя класса хранилища.

    Важно!

    Если необходимо изменить класс хранилища после развертывания, извлечь данные, удалить сервер, создать новый сервер и импортировать данные.

При выполнении команды создания вам будет предложено ввести имя пользователя и пароль администратора. Перед выполнением команды создания можно пропустить интерактивный запрос, задав AZDATA_USERNAME переменные среды сеанса и AZDATA_PASSWORD переменные среды сеанса.

Примеры

Чтобы развернуть сервер PostgreSQL с именем postgres01, который использует те же классы хранения, что и контроллер данных, выполните следующую команду:

az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s

Примечание.

  • При развертывании контроллера данных с помощью AZDATA_USERNAME переменных среды сеанса и AZDATA_PASSWORD переменных среды сеанса в одном сеансе терминала значения AZDATA_PASSWORD будут использоваться для развертывания сервера PostgreSQL. Если вы предпочитаете использовать другой пароль, обновите значения для AZDATA_USERNAME и AZDATA_PASSWORD (2) удалите AZDATA_USERNAMEAZDATA_PASSWORD переменные среды или (3) удалите их значения, чтобы ввести имя пользователя и пароль в интерактивном режиме при создании сервера.
  • Создание сервера PostgreSQL не будет немедленно регистрировать ресурсы в Azure. В рамках процесса отправки в Azure данных инвентаризации ресурсов или данных об использовании необходимые ресурсы будут создаваться в Azure, и эти ресурсы можно просматривать на портале Azure.

Вывод списка серверов PostgreSQL, развернутых в контроллере данных Arc

Чтобы вывести список серверов PostgreSQL, развернутых в контроллере данных Arc, выполните следующую команду:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s
  {
    "name": "postgres01",
    "state": "Ready"
  }

Получение конечных точек для подключения к серверам PostgreSQL с поддержкой Azure Arc

Чтобы просмотреть конечные точки для сервера PostgreSQL, выполните следующую команду:

az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s

Например:

{
  "instances": [
    {
      "endpoints": [
        {
          "description": "PostgreSQL Instance",
          "endpoint": "postgresql://postgres:<replace with password>@123.456.78.912:5432"
        },
        {
          "description": "Log Search Dashboard",
        },
        {
          "description": "Metrics Dashboard",
          "endpoint": "https://98.765.432.11:3000/d/postgres-metrics?var-Namespace=arc&var-Name=postgres01"
        }
      ],
      "engine": "PostgreSql",
      "name": "postgres01"
    }
  ],
  "namespace": "arc"
}

Вы можете использовать конечную точку экземпляра PostgreSQL для подключения к серверу PostgreSQL из избранного средства: Azure Data Studio, pgcli psql, pg Администратор и т. д.

В этот раз воспользуйтесь сборкой Azure Data Studio для участников программы предварительной оценки.

Специальное примечание о развертываниях виртуальных машин Azure

При использовании виртуальной машины Azure в IP-адресе конечной точки не отображается общедоступный IP-адрес. Чтобы получить общедоступный IP-адрес, используйте следующую команду:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Затем можно объединить общедоступный IP-адрес с портом, чтобы выполнить подключение.

Также может потребоваться предоставить порт сервера PostgreSQL через шлюз безопасности сети (NSG). Чтобы разрешить трафик через группу безопасности сети, задайте правило. Чтобы задать правило, необходимо знать имя группы безопасности сети. Получить информацию об NSG можно с помощью следующей команды:

az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table

После получения имени NSG можно добавить правило для брандмауэра, используя следующую команду. В этом примере создается правило NSG для порта 30655 и разрешается подключение с любого исходного IP-адреса.

Предупреждение

Не рекомендуется задавать правило, чтобы разрешить подключение с любого исходного IP-адреса. Вы можете заблокировать все лучше, указав -source-address-prefixes значение, относящееся к IP-адресу клиента или диапазону IP-адресов, охватывающим IP-адреса вашей команды или организации.

Замените значение параметра --destination-port-ranges ниже номером порта, полученным с помощью приведенной выше команды az postgres server-arc list.

az network nsg rule create -n db_port --destination-port-ranges 30655 --source-address-prefixes '*' --nsg-name azurearcvmNSG --priority 500 -g azurearcvm-rg --access Allow --description 'Allow port through for db access' --destination-address-prefixes '*' --direction Inbound --protocol Tcp --source-port-ranges '*'

Подключение к Azure Data Studio

Откройте Azure Data Studio и подключитесь к вашему экземпляру с помощью IP-адреса внешней конечной точки и заданного ранее номера порта, а также пароля, указанного во время создания экземпляра. Если PostgreSQL недоступен в раскрывающемся списке Тип подключения, расширение PostgreSQL можно установить, выполнив поиск по названию PostgreSQL на вкладке расширений.

Примечание.

Чтобы ввести номер порта, нужно нажать кнопку [Дополнительно] на панели подключения.

Помните, что если вы используете виртуальную машину Azure, вам потребуется общедоступный IP-адрес, который доступен с помощью следующей команды:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Подключение с помощью psql

Чтобы получить доступ к серверу PostgreSQL, передайте внешнюю конечную точку сервера PostgreSQL, полученного из выше:

Теперь можно подключить любой из клиентов psql:

psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655