Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server di Linux
Tutorial ini menjelaskan cara mengonfigurasi grup ketersediaan (AG) AlwaysOn SQL Server untuk kontainer berbasis Linux SQL Server yang disebarkan ke kluster Azure Kubernetes Service (AKS), menggunakan DH2i DxOperator. Prosedur ini juga berlaku untuk kluster Azure Red Hat OpenShift; perbedaan utama adalah penyebaran kluster Azure Red Hat OpenShift, diikuti dengan mengganti kubectl perintah dengan oc dalam langkah-langkah berikut.
Microsoft mendukung komponen pergerakan data, AG, dan SQL Server. DH2i bertanggung jawab atas dukungan produk DxEnterprise, yang mencakup manajemen kluster dan kuorum.
DxOperator adalah ekstensi perangkat lunak untuk Kubernetes yang menggunakan definisi sumber daya kustom untuk mengotomatiskan penyebaran kluster DxEnterprise. DxEnterprise kemudian menyediakan semua instrumentasi untuk membuat, mengonfigurasi, mengelola, dan menyediakan failover otomatis untuk beban kerja SQL Server AG di Kubernetes. Anda dapat mendaftar untuk lisensi perangkat lunak DxEnterprise gratis. Untuk informasi selengkapnya, lihat Panduan Mulai Cepat DxOperator.
Dengan menggunakan langkah-langkah yang disebutkan dalam artikel ini, pelajari cara menyebarkan StatefulSet dan menggunakan DH2i DxOperator untuk membuat dan mengonfigurasi AG dengan tiga replika, yang dihosting di AKS.
Tutorial ini terdiri dari langkah-langkah berikut:
- Membuat
configmapobjek pada kluster AKS dengan pengaturan mssql-conf - Menginstal DxOperator
- Membuat objek rahasia
- Menyebarkan 3 replika SQL AG menggunakan file YAML
- Sambungkan ke SQL Server
Prasyarat
Kluster Azure Kubernetes Service (AKS) atau Kubernetes.
Lisensi DxEnterprise yang valid dengan fitur AG dan terowongan diaktifkan. Untuk informasi selengkapnya, lihat edisi pengembang untuk penggunaan nonproduksi, atau perangkat lunak DxEnterprise untuk beban kerja produksi.
configmap Membuat objek
Di AKS, buat
configmapobjek , yang memiliki pengaturan mssql-conf berdasarkan kebutuhan Anda. Dalam contoh ini, Anda membuatconfigMap, menggunakan file yang disebutmssqlconfig.yamldengan parameter berikut.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueBuat objek dengan menjalankan perintah berikut.
kubectl apply -f ./mssqlconfig.yaml
Membuat objek rahasia
Buat rahasia untuk menyimpan sa kata sandi untuk SQL Server.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Perhatian
Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.
Buat rahasia untuk menyimpan kunci lisensi untuk DH2i. Kunjungi situs web DH2i untuk mendapatkan lisensi pengembang. Ganti XXXX-XXXX-XXXX-XXXX dalam contoh berikut dengan kunci lisensi Anda.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
Menginstal DxOperator
Untuk menginstal DxOperator, Anda harus mengunduh file YAML DxOperator menggunakan contoh berikut, lalu menerapkan file YAML.
Sebarkan YAML yang menjelaskan cara menyiapkan AG, menggunakan perintah berikut. Simpan file dengan nama kustom, seperti
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxesqlag/files/v1.yaml -o DxOperator.yaml kubectl apply –f DxOperator.yamlSetelah menginstal operator, Anda dapat menyebarkan kontainer SQL Server, mengonfigurasi grup ketersediaan, menentukan replika, menyebarkan, dan mengonfigurasi kluster DxEnterprise. Berikut adalah contoh file YAML penyebaran yang disebut
DxEnterpriseSqlAg.yaml, yang dapat Anda ubah agar sesuai dengan kebutuhan Anda.apiVersion: dh2i.com/v1 kind: DxEnterpriseSqlAg metadata: name: contoso-sql spec: synchronousReplicas: 3 asynchronousReplicas: 0 # ConfigurationOnlyReplicas are only allowed with availabilityGroupClusterType set to EXTERNAL configurationOnlyReplicas: 0 availabilityGroupName: AG1 # Listener port for the availability group (uncomment to apply) availabilityGroupListenerPort: 51433 # For a contained availability group, add the option CONTAINED availabilityGroupOptions: null # Valid options are EXTERNAL (automatic failover) and NONE (no automatic failover) availabilityGroupClusterType: EXTERNAL createLoadBalancers: true template: metadata: labels: label: example annotations: annotation: example spec: dxEnterpriseContainer: image: "docker.io/dh2i/dxe:latest" imagePullPolicy: Always acceptEula: true clusterSecret: dxe vhostName: VHOST1 joinExistingCluster: false # QoS – guaranteed (uncomment to apply) #resources: #limits: #memory: 1Gi #cpu: '1' # Configuration options for the required persistent volume claim for DxEnterprise volumeClaimConfiguration: storageClassName: null resources: requests: storage: 1Gi mssqlServerContainer: image: "mcr.microsoft.com/mssql/server:latest" imagePullPolicy: Always mssqlSecret: mssql acceptEula: true mssqlPID: Developer mssqlConfigMap: mssql-config # QoS – guaranteed (uncomment to apply) #resources: #limits: #memory: 2Gi #cpu: '2' # Configuration options for the required persistent volume claim for SQL Server volumeClaimConfiguration: storageClassName: null resources: requests: storage: 2Gi # Additional side-car containers, such as mssql-tools (uncomment to apply) #containers: #- name: mssql-tools #image: "mcr.microsoft.com/mssql-tools" #command: [ "/bin/sh" ] #args: [ "-c", "tail -f /dev/null" ]Sebarkan file
DxEnterpriseSqlAg.yaml.kubectl apply -f DxEnterpriseSqlAg.yaml
Membuat listener grup ketersediaan
Terapkan YAML berikut untuk menambahkan load balancer, dengan mengatur pemilih ke nilai metadata.name di langkah sebelumnya. Contohnya, contoso-sql.
apiVersion: v1
kind: Service
metadata:
name: contoso-cluster-lb
spec:
type: LoadBalancer
selector:
dh2i.com/entity: contoso-sql
ports:
- name: sql
protocol: TCP
port: 1433
targetPort: 51444
- name: listener
protocol: TCP
port: 51433
targetPort: 51433
- name: dxe
protocol: TCP
port: 7979
targetPort: 7979
Verifikasi penetapan penyebaran dan load balancer.
kubectl get pods
kubectl get services
Anda akan melihat output yang mirip dengan contoh berikut.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
contoso-cluster-lb LoadBalancer 10.1.0.21 172.212.20.29 1433:30484/TCP,14033:30694/TCP,7979:30385/TCP 3m18s
contoso-sql-0 ClusterIP None <none> 7979/TCP,7980/TCP,7981/UDP,5022/TCP,1433/TCP 79m
contoso-sql-0-lb LoadBalancer 10.1.0.210 4.255.19.171 7979:32374/TCP,1433:32444/TCP 79m
contoso-sql-1 ClusterIP None <none> 7979/TCP,7980/TCP,7981/UDP,5022/TCP,1433/TCP 79m
contoso-sql-1-lb LoadBalancer 10.1.0.158 4.255.19.201 7979:30152/TCP,1433:30868/TCP 79m
contoso-sql-2 ClusterIP None <none> 7979/TCP,7980/TCP,7981/UDP,5022/TCP,1433/TCP 79m
contoso-sql-2-lb LoadBalancer 10.1.0.159 4.255.19.218 7979:30566/TCP,1433:31463/TCP 79m
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 87m
PS /home/aravind> kubectl get pods
NAME READY STATUS RESTARTS AGE
contoso-sql-0 2/2 Running 0 74m
contoso-sql-1 2/2 Running 0 74m
contoso-sql-2 2/2 Running 0 74m
Konten terkait
- Menyebarkan grup ketersediaan di Kubernetes dengan DH2i DxOperator di Azure Kubernetes Service dan Rancher oleh SUSE
- Menyebarkan grup ketersediaan dengan DH2i DxEnterprise di Kubernetes
- Menyebarkan kontainer SQL Server di Azure Kubernetes Service
- Menyebarkan kontainer SQL Server Linux di Kubernetes dengan StatefulSets