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 yordamlar Azure Red Hat OpenShift kümeleri için de geçerlidir; birincil ayrım, Azure Red Hat OpenShift kümesinin dağıtımı ve ardından aşağıdaki adımlarda kubectl komutları yerine, oc komutlarının kullanılmasıdır.
Microsoft veri taşıma, AG ve SQL Server bileşenlerini destekler. DH2i, küme ve çekirdek yönetimini içeren DxEnterprise ürününün desteklenmesinden sorumludur.
DxOperator, Kubernetes'in DxEnterprise kümelerinin dağıtımını otomatikleştirmek için özel kaynak tanımlarını kullanan bir yazılım uzantısıdır. Ardından DxEnterprise, Kubernetes'teki SQL Server AG iş yükleri için otomatik yük devretme oluşturmak, yapılandırmak, yönetmek ve sağlamak için tüm araçları sağlar. Ücretsiz bir DxEnterprise yazılım lisansına kaydolabilirsiniz. Daha fazla bilgi için bkz. DxOperator Hızlı Başlangıç Kılavuzu.
Bu makalede belirtilen adımları kullanarak bir StatefulSet'i dağıtmayı ve DH2i DxOperator kullanarak AKS'de barındırılan üç replikayla bir AG (Erişilebilirlik Grubu) oluşturup yapılandırmayı öğrenin.
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ını kullanarak 3 çoğaltmalı SQL AG'yi dağıtma
- SQL Server'a bağlanma
Önkoşullar
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 parametrelerleconfigMapadlı bir dosya kullanarakmssqlconfig.yamlöğesini oluşturursunuz.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueAşağıdaki komutu yürüterek nesnesini 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>"
Dikkat
Parolanız,SQL Server varsayılan
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'ı yüklemek için aşağıdaki örneği kullanarak DxOperator YAML dosyasını indirmeniz ve ardından YAML dosyasını uygulamanız gerekir.
Aşağıdaki komutu kullanarak AG'nin nasıl ayarlandığını açıklayan YAML'yi dağıtın. Dosyayı gibi
DxOperator.yamlözel bir adla kaydedin.curl -L https://dxoperator.dh2i.com/dxesqlag/files/v1.yaml -o DxOperator.yaml kubectl apply –f DxOperator.yamlİşleci yükledikten sonra SQL Server kapsayıcılarını dağıtabilir, kullanılabilirlik grubunu yapılandırabilir, çoğaltmaları tanımlayabilir, DxEnterprise kümesini dağıtabilir ve yapılandırabilirsiniz. Burada, gereksinimlerinize uyacak şekilde değiştirebileceğiniz adlı
DxEnterpriseSqlAg.yamlörnek bir dağıtım YAML dosyası verilmiştir.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" ]Dosyayı dağıtın
DxEnterpriseSqlAg.yaml.kubectl apply -f DxEnterpriseSqlAg.yaml
Kullanılabilirlik grubu dinleyicisi oluşturma
Önceki adımda seçiciyi değerine metadata.name ayarlayarak yük dengeleyici eklemek için aşağıdaki YAML'yi uygulayın. Bu örnekte, bu 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
Dağıtım ve yük dengeleyici atamalarını doğrulayın.
kubectl get pods
kubectl get services
Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir.
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
İlgili içerik
- SUSE ile Azure Kubernetes Service ve Rancher üzerinde DH2i DxOperator ile Kubernetes'te kullanılabilirlik gruplarını dağıtma
- Kubernetes'da DH2i DxEnterprise ile kullanılabilirlik gruplarını dağıtma
- Azure Kubernetes Service'te SQL Server kapsayıcılarını dağıtma
- StatefulSets ile Kubernetes'te SQL Server Linux kapsayıcıları dağıtma