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 utamanya adalah penerapan kluster Azure Red Hat OpenShift, yang diikuti dengan penggantian perintah kubectl menjadi oc pada langkah-langkah berikut.
Dengan menggunakan langkah-langkah dalam artikel ini, Anda mempelajari 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 grup ketersediaan SQL Server tiga replika menggunakan file YAML
- Sambungkan ke SQL Server
Prasyarat
Kluster Azure Kubernetes Service (AKS) atau kluster Kubernetes.
Lisensi DxEnterprise yang valid dengan fitur AG serta tunnel yang 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 membuat denganconfigmapmenggunakan file yang dipanggilmssqlconfig.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>"
Caution
Kata sandi Anda harus mengikuti kebijakan password 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, unduh file YAML DxOperator dengan menggunakan contoh berikut, lalu terapkan file YAML.
Sebarkan file YAML yang menjelaskan cara menyiapkan AG dengan menggunakan perintah berikut. Simpan file dengan nama kustom, seperti
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxsqlag/files/v2.yaml -o DxOperator.yaml kubectl apply -f DxOperator.yamlSetelah menginstal operator, Anda dapat menyebarkan kontainer SQL Server, mengonfigurasi grup ketersediaan, menentukan replika, serta menyebarkan serta mengonfigurasi kluster DxEnterprise. Ubah contoh file YAML penyebaran berikut,
DxSqlAg.yaml, agar sesuai dengan kebutuhan Anda.apiVersion: dh2i.com/v1 kind: DxSqlAg metadata: name: contoso-sql spec: sqlAgConfiguration: synchronousReplicas: 3 asynchronousReplicas: 0 # ConfigurationOnlyReplicas are only allowed with availabilityGroupClusterType set to EXTERNAL configurationOnlyReplicas: 0 availabilityGroupName: AG1 # Adds auto-generated load balancers to serviceTemplates for easy cluster access # For more customization, use the serviceTemplates section below #createLoadBalancers: true # Listener port for the availability group (uncomment to apply) #availabilityGroupListenerPort: 51433 # For a contained availability group, add the option CONTAINED #availabilityGroupOptions: CONTAINED # Disables automatic availability mode switching when scaling down #disableModeSwitching: true statefulSetSpec: podspec: dxEnterpriseContainer: image: "docker.io/dh2i/dxe:latest" imagePullPolicy: Always acceptEula: true clusterSecret: dxe vhostName: VHOST1 # Configuration options for the required persistent volume claim for DxEnterprise #volumeClaimConfiguration: # Set custom storage class for DxE PVC #storageClassName: example-class mssqlServerContainer: image: "mcr.microsoft.com/mssql/server:2025-latest" imagePullPolicy: Always mssqlSecret: mssql acceptEula: true mssqlPID: Developer # Set a non-default SQL Server port. DxOperator will auto-detect # the port from other sources too, such as mssqlConfigMap mssqlTcpPort: 51444 # The MSSQL configMap (mssql.conf file) mssqlConfigMap: mssql-config # Configuration options for the required persistent volume claim for SQL Server #volumeClaimConfiguration: # resources: # requests: # storage: 2Gi # Additional pod containers, such as mssql-tools #containers: #- name: mssql-tools #image: "mcr.microsoft.com/mssql-tools" #command: [ "/bin/sh" ] #args: [ "-c", "tail -f /dev/null" ]Sebarkan file
DxSqlAg.yaml.kubectl apply -f DxSqlAg.yaml
Buat listener grup ketersediaan
Perbarui
availabilityGroupListenerPortnilai dalam file AndaDxSqlAg.yaml:spec: sqlAgConfiguration: availabilityGroupListenerPort: 51433Terapkan file:
kubectl apply -f DxSqlAg.yamlTerapkan konfigurasi YAML berikut untuk menambahkan load balancer untuk listener.
apiVersion: v1 kind: Service metadata: name: contoso-cluster-lb spec: type: LoadBalancer selector: dh2i.com/entity-name: contoso-sql # This label points to whichever pod is the active Vhost member dh2i.com/active-vhost-vhost1: "true" ports: - name: sql protocol: TCP port: 1433 targetPort: 51444 - name: listener protocol: TCP port: 51433 targetPort: 51433 - name: dxe protocol: TCP port: 7979 targetPort: 7979Verifikasi bahwa layanan dan penyeimbang beban sedang berjalan.
kubectl get servicesOutput terlihat 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 87mVerifikasi bahwa ketiga pod SQL Server sedang berjalan.
kubectl get podsOutput terlihat mirip dengan contoh berikut:
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 kontainer SQL Server dan grup ketersediaan dengan DH2i DxOperator di Azure Kubernetes Service melalui Rancher
- Menyebarkan grup ketersediaan dengan DH2i DxEnterprise di Kubernetes
- Quickstart: Menyebarkan kluster kontainer SQL Server pada Azure atau Red Hat OpenShift
- Menyebarkan kontainer SQL Server Linux di Kubernetes dengan StatefulSets