クイックスタート: Helm チャートを使用して SQL Server Linux コンテナーを Kubernetes にデプロイする
適用対象: SQL Server - Linux
このクイックスタートでは、Windows クライアント コンピューターから Helm チャートを使用して、SQL Server on Linux コンテナーを Azure Kubernetes Service (AKS) にデプロイするための手順について説明します。
AKS は、コンテナー クラスターをデプロイおよび管理するためのマネージド Kubernetes サービスです。 Helm は、Kubernetes アプリケーションのライフサイクルをインストールおよび管理するのに役立つオープン ソースのパッケージ化ツールです。
前提条件
Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
このクイックスタートのサンプル Helm チャートをダウンロードして確認する。 このサンプル チャートには、SQL Server デプロイをカスタマイズするための多くの構成オプションが含まれています。
クライアント ツールのインストール
Windows クライアント コンピューターには、次のツールが必要です。
別のクライアント オペレーティング システムを使用する場合は、そのプラットフォームに適したパッケージを選択する必要があります。
Az PowerShell モジュールを使用して kubectl をインストールする
Kubernetes クラスターと対話するには、kubectl を使用します。 詳細については、「az aks install-cli」を参照してください。
kubectl をインストールするには、Windows コマンド プロンプトから次のコマンドを実行します。
az aks install-cli
ヒント
kubectl をローカルの PATH
環境変数に追加して、毎回完全なパスを入力する必要がないようにすることができます。
kubectl を AKS クラスターに接続する
kubectl コマンドや helm コマンドがその特定の AKS クラスターで実行されるように、AKS クラスターの "コンテキスト" をマージする必要があります。
マージするには、AKS クラスターへの接続に関する記事の説明に従って次のコマンドを実行します。
az aks get-credentials --resource-group <resourcegroupname> --name <aks clustername>
次の出力が表示されます。
<clustername>
は指定したクラスター、<username>
はローカルの Windows ユーザー アカウントです。Merged "<clustername>" as current context in C:\Users\<username>\.kube.config
kubectl get nodes
を実行して、マージが成功したことを確認します。 出力には、AKS クラスターのコンテキストに含まれるノードが表示されます。NAME STATUS ROLES AGE VERSION <aks-node>-vmss000000 Ready agent 141d v1.16.13 <aks-node>-vmss000001 Ready agent 141d v1.16.13
サンプル Helm チャートを確認する
これで、Helm チャートを使用して AKS クラスターに SQL Server をデプロイする準備ができました。
このクイックスタートでは、サンプル "そのままの" Helm チャートを提供します。 このサンプルは参照専用です。 実際の構成要件に一致する構成値を理解するため、readme
ファイルを必ず確認してください。
SQL Server のデプロイに推奨されている StatefulSet モードで SQL Server をデプロイする場合は、代わりにサンプル "そのままの" StatefulSet ベースの Helm チャートを確認できます。
サンプル Helm チャートをダウンロードします。
サンプル チャートをダウンロードしたディレクトリに切り替え、必要に応じて
values.yaml
ファイルを変更します。
SQL Server を AKS クラスターにデプロイする
次のコマンドを使って SQL Server をデプロイします。 デプロイ名はカスタマイズ可能なので、必要に応じて mssql-latest-deploy
を変更できます。
helm install mssql-latest-deploy . --set ACCEPT_EULA.value=Y --set MSSQL_PID.value=Developer
前の例では、チャートとそのファイルは、ピリオド (.
) で表されている現在のディレクトリにあります。 必要に応じて、チャートのパスを指定できます。
成功した場合は、次のような出力が表示されます。
NAME: mssql-latest-deploy
LAST DEPLOYED: Wed Apr 06 21:36:19 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
SQL Server のデプロイを確認する
Kubernetes クラスターへのデプロイには数分かかる場合があります。 デプロイが成功したことを確認するには、次のコマンドを実行します。
kubectl get all
成功した場合は、次のような出力が表示されます。
NAME READY STATUS RESTARTS AGE
pod/mssql-latest-deploy-7f8c7f5bc-9grmg 1/1 Running 0 2m56s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 141d
service/mssql-latest-deploy LoadBalancer 10.0.247.220 20.40.0.145 1433:30780/TCP 2m56s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mssql-latest-deploy 1/1 1 1 2m56s
NAME DESIRED CURRENT READY AGE
replicaset.apps/mssql-latest-deploy-7f8c7f5bc 1 1 1 2m56s
AKS で実行されている SQL Server に接続する
SQL Server インスタンスへの接続は、SQL Server Management Studio (SSMS)、Azure Data Studio、sqlcmd など、使い慣れた任意の SQL Server クライアント ツールを使用して実行できます。
たとえば、SSMS を使用して SQL Server インスタンスに接続する場合は、次の設定を使用できます。
- サーバー名:
mssql-latest-deploy
サービスのExternal-IP
アドレスを使用します。 この例では20.40.0.145
です。 - 認証: ドロップダウン リストから [SQL Server 認証] を選択します。
- ログイン:sa を使用します。これは、システム管理者アカウントです。
- パスワード:sa パスワードは、Helm チャートの
values.yaml
ファイルのsa_password
構成オプションで指定した値と一致します。
接続すると、SQL Server インスタンスをオブジェクト エクスプローラーで展開できるようになります。
リソースをクリーンアップする
この AKS クラスターを引き続き使用しない場合は、必ずクラスターを削除してください。