Important
Microsoft SQL Server 2019 빅 데이터 클러스터는 사용 중지되었습니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일부터 종료되었습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 공지 블로그 게시물 및 빅 데이터 옵션을 참조하세요.
이 문서에서는 AKS(Azure Kubernetes Service) 프라이빗 클러스터에 SQL Server 빅 데이터 클러스터를 배포하는 방법을 설명합니다. 이 구성은 엔터프라이즈 네트워킹 환경에서 공용 IP 주소의 제한된 사용을 지원합니다.
프라이빗 배포는 다음과 같은 이점을 제공합니다.
- 공용 IP 주소의 제한된 사용
- 애플리케이션 서버와 클러스터 노드 풀 간의 네트워크 트래픽은 프라이빗 네트워크에만 유지됩니다.
- 특정 요구 사항에 맞게 필수 송신 트래픽에 대한 사용자 지정 구성
이 문서에서는 AKS 프라이빗 클러스터를 사용하여 각 보안 문자열이 적용되는 동안 공용 IP 주소의 사용을 제한하는 방법을 보여 줍니다.
AKS 프라이빗 클러스터를 사용하여 프라이빗 빅 데이터 클러스터 배포
시작하려면 AKS 프라이빗 클러스터 를 만들어 API 서버와 노드 풀 간의 네트워크 트래픽이 프라이빗 네트워크에만 유지되도록 합니다. 컨트롤 플레인 또는 API 서버에는 AKS 프라이빗 클러스터의 내부 IP 주소가 있습니다.
이 섹션에서는 고급 네트워킹(CNI)을 사용하여 AKS(Azure Kubernetes Service) 프라이빗 클러스터에 빅 데이터 클러스터를 배포하는 방법을 보여 줍니다.
고급 네트워킹을 사용하여 프라이빗 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 프라이빗 클러스터 만들기
다음 단계를 수행하려면 프라이빗 클러스터 기능을 사용하도록 설정된 표준 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 샘플 리포지토리에서 이 시나리오에 대한 자동화 스크립트를 참조하세요.