Python スクリプトを使用して SQL Server ビッグ データ クラスターを Azure Kubernetes Service (AKS) に展開する

適用対象: SQL Server 2019 (15.x)

重要

Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの SQL Server 2019 を使用する既存の全ユーザーはプラットフォームで完全にサポートされ、ソフトウェアはその時点まで SQL Server の累積更新プログラムによって引き続きメンテナンスされます。 詳細については、お知らせのブログ記事と「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。

このチュートリアルでは、サンプルの python 展開スクリプトを使用して、SQL Server 2019 ビッグ データ クラスターを Azure Kubernetes Service (AKS) に展開します。

ヒント

AKS は、ビッグ データ クラスター用の Kubernetes をホストするための選択肢の 1 つにすぎません。 その他の展開オプションと、展開オプションをカスタマイズする方法の詳細については、「Kubernetes に SQL Server ビッグ データ クラスターを展開する方法」を参照してください。

ここで使用される既定のビッグ データ クラスターの展開は、1 つの SQL マスター インスタンス、1 つのコンピューティング プール インスタンス、2 つのデータ プール インスタンス、2 つの記憶域プール インスタンスで構成されています。 データは、AKS の既定の記憶域クラスを使用する Kubernetes 永続ボリュームを使用して永続化されます。 このチュートリアルで使用する既定の構成は、開発/テスト環境に適しています。

前提条件

Azure アカウントにログインする

このスクリプトでは、AKS クラスターの作成を自動化するために Azure CLI を使用します。 スクリプトを実行する前に、少なくとも 1 回は 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. プロンプトが表示されたら、次の情報を入力します。

    説明
    [Azure subscription ID](Azure サブスクリプション ID) AKS に使用する Azure サブスクリプション ID。 別のコマンド ラインから az account list を実行して、すべてのサブスクリプションとその ID を一覧表示できます。
    Azure リソース グループ AKS クラスター用に作成する Azure リソース グループの名前。
    [Azure region](Azure リージョン) 新しい AKS クラスター用の Azure リージョン (既定値は westus)。
    [Machine size](マシン サイズ) AKS クラスター内のノードに使用するマシン サイズ (既定値は Standard_D16s_v3)。
    [Worker nodes](ワーカー ノード) AKS クラスター内のワーカー ノードの数 (既定値は 1)。
    [Cluster name](クラスター名) AKS クラスターとビッグ データ クラスターの両方の名前。 ビッグ データ クラスターの名前は、小文字の英数字のみを使用し、スペースを含めない必要があります (既定値は sqlbigdata)。
    パスワード コントローラー、HDFS/Spark ゲートウェイ、およびマスター インスタンスのパスワード (既定値は MySQLBigData2019)。
    ユーザー名 コントローラー ユーザーのユーザー名 (既定値: admin)。

    重要

    既定の 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 アカウントは、ビッグ データ クラスターの展開の間に無効になります。 SQL Server のマスター インスタンスに、 [ユーザー名] 入力で指定したものと同じ名前と [パスワード] 入力に対応するパスワードで、新しい sysadmin ログインがプロビジョニングされます。 コントローラー管理者ユーザーのプロビジョニングにも、同じユーザー名パスワードの値が使用されます。 SQL Server 2019 CU5 より前のバージョンで展開されるクラスターでは、ゲートウェイ (Knox) に対してサポートされているユーザーのみが root であり、パスワードは上記と同じです。

    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 分後に、コントローラー ポッドが実行中になっていることが通知されるはずです。

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

重要

ビッグ データ クラスターのコンポーネントに対応するコンテナー イメージのダウンロードに必要な時間によって、展開全体に時間がかかる場合があります。 ただし、数時間もかかることはありません。 展開時に問題が発生した場合は、「SQL Server ビッグ データ クラスターの監視とトラブルシューティング」を参照してください。

クラスターを検査する

展開中はいつでも、kubectl または azdata を使用して、実行中のビッグ データ クラスターの状態と詳細を調べることができます。

kubectl を使用する

新しいコマンド ウィンドウを開いて、展開プロセス中に kubectl を使用します。

  1. 次のコマンドを実行して、クラスター全体の状態の概要を取得します。

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

    ヒント

    ビッグ データ クラスター名を変更しなかった場合、スクリプトにより、既定で sqlbigdata に設定されます。

  2. 次の kubectl コマンドを使用して、kubernetes サービスとその内部および外部エンドポイントを調べます。

    kubectl get svc -n <your-big-data-cluster-name>
    
  3. 次のコマンドを使用して、kubernetes ポッドの状態を調べることもできます。

    kubectl get pods -n <your-big-data-cluster-name>
    
  4. 次のコマンドを使用して、特定のポッドに関する詳細情報を確認します。

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

ヒント

展開の監視とトラブルシューティングの方法の詳細については、「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 ビッグ データ クラスターに接続する」を参照してください。

クリーンアップ

Azure で SQL Server ビッグ データ クラスターをテストしている場合は、予期しない料金が発生しないように、完了時に AKS クラスターを削除するようにします。 クラスターを引き続き使用する場合は、削除しないでください。

警告

次の手順では、AKS クラスターを破棄します。これにより、SQL Server ビッグ データ クラスターも削除されます。 保持するデータベースまたは HDFS データがある場合は、そのデータをバックアップしてからクラスターを削除してください。

次の Azure CLI コマンドを実行して、Azure のビッグ データ クラスターと AKS サービスを削除します (<resource group name> は、展開スクリプトで指定した Azure リソース グループに置き換えます)。

az group delete -n <resource group name>