Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server unter Linux
In diesem Lernprogramm wird erläutert, wie SQL Server Always On-Verfügbarkeitsgruppen (AGs) für LINUX-basierte SQL Server-Container konfiguriert werden, die in einem Azure Kubernetes Service (AKS)-Cluster mit DH2i DxOperator bereitgestellt werden. Diese Verfahren gelten auch für Azure Red Hat OpenShift-Cluster. Der Hauptunterschied ist die Bereitstellung eines Azure Red Hat OpenShift-Clusters, gefolgt von der Ersetzung von kubectl-Befehlen durch oc in den folgenden Schritten.
Mit den Schritten in diesem Artikel lernen Sie, wie Sie ein StatefulSet bereitstellen und den DH2i DxOperator verwenden, um eine AG mit drei Repliken zu erstellen und zu konfigurieren, die auf AKS gehostet werden.
Dieses Lernprogramm besteht aus den folgenden Schritten:
- Erstellen eines
configmap-Objekts auf einem AKS-Cluster mit mssql-conf-Einstellungen - Installieren von DxOperator
- Erstellen geheimer Objekte
- Bereitstellen einer SQL Server-Verfügbarkeitsgruppe mit drei Replikaten mithilfe einer YAML-Datei
- Verbindung mit SQL Server herstellen
Voraussetzungen
Einen AKS- (Azure Kubernetes Service) oder Kubernetes-Cluster.
Eine gültige Lizenz für DxEnterprise mit aktivierten AG-Features und Tunneln. Weitere Informationen finden Sie in der Entwickleredition für die Nichtproduktionsverwendung oder dxEnterprise-Software für Produktionsworkloads.
Erstellen Sie das Objekt configmap
Erstellen Sie in AKS das Objekt
configmapmit mssql-conf-Einstellungen entsprechend Ihren Anforderungen. In diesem Beispiel erstellst du dieconfigmapmithilfe einer Datei namensmssqlconfig.yamlmit den folgenden Parametern.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueErstelle das Objekt, indem du folgenden Befehl ausführst.
kubectl apply -f ./mssqlconfig.yaml
Erstellen geheimer Objekte
Erstellen Sie einen geheimen Schlüssel zum Speichern des sa-Passworts für SQL Server.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Caution
Ihr Kennwort sollte der standardmäßigen Kennwortrichtlinie von SQL Server folgen. Standardmäßig muss das Kennwort mindestens acht Zeichen lang sein und Zeichen aus drei der folgenden vier Sätze enthalten: Großbuchstaben, Kleinbuchstaben, Basis-10 Ziffern und Symbole. Kennwörter können bis zu 128 Zeichen lang sein. Verwenden Sie möglichst lange und komplexe Kennwörter.
Erstellen Sie einen geheimen Schlüssel zum Speichern des Lizenzschlüssels für DH2i. Besuchen Sie die Website von DH2i, um eine Entwicklerlizenz zu erhalten. Ersetzen Sie XXXX-XXXX-XXXX-XXXX im folgenden Beispiel durch Ihren Lizenzschlüssel.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
Installieren von DxOperator
Um DxOperator zu installieren, laden Sie die DxOperator-YAML-Datei anhand folgender Beispiele herunter und wenden Sie dann die YAML-Datei an.
Bereite die YAML-Datei aus, die beschreibt, wie man eine AG einrichtet, indem du den folgenden Befehl verwendest. Speichern der Datei unter einem angepassten Namen wie z. B.
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxsqlag/files/v2.yaml -o DxOperator.yaml kubectl apply -f DxOperator.yamlNachdem Sie den Operator installiert haben, können Sie SQL Server-Container bereitstellen, die Verfügbarkeitsgruppe konfigurieren, Replikate definieren und den DxEnterprise-Cluster bereitstellen und konfigurieren. Ändern Sie die folgende Beispiel-YAML-Bereitstellungsdatei
DxSqlAg.yaml, um Ihren Anforderungen gerecht zu werden.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: 51433 # 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" ]Stellen Sie die Datei
DxSqlAg.yamlbereit.kubectl apply -f DxSqlAg.yaml
Erstellen eines Listeners für eine Verfügbarkeitsgruppe
Aktualisieren Sie den
availabilityGroupListenerPortWert in IhrerDxSqlAg.yamlDatei:spec: sqlAgConfiguration: availabilityGroupListenerPort: 51433Wenden Sie die Datei an:
kubectl apply -f DxSqlAg.yamlWenden Sie das folgende YAML an, um einen Load Balancer für den Zuhörer hinzuzufügen.
apiVersion: v1 kind: Service metadata: name: contoso-cluster-lb spec: type: LoadBalancer selector: dh2i.com/entity: 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: 7979Überprüfen Sie, ob die Dienste und Load Balancer laufen.
kubectl get servicesDie Ausgabe sieht etwa folgendermaßen aus:
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Überprüfen Sie, ob alle drei SQL Server-Pods laufen.
kubectl get podsDie Ausgabe sieht etwa folgendermaßen aus:
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
Verwandte Inhalte
- Bereitstellen von SQL Server-Containern und -Verfügbarkeitsgruppen mit DH2i DxOperator auf Azure Kubernetes Service über Rancher
- Bereitstellen von Verfügbarkeitsgruppen mit DH2i DxEnterprise auf Kubernetes
- Schnellstart: Bereitstellen eines SQL Server-Containerclusters in Azure oder Red Hat OpenShift
- Bereitstellen von SQL Server Linux-Containern auf Kubernetes mit StatefulSets