Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2019 (15.x)
В этой статье описываются обновления для SQL Server 2019 с накопительным пакетом обновления 5 (CU5), что позволяет настроить несколько кластеров больших данных SQL Server 2019. Теперь можно развернуть различные кластеры больших данных и интегрировать их с тем же доменом Active Directory.
Important
Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.
До SQL Server 2019 CU5 два проблемы предотвратили развертывание нескольких кластеров больших данных в доменах AD.
- Конфликт именования для имен главных служб и домена DNS
- Имена учетных записей домена
Что такое столкновения имен объектов?
Конфликт имен SPN (основных имен служб) и имен доменов DNS
Доменное имя, предоставленное при развертывании, используется в качестве домена DNS Active Directory (AD ). Это означает, что модули pod могут подключаться друг к другу в внутренней сети с помощью этого домена DNS. Пользователи также подключаются к конечным точкам кластера больших данных с помощью этого домена DNS. В результате любое SPN, созданное для службы в кластере больших данных, имеет имя pod, службы или конечной точки Kubernetes, квалифицированное этим доменом AD DNS. Если пользователь разворачивает второй кластер в домене, служебные имена принципалов (SPN) имеют тот же полный домен, поскольку имена подов и DNS домены не отличаются между кластерами. Рассмотрим случай, когда домен DNS AD имеет значение contoso.local. Одним из имен субъектов-служб, созданных для главного пула SQL Server в pod master-0 , является MSSQLSvc/master-0.contoso.local:1433. Во втором кластере, который пользователь пытается развернуть, имя pod для master-0 такое же. Пользователь предоставляет тот же DNS-домен AD (contoso.local), что приводит к той же строке имени основного субъекта службы (SPN). Active Directory запрещает создание конфликтующего SPN, что приводит к сбою развертывания второго кластера.
Имена учетных записей домена
Во время развертывания кластера больших данных с доменом Active Directory несколько субъектов учетных записей создаются для служб, работающих в кластере больших данных. Это, по сути, учетные записи пользователей AD. До SQL Server 2019 CU5 имена этих учетных записей не были уникальными между кластерами. Это манифестирует попытку создать одно и то же имя учетной записи пользователя для определенной службы в кластере больших данных в двух разных кластерах. Второй кластер развертывается с конфликтом в AD, и учетная запись не может быть создана.
Устранение конфликтов имен
Шаги по устранению проблем с доменами SPN и DNS — SQL Server 2019 CU5
Имена служб должны быть уникальными в кластерах. Dns-имя домена, переданное во время развертывания, также должно отличаться. Вы можете указать различные DNS-имена с новым параметром в файле конфигурации развертывания: subdomain Если поддомен отличается между двумя кластерами и внутренняя связь может происходить по этому поддомену, 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 символами. Кластер больших данных должен использовать 8 символов для различения модулей pod и StatefulSet. Это оставляет 12 символов для префикса учетной записи.
Вы можете настроить имя учетной записи. Используйте параметр accountPrefix в спецификации конфигурации Active Directory. 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-имена конечных точек должны использовать поддомен в полном доменном имени.
accountPrefix
- Optional field
- Тип данных: строка
- Определение: уникальный префикс для учетных записей AD, создаваемых кластером больших данных. Это значение должно отличаться для каждого кластера, развернутого в домене Active Directory.
- Значение по умолчанию: если не указано, имя поддомена будет использоваться в качестве значения по умолчанию. Если поддомен не указан, имя кластера будет использоваться в качестве поддомена, поэтому имя кластера будет унаследовано как accountPrefix. Если поддомен указан и является многопартийным именем (содержит одну или несколько точек), пользователь должен предоставить учетную записьPrefix.
- Максимальная длина: 12 символов
Корректировки домена AD и DNS-сервера
В домене ИЛИ контроллере домена AD изменения не требуются для развертывания нескольких кластеров больших данных в одном домене Active Directory. Поддомен DNS будет автоматически создан на DNS-сервере при регистрации dns-имен внешних конечных точек.
Изменения в файле конфигурации развертывания
Раздел ActiveDirectory в конфигурации плоскости управления control.json имеет два новых необязательных параметра: subdomain и accountPrefix. Имя кластера используется для каждого из этих параметров. Укажите новые значения для этих параметров, если вы хотите переопределить поведение по умолчанию. Имя кластера совпадает с именем пространства имен.
У вас есть возможность использовать любое DNS-имя конечной точки, если оно полностью квалифицировано. Кроме того, он не может конфликтуть с любым другим кластером больших данных, развернутыми в том же домене. Можно использовать значение параметра поддомена, чтобы убедиться, что DNS-имена отличаются между кластерами. Рассмотрим конечную точку шлюза. Вы можете использовать имя gateway конечной точки и зарегистрировать его на DNS-сервере автоматически. Для этого в рамках развертывания кластера больших данных используйте gateway.bdc1.contoso.local в качестве DNS-имени. Если bdc1 является поддоменом и contoso.local является доменным именем AD DNS. Другие допустимые значения: gateway-bdc1.contoso.local или просто gateway.contoso.local.
Некоторые примеры конфигурации безопасности Active Directory
Ниже приведен пример конфигурации безопасности Active Directory, если вы хотите переопределить поддомен и accountPrefix.
"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
Нужно ли создавать отдельные подразделения для разных кластеров?
Это не обязательно, но рекомендуется. Предоставление отдельных подразделений для отдельных кластеров помогает управлять созданными учетными записями пользователей.
Как вернуться к поведению предварительной версии CU5 в SQL Server 2019?
Могут возникнуть сценарии, в которых не удается разместить только что появившиеся subdomain параметры. Например, необходимо развернуть предварительную версию CU5 и уже обновить Azure Data CLI (azdata). Это крайне маловероятно, но если вам нужно вернуться к поведению предварительной версии CU5, можно задать useSubdomain параметр false в разделе control.jsonActive Directory.
В следующем примере useSubdomain устанавливается как false для этого сценария.
azdata bdc config replace -c custom-prod-kubeadm/control.json -j "$.security.activeDirectory.useSubdomain=false"
Next steps
Устранение неполадок интеграции с кластером больших данных SQL Server Active Directory