重要
Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの SQL Server 2019 を使用する既存の全ユーザーはプラットフォームで完全にサポートされ、ソフトウェアはその時点まで SQL Server の累積更新プログラムによって引き続きメンテナンスされます。 詳細については、お知らせのブログ記事と「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。
この記事では、Azure Kubernetes Service (AKS) プライベート クラスターに SQL Server ビッグ データ クラスターをデプロイする方法について説明します。 この構成では、エンタープライズ ネットワーク環境でのパブリック IP アドレスの制限付き使用がサポートされます。
プライベート デプロイには、次の利点があります。
- パブリック IP アドレスの制限付き使用
- アプリケーション サーバーとクラスター ノード プール間のネットワーク トラフィックは、プライベート ネットワーク上にのみ残ります
- 特定の要件に合わせて必須のエグレス トラフィックのカスタム構成
この記事では、AKS プライベート クラスターを使用して、それぞれのセキュリティ文字列が適用されている間にパブリック IP アドレスの使用を制限する方法について説明します。
AKS プライベート クラスターを使用してプライベート ビッグ データ クラスターをデプロイする
開始するには、 AKS プライベート クラスター を作成して、API サーバーとノード プール間のネットワーク トラフィックがプライベート ネットワークのみに残っていることを確認します。 コントロール プレーンまたは API サーバーには、AKS プライベート クラスター内の内部 IP アドレスがあります。
このセクションでは、高度なネットワーク (CNI) を使用して Azure Kubernetes Service (AKS) プライベート クラスターにビッグ データ クラスターをデプロイする方法について説明します。
高度なネットワークを使用してプライベート 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
高度なネットワーク (CNI) を使用して AKS プライベート クラスターを作成する
次の手順に進むには、プライベート クラスター機能が有効になっている Standard Load Balancer を使用して 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"
HA を使用してプライベート SQL Server ビッグ データ クラスターをデプロイする
高可用性 (HA) を使用して 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"
AKS プライベート クラスターに BDC をデプロイする
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 ビッグ データ クラスターに接続します。
このシナリオの自動化スクリプトについては、 GitHub の SQL Server サンプル リポジトリを参照してください。