다음을 통해 공유


AKS(Azure Kubernetes Service) 프라이빗 클러스터에 BDC 배포

Important

Microsoft SQL Server 2019 빅 데이터 클러스터 추가 기능이 사용 중지됩니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일에 종료됩니다. Software Assurance를 사용하는 SQL Server 2019의 모든 기존 사용자는 플랫폼에서 완전히 지원되며, 소프트웨어는 지원 종료 시점까지 SQL Server 누적 업데이트를 통해 계속 유지 관리됩니다. 자세한 내용은 공지 블로그 게시물Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.

이 문서에서는 AKS(Azure Kubernetes Service) 프라이빗 클러스터에 SQL Server 빅 데이터 클러스터를 배포하는 방법을 설명합니다. 이 구성은 엔터프라이즈 네트워킹 환경에서 공용 IP 주소의 제한된 사용을 지원합니다.

전용 배포에는 다음과 같은 이점이 있습니다.

  • 공용 IP 주소의 제한된 사용
  • 애플리케이션 서버와 클러스터 노드 풀 간의 네트워크 트래픽이 프라이빗 네트워크에만 유지됨
  • 특정 요구 사항에 맞는 필수 송신 트래픽에 대한 사용자 지정 구성

이 문서에서는 각 보안 문자열이 적용된 상태에서 AKS 프라이빗 클러스터를 사용하여 공용 IP 주소의 사용을 제한하는 방법을 보여줍니다.

AKS 프라이빗 클러스터를 사용하여 프라이빗 빅 데이터 클러스터 배포

먼저 AKS 프라이빗 클러스터를 만들어 API 서버와 노드 풀 사이의 네트워크 트래픽이 개인 네트워크에만 유지되는지 확인합니다. AKS 프라이빗 클러스터에는 컨트롤 플레인 또는 API 서버에 내부 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-BDC(SQL Server 빅 데이터 클러스터)를 배포하는 경우 aks-dev-test-ha 배포 프로필을 사용하여 배포합니다. 배포에 성공하면 동일한 kubectl get svc 명령을 사용할 수 있고 추가로 master-secondary-svc 서비스가 만들어지는 것을 확인할 수 있습니다. ServiceTypeNodePort로 구성해야 합니다. 다른 단계는 이전 섹션에서 언급한 내용과 유사합니다.

다음 예제에서는 ServiceTypeNodePort로 설정합니다.

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 샘플 리포지토리에서 이 시나리오에 대한 자동화 스크립트를 참조하세요.