Python スクリプトを使用して SQL Server ビッグ データ クラスターを Azure Kubernetes Service (AKS) に展開する
適用対象:SQL Server 2019 (15.x)
重要
Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 詳細については、「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 サブスクリプション。
- ビッグ データ ツール:
- azdata
- kubectl
- Azure Data Studio
- SQL Server 2019 の拡張機能
- Azure CLI
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 ビッグ データ クラスターが展開されます。 他の環境変数を使用してスクリプトを変更して、カスタムの展開を作成することもできます。
次のコマンドを使用してこのスクリプトを実行します。
python deploy-sql-big-data-aks.py
Note
クライアント マシンとパスに python3 と python2 の両方がある場合は、python3 を使用してコマンド
python3 deploy-sql-big-data-aks.py
を実行する必要があります。プロンプトが表示されたら、次の情報を入力します。
値 説明 [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 CU5 以降、基本認証で新しいクラスターを展開すると、ゲートウェイを含むすべてのエンドポイントで
AZDATA_USERNAME
とAZDATA_PASSWORD
が使用されます。 CU5 にアップグレードされるクラスターのエンドポイントでは、ゲートウェイ エンドポイントに接続するとき、ユーザー名としてroot
が引き続き使用されます。 この変更は、Active Directory 認証による展開には適用されません。 このリリース ノートの「ゲートウェイ エンドポイント経由でサービスにアクセスするための資格情報」を参照してください。スクリプトを開始するには、指定したパラメーターを使用して 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 を使用します。
次のコマンドを実行して、クラスター全体の状態の概要を取得します。
kubectl get all -n <your-big-data-cluster-name>
ヒント
ビッグ データ クラスター名を変更しなかった場合、スクリプトにより、既定で sqlbigdata に設定されます。
次の kubectl コマンドを使用して、kubernetes サービスとその内部および外部エンドポイントを調べます。
kubectl get svc -n <your-big-data-cluster-name>
次のコマンドを使用して、kubernetes ポッドの状態を調べることもできます。
kubectl get pods -n <your-big-data-cluster-name>
次のコマンドを使用して、特定のポッドに関する詳細情報を確認します。
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>
次のステップ
展開スクリプトで Azure Kubernetes サービスを構成し、SQL Server 2019 ビッグ データ クラスターも展開しました。 また、手動インストールを使用して、今後の展開をカスタマイズすることもできます。 ビッグ データ クラスターの展開方法と展開をカスタマイズする方法の詳細については、「Kubernetes に SQL Server ビッグ データ クラスターを展開する方法」を参照してください。
SQL Server ビッグ データ クラスターが展開されたので、サンプル データを読み込んでチュートリアルを調べることができます。