Menyebarkan Kluster Big Data SQL Server di OpenShift lokal dan Azure Red Hat OpenShift
Berlaku untuk: SQL Server 2019 (15.x)
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.
Artikel ini menjelaskan cara menyebarkan Kluster Big Data SQL Server di lingkungan OpenShift, lokal, atau di Azure Red Hat OpenShift (ARO).
Tip
Untuk cara cepat untuk bootstrap lingkungan sampel menggunakan ARO dan kemudian BDC yang disebarkan pada platform ini, Anda dapat menggunakan skrip Python yang tersedia di sini.
Anda dapat menyebarkan kluster big data ke OpenShift lokal atau di Azure Red Hat OpenShift (ARO). Validasi versi CRI-O OpenShifts terhadap konfigurasi yang diuji pada catatan rilis SQL Server Kluster Big Data. Meskipun alur kerja penyebaran mirip dengan penyebaran di platform berbasis Kubernetes lainnya (kubeadm dan AKS), ada beberapa perbedaan. Perbedaannya terutama terkait dengan menjalankan aplikasi sebagai pengguna non-root dan konteks keamanan yang digunakan untuk namespace BDC disebarkan.
Untuk menyebarkan kluster OpenShift lokal, lihat dokumentasi Red Hat OpenShift. Untuk penyebaran ARO, lihat Azure Red Hat OpenShift.
Artikel ini menguraikan langkah-langkah penyebaran yang khusus untuk platform OpenShift, menunjukkan opsi yang Anda miliki untuk mengakses lingkungan target dan namespace layanan yang Anda gunakan untuk menyebarkan kluster big data.
Prasyarat
Penting
Prasyarat di bawah ini harus dilakukan oleh admin kluster OpenShift (peran kluster-admin kluster) yang memiliki izin yang memadai untuk membuat objek tingkat kluster ini. Untuk informasi selengkapnya tentang peran kluster di OpenShift lihat Menggunakan RBAC untuk menentukan dan menerapkan izin.
pidsLimit
Pastikan pengaturan pada OpenShift diperbarui untuk mengakomodasi beban kerja SQL Server. Nilai default di OpenShift terlalu rendah untuk produksi seperti beban kerja. Mulailah dengan setidaknya4096
, tetapi nilai optimal tergantungmax worker threads
pengaturan di SQL Server dan jumlah prosesor CPU pada node host OpenShift.- Untuk mengetahui cara memperbarui
pidsLimit
kluster OpenShift Anda, gunakan instruksi ini. Perhatikan bahwa versi OpenShift sebelum4.3.5
memiliki cacat yang menyebabkan nilai yang diperbarui tidak berlaku. Pastikan Anda memutakhirkan OpenShift ke versi terbaru. - Untuk membantu Anda menghitung nilai optimal tergantung pada lingkungan dan beban kerja SQL Server yang direncanakan, Anda dapat menggunakan estimasi dan contoh di bawah ini:
Jumlah prosesor Utas pekerja maks default Pekerja default per prosesor Nilai pidsLimit minimum 64 512 16 512 + (64 *16) = 1536 128 512 32 512 + (128*32) = 4608 Catatan
Proses lain (misalnya cadangan, CLR, Fulltext, SQLAgent) juga menambahkan beberapa overhead, jadi tambahkan buffer ke perkiraan nilai.
- Untuk mengetahui cara memperbarui
Unduh batasan konteks keamanan kustom (SCC)
bdc-scc.yaml
:curl https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/openshift/bdc-scc.yaml -o bdc-scc.yaml
Terapkan SCC ke kluster.
oc apply -f bdc-scc.yaml
Catatan
SCC kustom untuk BDC didasarkan pada SCC bawaan
nonroot
di OpenShift, dengan izin tambahan. Untuk mempelajari selengkapnya tentang batasan konteks keamanan di OpenShift lihat Mengelola Batasan Konteks Keamanan. Untuk informasi terperinci tentang izin tambahan apa yang diperlukan untuk kluster big data di atasnonroot
SCC, unduh laporan resmi di sini.Buat namespace/proyek:
oc new-project <namespaceName>
Ikat SCC kustom dengan akun layanan di namespace tempat BDC disebarkan:
oc create clusterrole bdc-role --verb=use --resource=scc --resource-name=bdc-scc -n <namespaceName> oc create rolebinding bdc-rbac --clusterrole=bdc-role --group=system:serviceaccounts:<namespaceName>
Tetapkan izin yang sesuai untuk pengguna yang menyebarkan BDC. Lakukan salah satu hal berikut ini.
Jika pengguna yang menyebarkan BDC memiliki peran cluster-admin, lanjutkan untuk menyebarkan kluster big data.
Jika pengguna yang menyebarkan BDC adalah admin namespace layanan, tetapkan peran lokal admin kluster pengguna untuk namespace yang dibuat. Ini adalah opsi yang disukai bagi pengguna yang menyebarkan dan mengelola kluster big data untuk memiliki izin admin tingkat namespace.
oc create rolebinding bdc-user-rbac --clusterrole=cluster-admin --user=<userName> -n <namespaceName>
Pengguna yang menyebarkan kluster big data kemudian harus masuk ke konsol OpenShift:
oc login -u <deployingUser> -p <password>
Menyebarkan kluster big data
Instal azdata terbaru.
Kloning salah satu file konfigurasi bawaan untuk OpenShift, tergantung pada lingkungan target Anda (OpenShift lokal atau ARO) dan skenario penyebaran. Lihat pengaturan khusus OpenShift di bagian file konfigurasi penyebaran di bawah ini untuk pengaturan yang khusus untuk OpenShift dalam file konfigurasi bawaan. Untuk detail selengkapnya tentang file konfigurasi yang tersedia, lihat panduan penyebaran.
Cantumkan semua file konfigurasi bawaan yang tersedia.
azdata bdc config list
Untuk mengkloning salah satu file konfigurasi bawaan, jalankan perintah di bawah ini (secara opsional, Anda dapat mengganti profil berdasarkan platform/skenario yang ditargetkan):
azdata bdc config init --source openshift-dev-test --target custom-openshift
Untuk penyebaran di ARO, mulailah dengan salah
aro-
satu profil, yang mencakup nilai default untukserviceType
danstorageClass
sesuai untuk lingkungan ini. Contohnya:azdata bdc config init --source aro-dev-test --target custom-openshift
Sesuaikan file konfigurasi control.json dan bdc.json. Berikut adalah beberapa sumber daya tambahan yang memandu Anda melalui penyesuaian untuk berbagai kasus penggunaan:
Catatan
Integrasi dengan MICROSOFT Entra ID (sebelumnya Azure Active Directory) untuk BDC tidak didukung, oleh karena itu Anda tidak dapat menggunakan metode autentikasi ini saat menyebarkan di ARO.
Mengatur variabel lingkungan
Menyebarkan kluster big data
azdata bdc create --config custom-openshift --accept-eula yes
Setelah penyebaran berhasil, Anda dapat masuk dan mencantumkan titik akhir kluster eksternal:
azdata login -n mssql-cluster azdata bdc endpoint list
Pengaturan khusus OpenShift dalam file konfigurasi penyebaran
SQL Server 2019 CU5 memperkenalkan dua sakelar fitur untuk mengontrol pengumpulan metrik pod dan simpul. Parameter ini diatur ke false
secara default di profil bawaan untuk OpenShift karena kontainer pemantauan memerlukan konteks keamanan istimewa, yang akan melonggarkan beberapa batasan keamanan untuk namespace BDC disebarkan.
"security": {
"allowNodeMetricsCollection": false,
"allowPodMetricsCollection": false
}
Nama kelas penyimpanan default di ARO adalah managed-premium (dibandingkan dengan AKS di mana kelas penyimpanan default disebut default). Anda akan menemukan ini di yang control.json
sesuai dengan aro-dev-test
dan aro-dev-test-ha
:
},
"storage": {
"data": {
"className": "managed-premium",
"accessMode": "ReadWriteOnce",
"size": "15Gi"
},
"logs": {
"className": "managed-premium",
"accessMode": "ReadWriteOnce",
"size": "10Gi"
}
File bdc-scc.yaml
File SCC untuk penyebaran ini adalah:
allowHostDirVolumePlugin: false
allowHostIPC: false
allowHostNetwork: false
allowHostPID: false
allowHostPorts: false
allowPrivilegeEscalation: true
allowPrivilegedContainer: false
allowedCapabilities:
- SETUID
- SETGID
- CHOWN
- SYS_PTRACE
apiVersion: security.openshift.io/v1
defaultAddCapabilities: null
fsGroup:
type: RunAsAny
kind: SecurityContextConstraints
metadata:
annotations:
kubernetes.io/description: SQL Server BDC custom scc is based on 'nonroot' scc plus additional capabilities required by BDC.
generation: 2
name: bdc-scc
readOnlyRootFilesystem: false
requiredDropCapabilities:
- KILL
- MKNOD
runAsUser:
type: MustRunAsNonRoot
seLinuxContext:
type: MustRunAs
supplementalGroups:
type: RunAsAny
volumes:
- configMap
- downwardAPI
- emptyDir
- persistentVolumeClaim
- projected
- secret
Langkah berikutnya
Tutorial: Memuat data sampel ke dalam kluster big data SQL Server
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk