教學課程:在 Azure Kubernetes Service (AKS) 上以 AD 模式部署 SQL Server 巨量資料叢集
本文說明如何使用參考架構以 Active Directory 驗證模式部署 SQL Server 巨量資料叢集。 此參考架構可將您的內部部署 Active Directory Domain Services (AD DS) 延伸到 Azure。 您可以使用 Azure 建置組塊從 Azure 架構中心部署它。
重要
Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章和 Microsoft SQL Server 平台上的巨量資料選項。
Prerequisites
在部署 SQL Server 巨量資料叢集之前,您必須:
- 存取 Azure VM 進行管理。 此 VM 需要存取您將部署巨量資料叢集的 Azure 虛擬網路 (VNet)。 其必須位於相同的 VNet 上,或位於對等互連的 VNet 上。
- 在管理 VM 上安裝巨量資料工具。
- 準備在您的內部部署 AD 控制器中以 Active Directory 驗證模式部署叢集。
建立 AKS 子網路
設定環境變數
export REGION_NAME=< your Azure Region > export RESOURCE_GROUP=<your resource group > export SUBNET_NAME=aks-subnet export VNet_NAME= adds-vnet export AKS_NAME= <your aks cluster name>
建立 AKS 子網路
SUBNET_ID=$(az network vnet subnet show \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNet_NAME \ --name $SUBNET_NAME \ --query id -o tsv)
下列螢幕擷取畫面顯示如何規劃位於架構中 VNet 的子網路。
建立 AKS 私人叢集
您可以使用下列命令來部署 AKS 私人叢集。 如果不需要私人叢集,請在命令中移除 --enable-private-cluster
參數。 如需任何其他需求的詳細資訊,請參閱如何部署 Azure Kubernetes 叢集 (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.3.0.10 \
--service-cidr 10.3.0.0/24 \
--node-vm-size Standard_D13_v2 \
--node-count 2 \
--generate-ssh-keys
部署 AKS 叢集之後,請連線到 AKS 叢集。
確認網域控制站的反向 DNS 項目
在 AKS 叢集中以 AD 模式啟動 SQL Server 巨量資料叢集部署之前,請驗證網域控制站本身已在 DNS 伺服器中同時註冊 A 記錄和 PTR 記錄 (反向 DNS 項目)。
若要確認這項設定,請執行 nslookup
命令,或執行 PowerShell 指令碼,以確認是否已設定反向 DNS 項目 (PTR 記錄)。
建立巨量資料叢集部署設定檔
下列命令會建立一個部署設定檔:
azdata bdc config init --source kubeadm-prod --target bdc-ad-aks
使用下列命令來設定部署設定檔的參數。
control.json
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.storage.data.className=default"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.storage.logs.className=default"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[1].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[0].dnsName=controller.contoso.com"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[1].dnsName=proxys.contoso.com"
# security settings
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.ouDistinguishedName=OU\=bdc\,DC\=contoso\,DC\=com"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.dnsIpAddresses=[\"192.168.0.4\"]"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.domainControllerFullyQualifiedDns=[\"ad1.contoso.com\"]"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.domainDnsName=contoso.com"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.clusterAdmins=[\"bdcadminsgroup\"]"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.clusterUsers=[\"bdcusersgroup\"]"
bdc.json
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[0].dnsName=master.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[1].dnsName=mastersec.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[1].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.gateway.spec.endpoints[0].dnsName=gateway.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.gateway.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.appproxy.spec.endpoints[0].dnsName=approxy.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.appproxy.spec.endpoints[0].serviceType=NodePort"
起始部署
下列命令會起始巨量資料叢集部署:
azdata bdc create --config-profile bdc-ad-aks --accept-eula yes