Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server sur Linux
Ce tutoriel explique comment configurer des groupes de disponibilité Always On SQL Server pour les conteneurs Linux SQL Server déployés sur un cluster Azure Kubernetes Service (AKS) à l’aide de DH2i DxOperator. Ces procédures s’appliquent également aux clusters Azure Red Hat OpenShift. La principale distinction est le déploiement d’un cluster Azure Red Hat OpenShift, suivi de la substitution kubectl des commandes par oc dans les étapes suivantes.
En suivant les étapes de cet article, vous apprenez à déployer un StatefulSet et à utiliser le DH2i DxOperator pour créer et configurer un AG avec trois répliques, hébergé sur AKS.
Il se compose des étapes suivantes :
- Créer un objet
configmapsur un cluster AKS avec les paramètres mssql-conf - Installer DxOperator
- Créer des objets secrets
- Déploie un groupe de disponibilité SQL Server à trois répliques à l’aide d’un fichier YAML
- Se connecter à SQL Server
Prerequisites
Un cluster Azure Kubernetes Service (AKS) ou Kubernetes.
Licence DxEnterprise valide où les fonctionnalités AG et les tunnels sont activés. Pour plus d’informations, consultez l’édition développeur en cas d’utilisation hors production ou le logiciel DxEnterprise pour les charges de travail de production.
Créer l’objet configmap
Dans AKS, créez l’objet
configmap, qui a des paramètres mssql-conf basés sur vos besoins. Dans cet exemple, vous créez leconfigmapà l’aide d’un fichier appelémssqlconfig.yamlavec les paramètres suivants.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueCréez l’objet en exécutant la commande suivante.
kubectl apply -f ./mssqlconfig.yaml
Créer des objets secrets
Créez un secret pour stocker le mot de passe sa pour SQL Server.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Caution
Votre mot de passe doit respecter la stratégie de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Créez un secret pour stocker la clé de licence pour DH2i. Visitez le site web de DH2i pour obtenir une licence de développeur. Dans l’exemple suivant, remplacez XXXX-XXXX-XXXX-XXXX par votre clé de licence.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
Installer DxOperator
Pour installer DxOperator, téléchargez le fichier YAML de DxOperator en utilisant l’exemple suivant, puis appliquez le fichier YAML.
Déploie le fichier YAML qui décrit comment configurer un AG en utilisant la commande suivante. Enregistrez le fichier sous un nom personnalisé, tel que
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxsqlag/files/v2.yaml -o DxOperator.yaml kubectl apply -f DxOperator.yamlAprès avoir installé l’opérateur, vous pouvez déployer des conteneurs SQL Server, configurer le groupe de disponibilité, définir des répliques, puis déployer et configurer le cluster DxEnterprise. Modifiez le fichier YAML de déploiement d’exemple suivant,
DxSqlAg.yaml, pour qu’il corresponde à vos besoins.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" ]Déployez le fichier
DxSqlAg.yaml.kubectl apply -f DxSqlAg.yaml
Créer un écouteur de groupe de disponibilité
Mettez à jour la
availabilityGroupListenerPortvaleur dans votreDxSqlAg.yamlfichier :spec: sqlAgConfiguration: availabilityGroupListenerPort: 51433Appliquez le fichier :
kubectl apply -f DxSqlAg.yamlAppliquez le YAML suivant pour ajouter un équilibreur de charge pour l’auditeur.
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: 7979Vérifiez que les services et les équilibreurs de charge fonctionnent.
kubectl get servicesLa sortie ressemble à l’exemple suivant :
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 87mVérifiez que les trois pods SQL Server fonctionnent bien.
kubectl get podsLa sortie ressemble à l’exemple suivant :
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
Contenu connexe
- Déployer des conteneurs SQL Server et un groupe de disponibilité avec DH2i DxOperator sur Azure Kubernetes Service via Rancher
- Déployer des groupes de disponibilité avec DH2i DxEnterprise sur Kubernetes
- Démarrage rapide : Déployer un cluster de conteneurs SQL Server sur Azure ou Red Hat OpenShift
- Déployer des conteneurs Linux SQL Server sur Kubernetes avec StatefulSets