SQL Server コンテナーの高可用性

適用対象:Linux 上の SQL Server

Kubernetes でSQL Server インスタンスをネイティブに作成して管理します。

SQL ServerをKubernetesで管理されるDockerコンテナにデプロイしてください。 Kubernetes では、クラスター ノードで障害が発生した場合に、SQL Server インスタンスを持つコンテナーが自動的に回復する可能性があります。

SQL Server 2017はKubernetesにデプロイ可能なDockerイメージを導入しました。 画像はKubernetes永続ボリュームクレーム(PVC)で設定できます。 Kubernetes は、コンテナー内のSQL Server プロセスを監視します。 プロセス、ポッド、コンテナ、ノードが故障した場合、Kubernetesは自動的に別のインスタンスをブートストラップし、ストレージに再接続します。

Kubernetes 上の SQL Server インスタンスを含むコンテナー

Kubernetes 1.6以降はストレージクラス、永続ボリュームクレーム、Azureディスクボリュームタイプをサポートしています。

この構成では、Kubernetes はコンテナー オーケストレーターの役割を果たします。

複数のノードにわたる永続ボリュームによってサポートされるレプリカ セット内の mssql-server コンテナーを実行するポッドにサービス経由で接続するアプリケーションを示す Kubernetes クラスター アーキテクチャの図。

上の図で、mssql-server は "ポッド" 内の SQL Server インスタンス (コンテナー) です。 レプリカ セットによって、ノード障害が発生した後でポッドが自動的に復旧されます。 アプリケーションがサービスに接続します。 このケースでは、サービスは、mssql-server の障害後も変化しない IP アドレスがホストされているロード バランサーを表します。

Kubernetes により、クラスター内のリソースが調整されます。 SQL Server インスタンス コンテナーをホストしているノードで障害が発生すると、SQL Server インスタンスを含む新しいコンテナーがブートストラップされ、同じ永続ストレージにアタッチされます。

SQL Server on Linuxは、Kubernetes、OpenShift、DH2i DxEnterpriseのコンテナをサポートしています。