다음을 통해 공유


Python 스크립트를 사용하여 AKS(Azure Kubernetes Service)에 SQL Server 빅 데이터 클러스터 배포

적용 대상: SQL Server 2019(15.x)

Important

Microsoft SQL Server 2019 빅 데이터 클러스터는 사용 중지되었습니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일부터 종료되었습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 공지 블로그 게시물 및 빅 데이터 옵션을 참조하세요.

이 자습서에서는 샘플 Python 배포 스크립트를 사용하여 AKS(Azure Kubernetes Service)에 SQL Server 2019 빅 데이터 클러스터를 배포합니다.

Tip

AKS는 빅 데이터 클러스터용 Kubernetes를 호스팅하는 하나의 옵션입니다. 다른 배포 옵션 및 배포 옵션을 사용자 지정하는 방법에 대한 자세한 내용은 Kubernetes에서 SQL Server 빅 데이터 클러스터를 배포하는 방법을 참조하세요.

여기서 사용되는 기본 빅 데이터 클러스터 배포는 SQL 마스터 인스턴스, 컴퓨팅 풀 인스턴스 1개, 데이터 풀 인스턴스 2개, 스토리지 풀 인스턴스 2개로 구성됩니다. 데이터는 AKS 기본 스토리지 클래스를 사용하는 Kubernetes 영구 볼륨을 사용하여 유지됩니다. 이 자습서에서 사용되는 기본 구성은 개발/테스트 환경에 적합합니다.

Prerequisites

  • Azure 구독.
  • 빅 데이터 도구:
    • azdata
    • kubectl
    • Azure Data Studio
    • SQL Server 2019 확장
    • Azure CLI

Azure 계정에 로그인

이 스크립트는 Azure CLI를 사용하여 AKS 클러스터 만들기를 자동화합니다. 스크립트를 실행하기 전에 Azure CLI를 사용하여 Azure 계정에 한 번 이상 로그인해야 합니다. 명령 프롬프트에서 다음 명령을 실행합니다. 자세한 내용은 Azure CLI로 로그인을 참조하세요.

az login

배포 스크립트 다운로드

이 자습서에서는 python 스크립트 deploy-sql-big-data-aks.py 사용하여 AKS에서 빅 데이터 클러스터를 만드는 작업을 자동화합니다. azdata용 Python을 이미 설치한 경우 이 자습서에서 스크립트를 성공적으로 실행할 수 있어야 합니다.

Windows PowerShell 또는 Linux bash 프롬프트에서 다음 명령을 실행하여 GitHub에서 배포 스크립트를 다운로드합니다.

curl -o deploy-sql-big-data-aks.py "https://raw.githubusercontent.com/Microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/aks/deploy-sql-big-data-aks.py"

배포 스크립트 실행

다음 단계를 사용하여 Windows PowerShell 또는 Linux bash 프롬프트에서 배포 스크립트를 실행합니다. 이 스크립트는 Azure에서 AKS 서비스를 만든 다음, AKS에 SQL Server 2019 빅 데이터 클러스터를 배포합니다. 다른 환경 변수 를 사용하여 스크립트를 수정하여 사용자 지정 배포를 만들 수도 있습니다.

  1. 다음 명령을 사용하여 스크립트를 실행합니다.

    python deploy-sql-big-data-aks.py
    

    Note

    클라이언트 컴퓨터와 경로에 python3 및 python2가 모두 있는 경우 python3 python3 deploy-sql-big-data-aks.py을 사용하여 명령을 실행해야 합니다.

  2. 메시지가 표시되면 다음 정보를 입력합니다.

    Value Description
    Azure 구독 ID AKS에 사용할 Azure 구독 ID입니다. 다른 명령줄에서 실행 az account list 하여 모든 구독 및 해당 ID를 나열할 수 있습니다.
    Azure 리소스 그룹 AKS 클러스터에 대해 만들 Azure 리소스 그룹 이름입니다.
    Azure region 새 AKS 클러스터의 Azure 지역(기본 westus)입니다.
    Machine size AKS 클러스터의 노드에 사용할 컴퓨터 크기 입니다(기본 Standard_D16s_v3).
    Worker nodes AKS 클러스터의 작업자 노드 수(기본값 1)입니다.
    Cluster name AKS 클러스터와 빅 데이터 클러스터의 이름입니다. 빅 데이터 클러스터의 이름은 소문자 알파 숫자 문자만이어야 하며 공백은 없어야 합니다. (default sqlbigdata).
    Password 컨트롤러, HDFS/Spark 게이트웨이 및 마스터 인스턴스에 대한 암호입니다(기본 MySQLBigData2019).
    Username 컨트롤러 사용자의 사용자 이름(기본값: 관리자)입니다.

    Important

    기본 Standard_D16s_v3 컴퓨터 크기는 모든 Azure 지역에서 사용할 수 없습니다. 다른 컴퓨터 크기를 선택하는 경우 클러스터의 노드에 연결할 수 있는 총 디스크 수가 24보다 크거나 같은지 확인합니다. 클러스터의 각 영구 볼륨 클레임에는 연결된 디스크가 필요합니다. 현재 빅 데이터 클러스터에는 24개의 영구 볼륨 클레임이 필요합니다.

    다음 명령을 실행하여 사용 가능한 VM 유형을 식별합니다.

    az vm list-sizes --query "sort_by(@,&name)[?contains(name,'Standard_D16s')]" -l westus2 -o table
    

    Note

    빅 데이터 클러스터를 배포하는 동안 SQL Server sa 계정을 사용할 수 없습니다. 새 sysadmin 로그인은 사용자 이름 입력에 지정된 이름과 암호 입력에 해당하는 암호와 동일한 이름으로 SQL Server 마스터 인스턴스에 프로비전됩니다. 컨트롤러 관리자 사용자를 프로비전하는 데 동일한 사용자 이름 및 암호 값이 사용됩니다. SQL Server 2019 CU5 이전에 배포된 클러스터에서 게이트웨이(Knox)에 대해 지원되는 유일한 사용자는 루트 이며 암호는 위와 동일합니다.

    SQL Server 2019(15.x) CU 5부터 기본 인증을 사용하여 새 클러스터를 배포하면 게이트웨이를 포함한 모든 엔드포인트가 AZDATA_USERNAMEAZDATA_PASSWORD을 사용합니다. CU 5로 업그레이드된 클러스터의 엔드포인트는 게이트웨이 엔드포인트에 연결하는 사용자 이름으로 계속 사용됩니다 root . 이 변경 내용은 Active Directory 인증을 사용하는 배포에는 적용되지 않습니다. 릴리스 정보에서 게이트웨이 엔드포인트를 통해 서비스에 액세스하기 위한 자격 증명 을 참조하세요.

  3. 스크립트는 지정한 매개 변수를 사용하여 AKS 클러스터를 만들어 시작합니다. 이 단계는 몇 분 정도 걸립니다.

상태 모니터링

스크립트는 AKS 클러스터를 만든 후 이전에 지정한 설정으로 필요한 환경 변수를 설정하도록 진행합니다. 그런 다음 azdata 를 호출하여 AKS에 빅 데이터 클러스터를 배포합니다.

클라이언트 명령 창에서 배포 상태를 출력합니다. 배포 프로세스 중에 컨트롤러 포드를 기다리고 있는 여러 메시지가 표시됩니다.

2018-11-15 15:42:02.0209 UTC | INFO | Waiting for controller pod to be up...

10~20분 후에 컨트롤러 Pod가 실행 중이라는 알림을 받아야 합니다.

2018-11-15 15:50:50.0300 UTC | INFO | Controller pod is running.
2018-11-15 15:50:50.0585 UTC | INFO | Controller Endpoint: https://111.111.111.111:30080

Important

빅 데이터 클러스터의 구성 요소에 대한 컨테이너 이미지를 다운로드하는 데 필요한 시간으로 인해 전체 배포에 시간이 오래 걸릴 수 있습니다. 그러나 몇 시간이 걸리지 않아야 합니다. 배포에 문제가 있는 경우 SQL Server 빅 데이터 클러스터 모니터링 및 문제 해결을 참조하세요.

클러스터 검사

배포하는 동안 언제든지 kubectl 또는 azdata 를 사용하여 실행 중인 빅 데이터 클러스터에 대한 상태 및 세부 정보를 검사할 수 있습니다.

Use kubectl

배포 프로세스 중에 kubectl 을 사용하도록 새 명령 창을 엽니다.

  1. 다음 명령을 실행하여 전체 클러스터의 상태에 대한 요약을 가져옵니다.

    kubectl get all -n <your-big-data-cluster-name>
    

    Tip

    빅 데이터 클러스터 이름을 변경하지 않은 경우 스크립트는 기본적으로 sqlbigdata로 설정됩니다.

  2. 다음 kubectl 명령을 사용하여 kubernetes 서비스 및 해당 내부 및 외부 엔드포인트를 검사합니다.

    kubectl get svc -n <your-big-data-cluster-name>
    
  3. 다음 명령을 사용하여 kubernetes Pod의 상태를 검사할 수도 있습니다.

    kubectl get pods -n <your-big-data-cluster-name>
    
  4. 다음 명령을 사용하여 특정 Pod에 대한 자세한 정보를 확인합니다.

    kubectl describe pod <pod name> -n <your-big-data-cluster-name>
    

Tip

배포를 모니터링하고 문제를 해결하는 방법에 대한 자세한 내용은 SQL Server 빅 데이터 클러스터 모니터링 및 문제 해결을 참조하세요.

클러스터에 연결

배포 스크립트가 완료되면 출력에서 성공에 대해 알 수 있습니다.

2018-11-15 16:10:25.0583 UTC | INFO | Cluster state: Ready
2018-11-15 16:10:25.0583 UTC | INFO | Cluster deployed successfully.

이제 SQL Server 빅 데이터 클러스터가 AKS에 배포됩니다. 이제 Azure Data Studio를 사용하여 클러스터에 연결할 수 있습니다. 자세한 내용은 Azure Data Studio를 사용하여 SQL Server 빅 데이터 클러스터에 연결을 참조하세요.

Clean up

Azure에서 SQL Server 빅 데이터 클러스터를 테스트하는 경우 예기치 않은 요금이 발생하지 않도록 완료되면 AKS 클러스터를 삭제해야 합니다. 클러스터를 계속 사용하려는 경우 클러스터를 제거하지 마세요.

Warning

다음 단계에서는 SQL Server 빅 데이터 클러스터도 제거하는 AKS 클러스터를 중단합니다. 유지하려는 데이터베이스 또는 HDFS 데이터가 있는 경우 클러스터를 삭제하기 전에 해당 데이터를 백업합니다.

다음 Azure CLI 명령을 실행하여 Azure에서 빅 데이터 클러스터 및 AKS 서비스를 제거합니다(배포 스크립트에서 지정한 <resource group name> 대체).

az group delete -n <resource group name>