Поделиться через


Развертывание BDC в частном кластере службы Azure Kubernetes (AKS)

Важно!

Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.

В этой статье объясняется, как развертывать кластеры больших данных SQL Server в частном кластере службы Azure Kubernetes (AKS). Эта конфигурация поддерживает ограниченное использование общедоступных IP-адресов в корпоративной сетевой среде.

Частное развертывание обеспечивает следующие преимущества.

  • Ограниченное использование общедоступных IP-адресов
  • Сетевой трафик между серверами приложений и пулами узлов кластера остается только в частной сети.
  • Настраиваемая конфигурация для обязательного исходящего трафика в соответствии с конкретными требованиями

В этой статье показано, как использовать частный кластер AKS для ограничения использования общедоступных IP-адресов, когда применяются соответствующие строки безопасности.

Развертывание частного кластера больших данных с помощью частного кластера AKS

Чтобы приступить к работе, создайте частный кластер AKS, чтобы сетевой трафик между сервером API и пулами узлов оставался в частной сети. Уровень управления или сервер API имеют внутренние IP-адреса в частном кластере AKS.

В этом разделе показано, как развернуть кластер больших данных в частном кластере Службы Azure Kubernetes (AKS) с расширенными сетевыми возможностями (CNI).

Создание частного кластера AKS с расширенными сетевыми возможностями


export REGION_NAME=<your Azure region >
export RESOURCE_GROUP=< your resource group name >
export SUBNET_NAME=aks-subnet
export VNET_NAME=bdc-vnet
export AKS_NAME=< your aks private cluster name >
 
az group create -n $RESOURCE_GROUP -l $REGION_NAME
 
az network vnet create \
    --resource-group $RESOURCE_GROUP \
    --location $REGION_NAME \
    --name $VNET_NAME \
    --address-prefixes 10.0.0.0/8 \
    --subnet-name $SUBNET_NAME \
    --subnet-prefix 10.1.0.0/16
 

SUBNET_ID=$(az network vnet subnet show \
    --resource-group $RESOURCE_GROUP \
    --vnet-name $VNET_NAME \
    --name $SUBNET_NAME \
    --query id -o tsv)
 
echo $SUBNET_ID
## will be displayed something similar as the following: 
/subscriptions/xxxx-xxxx-xxx-xxxx-xxxxxxxx/resourceGroups/your-bdc-rg/providers/Microsoft.Network/virtualNetworks/your-aks-vnet/subnets/your-aks-subnet

Создание частного кластера AKS с расширенными сетевыми возможностями (CNI)

Чтобы перейти к следующему шагу, необходимо подготовить к работе кластер AKS со стандартным средством балансировки нагрузки и включенной функцией частного кластера. Команда будет выглядеть следующим образом:

az aks create \
    --resource-group $RESOURCE_GROUP \
    --name $AKS_NAME \
    --load-balancer-sku standard \
    --enable-private-cluster \
    --network-plugin azure \
    --vnet-subnet-id $SUBNET_ID \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.2.0.10 \
    --service-cidr 10.2.0.0/24 \
    --node-vm-size Standard_D13_v2 \
    --node-count 2 \
    --generate-ssh-keys

После успешного развертывания можно переходить к группе ресурсов <MC_yourakscluster>, после чего обнаружится, что kube-apiserver является частной конечной точкой. См., например, следующий раздел.

Подключение к кластеру AKS

az aks get-credentials -n $AKS_NAME -g $RESOURCE_GROUP

Создание профиля развертывания для Кластера больших данных

После подключения к кластеру AKS можно приступить к развертыванию BDC, а также подготовить переменную среды и запустить развертывание:

azdata bdc config init --source aks-dev-test --target private-bdc-aks --force

Создание и настройка настраиваемого профиля развертывания BDC:

azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.docker.imageTag=2019-CU6-ubuntu-16.04"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.storage.data.className=default"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.storage.logs.className=default"

azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.endpoints[1].serviceType=NodePort"

azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.gateway.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.appproxy.spec.endpoints[0].serviceType=NodePort"

Развертывание частного кластера больших данных SQL Server с высоким уровнем доступности

В случае развертывания Кластера больших данных SQL Server (SQL-BDC) с высоким уровнем доступности будет использоваться профиль развертывания aks-dev-test-ha. После успешного развертывания можно использовать ту же команду kubectl get svc, чтобы создать дополнительную службу master-secondary-svc. Следует настроить ServiceType как NodePort. Оставшиеся шаги мало отличаются от упомянутых в предыдущем разделе.

В следующем примере ServiceType задается как NodePort:

azdata bdc config replace -c private-bdc-aks /bdc.json -j "$.spec.resources.master.spec.endpoints[1].serviceType=NodePort"

Развертывание BDC в частном кластере AKS

export AZDATA_USERNAME=<your bdcadmin username>
export AZDATA_PASSWORD=< your bdcadmin password>

azdata bdc create --config-profile private-bdc-aks --accept-eula yes

Проверка состояния развертывания

Развертывание займет несколько минут. Для проверки состояния развертывания можно использовать следующую команду:

kubectl get pods -n mssql-cluster -w

Проверка состояния службы

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

kubectl get services -n mssql-cluster

См. раздел управление кластером больших данных в частном кластере AKS, а затем выполните следующие действия, чтобы подключиться к кластеру больших данных SQL Server.

Сведения о скриптах автоматизации для этого сценария см. на странице репозитория примеров SQL Server на сайте GitHub.