SQL Server 컨테이너의 고가용성
적용 대상: SQL Server - Linux
Kubernetes에서 기본적으로 SQL Server 인스턴스를 만들고 관리합니다.
Kubernetes에서 관리하는 docker 컨테이너에 SQL Server를 배포합니다. Kubernetes에서 클러스터 노드가 실패하는 경우 SQL Server 인스턴스가 포함된 컨테이너가 자동으로 복구될 수 있습니다.
SQL Server 2017에는 Kubernetes에서 배포할 수 있는 Docker 이미지가 도입되었습니다. Kubernetes PVC(영구적 볼륨 클레임)를 사용하여 이미지를 구성할 수 있습니다. Kubernetes는 컨테이너의 SQL Server 프로세스를 모니터링합니다. 프로세스, Pod, 컨테이너 또는 노드가 실패하는 경우 Kubernetes는 자동으로 다른 인스턴스를 부트스트랩하고 스토리지에 다시 연결합니다.
Kubernetes의 SQL Server 인스턴스가 포함된 컨테이너
Kubernetes 1.6 이상에서는 스토리지 클래스, 영구적 볼륨 클레임 및 Azure 디스크 볼륨 유형을 지원합니다.
이 구성에서 Kubernetes는 컨테이너 오케스트레이터의 역할을 수행합니다.
위 다이어그램에서 mssql-server
는 Pod의 SQL Server 인스턴스(컨테이너)입니다. 복제본 세트는 노드 실패 후에 Pod가 자동으로 복구되도록 합니다. 애플리케이션이 서비스에 연결됩니다. 이 경우 서비스는 mssql-server
실패 후에도 동일하게 유지되는 IP 주소를 호스트하는 부하 분산 장치를 나타냅니다.
Kubernetes는 클러스터의 리소스를 오케스트레이션합니다. SQL Server 인스턴스 컨테이너를 호스트하는 노드가 실패하면 SQL Server 인스턴스가 포함된 새 컨테이너를 부트스트랩하고 동일한 영구적 스토리지에 연결합니다.
Linux에서 SQL Server는 Kubernetes, OpenShift 및 D2Hi의 컨테이너를 지원합니다.