Menyebarkan beberapa SQL Server Kluster Big Data dalam domain Direktori Aktif yang sama

Berlaku untuk: SQL Server 2019 (15.x)

Artikel ini menjelaskan pembaruan untuk SQL Server Pembaruan Kumulatif 5 (CU5) 2019, yang memungkinkan konfigurasi beberapa Kluster Big Data SQL Server 2019. Berbagai Kluster Big Data sekarang dapat disebarkan dan diintegrasikan dengan Domain Direktori Aktif yang sama.

Penting

Add-on Kluster Big Data Microsoft SQL Server 2019 akan dihentikan. Dukungan untuk Kluster Big Data SQL Server 2019 akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung penuh pada platform dan perangkat lunak akan terus dipertahankan melalui pembaruan kumulatif SQL Server hingga saat itu. Untuk informasi selengkapnya, lihat posting blog pengumuman dan opsi Big data di platform Microsoft SQL Server.

Sebelum SQL Server 2019 CU5 dua masalah mencegah penyebaran beberapa kluster big data di domain AD.

  • Konflik penamaan untuk nama perwakilan layanan dan domain DNS
  • Nama utama akun domain

Apa itu tabrakan nama objek?

Nama perwakilan layanan (SPN) dan konflik penamaan domain DNS

Nama domain yang disediakan saat penyebaran digunakan sebagai domain DNS Active Directory (AD) Anda. Ini berarti bahwa pod dapat terhubung satu sama lain dalam jaringan internal menggunakan domain DNS ini. Pengguna juga terhubung ke titik akhir kluster big data menggunakan domain DNS ini. Akibatnya, Nama Prinsipal Layanan (SPN) apa pun yang dibuat untuk layanan dalam kluster big data memiliki nama pod, layanan, atau titik akhir Kube yang memenuhi syarat dengan domain DNS AD ini. Jika pengguna menyebarkan kluster kedua di domain, SPN yang dihasilkan memiliki FQDN yang sama, karena nama pod serta nama domain DNS tidak berbeda di antara kluster. Pertimbangkan kasus di mana domain DNS AD adalah contoso.local. Salah satu SPN yang dihasilkan untuk kumpulan master SQL Server dalam pod master-0 adalah MSSQLSvc/master-0.contoso.local:1433. Di kluster kedua pengguna mencoba untuk menyebarkan, nama pod untuk master-0 adalah sama. Pengguna menyediakan domain DNS AD yang sama (contoso.local) yang menghasilkan string SPN yang sama. Direktori Aktif melarang pembuatan SPN yang bertentangan yang mengarah ke kegagalan penyebaran untuk kluster kedua.

Nama utama akun domain

Selama penyebaran kluster big data dengan domain Direktori Aktif, beberapa prinsipal akun dihasilkan untuk layanan yang berjalan di dalam kluster big data. Ini pada dasarnya adalah akun pengguna AD. Sebelum SQL Server 2019 CU5, nama untuk akun ini tidak unik di antara kluster. Ini bermanifestasi dalam upaya untuk membuat nama akun pengguna yang sama untuk layanan tertentu di kluster big data di dua kluster yang berbeda. Kluster kedua yang disebarkan mengalami konflik di AD dan akun tidak dapat dibuat.

Cara mengatasi tabrakan nama

Langkah-langkah untuk mengatasi masalah domain SPN dan DNS - SQL Server 2019 CU5

SPN harus unik dalam kluster. Nama domain DNS yang diteruskan pada waktu penyebaran juga harus berbeda. Anda dapat menentukan nama DNS yang berbeda dengan pengaturan yang baru diperkenalkan dalam file konfigurasi penyebaran: subdomain. Jika subdomain berbeda antara dua kluster dan komunikasi internal dapat terjadi melalui subdomain ini, SPN akan mencakup subdomain yang mencapai keunikan yang diperlukan.

Catatan

Nilai yang diteruskan melalui pengaturan subdomain bukan domain AD baru, tetapi domain DNS yang digunakan secara internal.

Mari kita kembali ke kasus kumpulan master SQL Server SPN. Jika subdomain adalah bdc, SPN yang dibahas diubah menjadi MSSQLSvc/master-0.bdc.contoso.local:1433.

Nama kluster big data atau nama namespace digunakan untuk menghitung nilai pengaturan subdomain. Anda dapat secara opsional menyesuaikan nilai parameter subdomain yang baru diperkenalkan dalam spesifikasi konfigurasi direktori aktif. Ketika pengguna ingin mengganti nama subdomain, mereka dapat melakukannya menggunakan parameter subdomain baru dalam spesifikasi konfigurasi direktori aktif.

Cara memastikan keunikan nama akun

Untuk memperbarui nama akun dan menjamin keunikan, gunakan awalan akun. Awalan akun adalah segmen nama akun yang unik di antara dua kluster. Segmen yang tersisa dari nama akun bisa konstan. Format nama akun baru terlihat seperti berikut ini: <prefix>-<name>-<podId>.

Catatan

Direktori Aktif mengharuskan nama akun dibatasi hingga 20 karakter. Kluster big data perlu menggunakan 8 karakter untuk membedakan pod dan StatefulSets. Ini menyisakan 12 karakter untuk awalan akun.

Anda memiliki opsi untuk menyesuaikan nama akun Anda. accountPrefix Gunakan parameter dalam spesifikasi konfigurasi direktori aktif. SQL Server 2019 CU5 diperkenalkan accountPrefix dalam spesifikasi konfigurasi. Secara default, nama subdomain digunakan sebagai awalan akun. Jika nama subdomain lebih panjang dari 12 karakter, substring 12 karakter awal dari nama subdomain digunakan sebagai awalan akun.

Subdomain hanya berlaku untuk DNS. Oleh karena itu nama akun pengguna LDAP baru adalah bdc-ldap@contoso.local. Nama akun bukan bdc-ldap@bdc.contoso.local.

Semantik

Berikut ini adalah parameter yang ditambahkan di CU5 SQL Server 2019 untuk mengonfigurasi beberapa kluster dalam domain:

subdomain

  • Bidang opsional
  • Jenis data: string
  • Definisi: Subdomain DNS unik yang digunakan untuk kluster big data ini. Nilai ini harus berbeda untuk setiap kluster yang disebarkan di domain Direktori Aktif.
  • Nilai default: Ketika tidak disediakan, nama kluster akan digunakan sebagai nilai default
  • Panjang maksimum: 63 karakter per label (label menjadi setiap string yang dipisahkan oleh titik).
  • Keterangan: Nama DNS titik akhir harus menggunakan subdomain di FQDN mereka.

accountPrefix

  • Bidang opsional
  • Jenis data: string
  • Definisi: Awalan unik untuk akun AD yang akan dihasilkan kluster big data. Nilai ini harus berbeda untuk setiap kluster yang disebarkan di domain Direktori Aktif.
  • Nilai default: Jika tidak disediakan, nama subdomain akan digunakan sebagai nilai default. Ketika subdomain tidak disediakan, nama kluster akan digunakan sebagai nama subdomain, dan karenanya nama kluster juga akan diwarisi sebagai accountPrefix. Jika subdomain disediakan dan merupakan nama multipihak (berisi satu atau beberapa titik), pengguna harus menyediakan accountPrefix.
  • Panjang maksimum: 12 karakter

Penyesuaian domain AD dan server DNS

Tidak ada perubahan yang diperlukan di domain AD atau pengendali domain untuk mengakomodasi penyebaran beberapa kluster big data terhadap domain Direktori Aktif yang sama. Subdomain DNS akan dibuat secara otomatis di server DNS saat mendaftarkan nama DNS titik akhir eksternal.

Perubahan pada file konfigurasi penyebaran

Bagian activeDirectory di control plane configuration control.json memiliki dua parameter opsional baru: subdomain dan accountPrefix. Nama kluster digunakan untuk masing-masing parameter ini. Berikan nilai baru untuk pengaturan ini jika Anda ingin mengambil alih perilaku default. Nama kluster sama dengan nama namespace layanan.

Anda memiliki opsi untuk menggunakan nama DNS titik akhir apa pun, selama nama dns tersebut sepenuhnya memenuhi syarat. Ini juga tidak dapat berkonflik dengan kluster big data lain yang disebarkan di domain yang sama. Anda dapat menggunakan nilai parameter subdomain untuk memastikan nama DNS berbeda di seluruh kluster. Pertimbangkan titik akhir gateway. Anda dapat menggunakan nama gateway untuk titik akhir dan mendaftarkannya di server DNS secara otomatis. Untuk melakukan ini sebagai bagian dari penyebaran kluster big data Anda, gunakan gateway.bdc1.contoso.local sebagai nama DNS. Jika bdc1 adalah subdomain dan contoso.local merupakan nama domain AD DNS. Nilai lain yang dapat diterima adalah: gateway-bdc1.contoso.local atau hanya gateway.contoso.local.

Beberapa contoh konfigurasi keamanan Direktori Aktif

Berikut ini adalah contoh konfigurasi keamanan direktori aktif, jika Anda ingin mengganti subdomain dan 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" ] 
        } 
    } 
  

Berikut ini adalah contoh spesifikasi titik akhir untuk titik akhir sarana kontrol. Anda bisa menggunakan nilai apa pun untuk nama DNS, selama nilai tersebut unik dan sepenuhnya memenuhi syarat:

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

Pertanyaan

Apakah Anda perlu membuat unit organisasi terpisah untuk kluster yang berbeda?

Ini tidak diperlukan, tetapi disarankan. Menyediakan OU terpisah untuk kluster terpisah membantu Anda mengelola akun pengguna yang dihasilkan.

Bagaimana cara kembali ke perilaku pra-CU5 di SQL Server 2019?

Mungkin ada skenario di mana Anda tidak dapat mengakomodasi parameter yang baru diperkenalkan subdomain . Misalnya Anda harus menyebarkan rilis pra-CU5 dan Anda sudah meningkatkan Azure Data CLI (azdata). Ini sangat tidak mungkin, tetapi jika Anda perlu kembali ke perilaku pra-CU5, Anda dapat mengatur useSubdomain parameter ke false di bagian direktori aktif dari control.json.

Contoh berikut mengatur useSubdomain ke false untuk skenario ini.

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

Langkah berikutnya

Memecahkan masalah SQL Server integrasi Direktori Aktif Kluster Big Data