Bagikan melalui


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

Berlaku untuk: SQL Server 2019 (15.x)

Artikel ini menjelaskan pembaruan untuk SQL Server 2019 Cumulative Update 5 (CU5), 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 SQL Server 2019 Kluster Big Data akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung sepenuhnya 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, setiap Nama Prinsipal Layanan (SPN) yang dibuat untuk layanan dalam kluster big data memiliki nama pod, layanan, atau titik akhir Kubernetes 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 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 menyebabkan 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 menyelesaikan 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 menyertakan 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 layanan 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 dapat berupa konstanta. 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 meninggalkan 12 karakter untuk awalan akun.

Anda memiliki opsi untuk menyesuaikan nama akun Anda. accountPrefix Gunakan parameter dalam konfigurasi direktori aktif spec. SQL Server 2019 CU5 yang 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 SQL Server 2019 CU5 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: Jika 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 dalam konfigurasi sarana kontrol 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.

Anda memiliki opsi untuk menggunakan nama DNS titik akhir apa pun, selama itu 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 mengambil alih 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 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 diatur 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 integrasi Direktori Aktif Kluster Big Data SQL Server