Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Linux üzerinde SQL Server
Bu öğreticide, DH2i DxOperator kullanılarak Azure Kubernetes Service (AKS) kümesine dağıtılan SQL Server Linux tabanlı kapsayıcılar için SQL Server AlwaysOn kullanılabilirlik gruplarının (AG) nasıl yapılandırılacağı açıklanmaktadır. Bu prosedürler Azure Red Hat OpenShift kümeleri için de geçerlidir. Temel ayrım, Azure Red Hat OpenShift kümesinin dağıtılması ve ardından komutların aşağıdaki adımlarda yerine kubectloc koyulmasıdır.
Bu makaledeki adımları kullanarak StatefulSet nasıl dağıtılacağını ve DH2i DxOperator ile AKS'te barındırılan üç replika ile bir AG oluşturup yapılandırmayı öğreniyorsunuz.
Bu öğretici aşağıdaki adımlardan oluşur:
- mssql-conf ayarlarıyla AKS kümesinde nesne
configmapoluşturma - DxOperator'ı yükleme
- Gizli nesneler oluşturma
- YAML dosyası kullanarak üç replikalı SQL Server kullanılabilirlik grubu dağıtın
- SQL Server’a bağlanma
Prerequisites
Azure Kubernetes Service (AKS) veya Kubernetes kümesi.
AG özellikleri ve tünelleri etkinleştirilmiş geçerli bir DxEnterprise lisansı. Daha fazla bilgi için üretim dışı kullanım için geliştirici sürümüne veya üretim iş yükleri için DxEnterprise yazılımına bakın.
configmap Nesneyi oluşturma
AKS'de, gereksinimlerinize göre
configmapayarlarına sahip olan nesnesini oluşturun. Bu örnekte, aşağıdaki parametrelerlemssqlconfig.yamladlı bir dosya kullanarakconfigmapoluşturursunuz.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueNesneyi aşağıdaki komutu çalıştırarak oluşturun.
kubectl apply -f ./mssqlconfig.yaml
Gizli nesneler oluşturma
SQL Server sa parolasını depolamak için bir gizli anahtar oluşturun.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Caution
Parolanız varsayılan SQL Server password ilkesini izlemelidir. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.
DH2i'nin lisans anahtarını depolamak için bir gizli oluşturun. Geliştirici lisansı almak için DH2i'nin web sitesini ziyaret edin. Aşağıdaki örnekte XXXX-XXXX-XXXX-XXXX değerini lisans anahtarınızla değiştirin.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
DxOperator'ı yükleme
DxOperator'u kurmak için, aşağıdaki örneği kullanarak DxOperator YAML dosyasını indirin ve ardından YAML dosyasını uygulayın.
AG kurulumunu açıklayan YAML dosyasını aşağıdaki komutu kullanarak dağıtın. Dosyayı gibi
DxOperator.yamlözel bir adla kaydedin.curl -L https://dxoperator.dh2i.com/dxsqlag/files/v2.yaml -o DxOperator.yaml kubectl apply -f DxOperator.yamlOperatörü kurduktan sonra SQL Server konteynerlerini dağıtabilir, kullanılabilirlik grubunu yapılandırabilir, replikaları tanımlayabilir ve DxEnterprise kümesini dağıtıp yapılandırabilirsiniz. Aşağıdaki örnek dağıtım YAML dosyasını,
DxSqlAg.yamlgereksinimlerinize uygun şekilde değiştirin.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" ]DxSqlAg.yamldosyasını dağıtın.kubectl apply -f DxSqlAg.yaml
Kullanılabilirlik grubu dinleyicisi oluşturma
Dosyanızdaki
availabilityGroupListenerPortdeğeriDxSqlAg.yamlgüncelleyin:spec: sqlAgConfiguration: availabilityGroupListenerPort: 51433Dosyayı uygulayın:
kubectl apply -f DxSqlAg.yamlDinleyici için bir yük dengeleyici eklemek için aşağıdaki YAML uygulanır.
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: 7979Hizmetlerin ve yük dengeleyicilerin çalıştığını doğrulayın.
kubectl get servicesÇıktı aşağıdaki örneğe benzer:
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Üç SQL Server podunun hepsinin çalıştığını doğrulayın.
kubectl get podsÇıktı aşağıdaki örneğe benzer:
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
İlgili içerik
- Rancher aracılığıyla Azure Kubernetes Service'te DH2i DxOperator ile SQL Server kapsayıcılarını ve kullanılabilirlik grubunu dağıtma
- Kubernetes'da DH2i DxEnterprise ile kullanılabilirlik gruplarını dağıtma
- Hızlı Başlangıç: Azure veya Red Hat OpenShift üzerinde SQL Server kapsayıcı kümesi dağıtma
- StatefulSets ile Kubernetes'te SQL Server Linux kapsayıcıları dağıtma