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

適用対象:SQL Server - Linux

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 はコンテナー オーケストレーターの役割を果たします。

Diagram showing a Kubernetes SQL Server cluster.

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

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

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