다음을 통해 공유


동일한 Active Directory 도메인 내에 여러 SQL Server 빅 데이터 클러스터 배포

적용 대상: SQL Server 2019(15.x)

이 문서에서는 여러 SQL Server 2019 빅 데이터 클러스터를 구성할 수 있는 SQL Server 2019 CU5(누적 업데이트 5)에 대한 업데이트를 설명합니다. 이제 다양한 빅 데이터 클러스터를 배포하고 동일한 Active Directory 도메인과 통합할 수 있습니다.

Important

Microsoft SQL Server 2019 빅 데이터 클러스터는 사용 중지되었습니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일부터 종료되었습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 공지 블로그 게시물 및 빅 데이터 옵션을 참조하세요.

SQL Server 2019 CU5 이전의 두 가지 문제로 인해 AD 도메인에서 여러 빅 데이터 클러스터를 배포할 수 없습니다.

  • 서비스 주체 이름 및 DNS 도메인에 대한 명명 충돌
  • 도메인 계정 대표 이름

개체 이름 충돌이란?

SPN(서비스 사용자 이름) 및 DNS 도메인 명명 충돌

배포 시 제공된 도메인 이름은 AD(Active Directory) DNS 도메인으로 사용됩니다. 즉 , Pod는 이 DNS 도메인을 사용하여 내부 네트워크 내에서 서로 연결할 수 있습니다. 또한 사용자는 이 DNS 도메인을 사용하여 빅 데이터 클러스터 엔드포인트에 연결합니다. 따라서 빅 데이터 클러스터 내의 서비스에 대해 생성된 서비스 사용자 이름(SPN)에는 Kubernetes Pod, 서비스 또는 엔드포인트 이름이 이 AD DNS 도메인과 연관되어 있습니다. 사용자가 도메인에 두 번째 클러스터를 배포하는 경우 생성된 SPN은 동일한 FQDN을 갖습니다. Pod 이름과 DNS 도메인 이름은 클러스터 간에 차이가 없기 때문에. AD DNS 도메인이 있는 경우를 고려합니다 contoso.local. Pod master-0 의 마스터 풀 SQL Server에 대해 생성된 SPN 중 하나는 다음과 같습니다 MSSQLSvc/master-0.contoso.local:1433. 사용자가 배포하려고 시도하는 두 번째 클러스터에서 Pod 이름은 master-0 동일합니다. 사용자는 동일한 AD DNS 도메인(contoso.local)을 제공하여 동일한 SPN 문자열을 생성합니다. Active Directory는 두 번째 클러스터에 대한 배포 실패로 이어지는 충돌하는 SPN 생성을 금지합니다.

도메인 계정 대표 이름

Active Directory 도메인을 사용하여 빅 데이터 클러스터를 배포하는 동안 빅 데이터 클러스터 내에서 실행되는 서비스에 대해 여러 계정 주체가 생성됩니다. 기본적으로 AD 사용자 계정입니다. SQL Server 2019 CU5 이전에는 이러한 계정의 이름이 클러스터 간에 고유하지 않았습니다. 이는 두 개의 서로 다른 클러스터에 있는 빅 데이터 클러스터의 특정 서비스에 대해 동일한 사용자 계정 이름을 만들려는 시도에서 나타납니다. 배포 중인 두 번째 클러스터는 AD에서 충돌이 발생하고 계정을 만들 수 없습니다.

이름 충돌을 해결하는 방법

SPN 및 DNS 도메인 문제를 해결하는 단계 - SQL Server 2019 CU5

SPN은 클러스터에서 고유해야 합니다. 배포 시 전달된 DNS 도메인 이름도 달라야 합니다. 배포 구성 파일 subdomain에서 새로 도입된 설정을 사용하여 다른 DNS 이름을 지정할 수 있습니다. 하위 도메인이 두 클러스터 간에 다르고 이 하위 도메인을 통해 내부 통신이 발생할 수 있는 경우 SPN에는 필요한 고유성을 달성하는 하위 도메인이 포함됩니다.

Note

하위 도메인 설정을 통해 전달되는 값은 새 AD 도메인이 아니라 내부적으로 사용되는 DNS 도메인입니다.

마스터 풀 SQL Server SPN의 사례로 돌아가 보겠습니다. 하위 도메인이 bdc면 설명된 SPN이 .로 MSSQLSvc/master-0.bdc.contoso.local:1433변경됩니다.

빅 데이터 클러스터 이름 또는 네임스페이스 이름은 하위 도메인 설정의 값을 계산하는 데 사용됩니다. 필요에 따라 Active Directory 구성 사양에서 새로 도입된 하위 도메인 매개 변수의 값을 사용자 지정할 수 있습니다. 사용자가 하위 도메인 이름을 재정의하려는 경우 Active Directory 구성 사양의 새 하위 도메인 매개 변수를 사용하여 재정의할 수 있습니다.

계정 이름 고유성을 확인하는 방법

계정 이름을 업데이트하고 고유성을 보장하려면 계정 접두사를 사용합니다. 계정 접두사는 두 클러스터 간에 고유한 계정 이름의 세그먼트입니다. 계정 이름의 나머지 세그먼트는 상수일 수 있습니다. 새 계정 이름 형식은 다음과 <prefix>-<name>-<podId>같습니다.

Note

Active Directory를 사용하려면 계정 이름을 20자로 제한해야 합니다. 빅 데이터 클러스터는 Pod 및 StatefulSets를 구분하는 데 8개의 문자를 사용해야 합니다. 이렇게 하면 계정 접두사에 12자가 남습니다.

계정 이름을 사용자 지정할 수 있는 옵션이 있습니다. Active Directory 구성 사양에서 accountPrefix 매개 변수를 사용하세요. SQL Server 2019 CU5는 구성 사양에 accountPrefix을 도입합니다. 기본적으로 하위 도메인 이름은 계정 접두사로 사용됩니다. 하위 도메인 이름이 12자보다 긴 경우 하위 도메인 이름의 초기 12자 부분 문자열이 계정 접두사로 사용됩니다.

하위 도메인은 DNS에만 적용됩니다. 따라서 새 LDAP 사용자 계정 이름은 bdc-ldap@contoso.local. 계정 이름이 아닙니다 bdc-ldap@bdc.contoso.local.

Semantics

다음은 도메인에서 여러 클러스터를 구성하기 위해 SQL Server 2019 CU5에 추가된 매개 변수입니다.

subdomain

  • Optional field
  • 데이터 형식: 문자열
  • 정의: 이 빅 데이터 클러스터에 사용할 고유한 DNS 하위 도메인입니다. 이 값은 Active Directory 도메인에 배포된 각 클러스터에 대해 달라야 합니다.
  • 기본값: 제공되지 않으면 클러스터 이름이 기본값으로 사용됩니다.
  • 최대 길이: 레이블당 63자(레이블이 각 문자열로 점으로 구분됨).
  • 설명: 엔드포인트 DNS 이름은 FQDN에서 하위 도메인을 사용해야 합니다.

accountPrefix

  • Optional field
  • 데이터 형식: 문자열
  • 정의: 빅 데이터 클러스터에서 생성할 AD 계정에 대한 고유한 접두사입니다. 이 값은 Active Directory 도메인에 배포된 각 클러스터에 대해 달라야 합니다.
  • 기본값: 제공되지 않으면 하위 도메인 이름이 기본값으로 사용됩니다. 하위 도메인이 제공되지 않으면 클러스터 이름이 하위 도메인 이름으로 사용되므로 클러스터 이름도 accountPrefix로 상속됩니다. 하위 도메인이 제공되고 다중 파트 이름(점 하나 이상 포함)인 경우 사용자는 accountPrefix를 제공해야 합니다.
  • 최대 길이: 12자

AD 도메인 및 DNS 서버 조정

동일한 Active Directory 도메인에 대해 여러 빅 데이터 클러스터의 배포를 수용하기 위해 AD 도메인 또는 도메인 컨트롤러에는 변경이 필요하지 않습니다. DNS 하위 도메인은 외부 엔드포인트 DNS 이름을 등록할 때 DNS 서버에 자동으로 만들어집니다.

배포 구성 파일의 변경 내용

컨트롤 플레인 구성 control.jsonactiveDirectory 섹션에는 다음과 같은 두 가지 새로운 선택적 매개 변수 subdomain 가 있습니다accountPrefix. 클러스터 이름은 이러한 각 매개 변수에 사용됩니다. 기본 동작을 재정의하려는 경우 이러한 설정에 대한 새 값을 제공합니다. 클러스터 이름은 네임스페이스 이름과 동일합니다.

정규화된 엔드포인트 DNS 이름을 사용할 수 있는 옵션이 있습니다. 또한 동일한 도메인에 배포된 다른 빅 데이터 클러스터와 충돌할 수 없습니다. 하위 도메인 매개 변수의 값을 사용하여 DNS 이름이 클러스터 간에 다른지 확인할 수 있습니다. 게이트웨이 엔드포인트를 고려합니다. 엔드포인트의 이름을 gateway 사용하여 DNS 서버에 자동으로 등록할 수 있습니다. 빅 데이터 클러스터 배포의 일부로 이 작업을 수행하려면 DNS 이름으로 사용합니다 gateway.bdc1.contoso.local . 하위 도메인이 bdc1고 AD DNS 도메인 이름이 contoso.local인 경우. 다른 허용 가능한 값은 다음과 gateway-bdc1.contoso.localgateway.contoso.local같습니다.

일부 Active Directory 보안 구성 예제

다음은 하위 도메인 및 accountPrefix를 재정의하려는 경우 Active Directory 보안 구성의 예입니다.

    "security": { 
        "activeDirectory": { 
            "ouDistinguishedName":"OU=contosoou,DC=contoso,DC=local", 
            "dnsIpAddresses": [ "10.10.10.10" ], 
            "domainControllerFullyQualifiedDns": [ "contoso-win2016-dc.contoso.local" ], 
            "domainDnsName":"contoso.local", 
            "subdomain": "bdc", 
            "accountPrefix": "myprefix", 
            "clusterAdmins": [ "contosoadmins" ], 
            "clusterUsers": [ "contosousers1", "contosousers2" ] 
        } 
    } 
  

다음은 컨트롤 플레인 엔드포인트에 대한 엔드포인트 사양의 예입니다. 고유하고 정규화된 경우 DNS 이름에 대한 모든 값을 사용할 수 있습니다.

        "endpoints": [ 
            { 
                "serviceType": "NodePort", 
                "port": 30080, 
                "name": "Controller", 
                "dnsName": "control-bdc1.contoso.local" 
            }, 
            { 
                "serviceType": "NodePort", 
                "port": 30777, 
                "name": "ServiceProxy", 
                "dnsName": "monitor-bdc1.contoso.local" 
            } 
        ] 
  

Questions

다른 클러스터에 대해 별도의 조직 구성 단위를 만들어야 합니까?

필수는 아니지만 권장됩니다. 별도의 클러스터에 대해 별도의 OU를 제공하면 생성된 사용자 계정을 관리하는 데 도움이 됩니다.

SQL Server 2019에서 CU5 이전 동작으로 되돌리려면 어떻게 해야 하나요?

새로 도입된 매개 변수를 수용할 수 없는 시나리오가 subdomain 있을 수 있습니다. 예를 들어 CU5 이전 릴리스를 배포해야 하며 Azure Data CLI()를azdata 이미 업그레이드했습니다. 가능성은 매우 낮지만, CU5 이전 동작으로 되돌려야 하는 경우, useSubdomain의 Active Directory 섹션에서 false 매개 변수를 control.json로 설정할 수 있습니다.

다음 예제에서는 이 시나리오에 useSubdomain 대해 설정합니다false.

azdata bdc config replace -c custom-prod-kubeadm/control.json -j "$.security.activeDirectory.useSubdomain=false" 

Next steps

SQL Server 빅 데이터 클러스터 Active Directory 통합 문제 해결