Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              gäller för:SQL Server – Linux
I den här självstudien beskrivs hur du konfigurerar SQL Server AlwaysOn-tillgänglighetsgrupper (AGs) för SQL Server Linux-baserade containrar som distribuerats till ett AKS-kluster (Azure Kubernetes Service) med hjälp av DH2i DxOperator. Dessa procedurer gäller även för Azure Red Hat OpenShift-kluster. den primära skillnaden är distributionen av ett Azure Red Hat OpenShift-kluster, följt av att kubectl ersätta kommandon med oc i följande steg.
Microsoft har stöd för dataförflyttning, tillgänglighetsgrupp (AG), och SQL Server-komponenter. DH2i ansvarar för support av DxEnterprise-produkten, som omfattar kluster- och kvorumhantering.
DxOperator är ett programvarutillägg till Kubernetes som använder anpassade resursdefinitioner för att automatisera distributionen av DxEnterprise-kluster. DxEnterprise tillhandahåller sedan all instrumentation för att skapa, konfigurera, hantera och tillhandahålla automatisk redundans för SQL Server AG-arbetsbelastningar i Kubernetes. Du kan registrera dig för en kostnadsfri DxEnterprise-programvarulicens. Mer information finns i snabbstartsguiden för DxOperator.
Med hjälp av stegen i den här artikeln lär du dig hur du distribuerar en StatefulSet och använder DH2i DxOperator för att skapa och konfigurera en tillgänglighetsgrupp (AG) med tre repliker, hostade på AKS (Azure Kubernetes Service).
Den här självstudien består av följande steg:
- Skapa ett 
configmapobjekt i AKS-kluster med mssql-conf-inställningar - Installera DxOperator
 - Skapa ett hemligt objekt
 - Distribuera 3 replik-SQL AG med YAML-fil
 - Ansluta till SQL Server
 
Förutsättningar
Ett Azure Kubernetes Service-kluster (AKS) eller Kubernetes-kluster.
En giltig DxEnterprise-licens med AG-funktioner och tunnlar aktiverade. Mer information finns i developer edition för användning utan produktion eller DxEnterprise-programvara för produktionsarbetsbelastningar.
Skapa objektet configmap
I AKS skapar du
configmapobjektet, som har mssql-conf-inställningar baserat på dina krav. I det här exemplet skaparconfigMapdu , med hjälp av en fil som hetermssqlconfig.yamlmed följande parametrar.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueSkapa objektet genom att köra följande kommando.
kubectl apply -f ./mssqlconfig.yaml
Skapa hemliga objekt
Skapa en hemlighet för att lagra sa lösenordet för SQL Server.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
Skapa en hemlighet för att lagra licensnyckeln för DH2i. Besök DH2is webbplats för att få en utvecklarlicens. Ersätt XXXX-XXXX-XXXX-XXXX i följande exempel med din licensnyckel.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
Installera DxOperator
Om du vill installera DxOperator måste du ladda ned YAML-filen DxOperator med hjälp av följande exempel och sedan tillämpa YAML-filen.
Distribuera YAML som beskriver hur du konfigurerar en AG med hjälp av följande kommando. Spara filen med ett anpassat namn, till exempel
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxesqlag/files/v1.yaml -o DxOperator.yaml kubectl apply –f DxOperator.yamlNär du har installerat operatorn kan du distribuera SQL Server-containrar, konfigurera tillgänglighetsgruppen, definiera repliker, distribuera och konfigurera DxEnterprise-klustret. Här är en YAML-exempeldistributionsfil med namnet
DxEnterpriseSqlAg.yaml, som du kan ändra så att den passar dina behov.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" ]DxEnterpriseSqlAg.yamlDistribuera filen.kubectl apply -f DxEnterpriseSqlAg.yaml
Skapa en tillgänglighetsgrupplyssnare
Använd följande YAML för att lägga till en lastbalanserare genom att ställa in väljaren till värdet metadata.name som i föregående steg. I det här exemplet är det 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
Kontrollera tilldelningarna för distribution och lastbalanserare.
kubectl get pods
kubectl get services
Du bör se utdata som liknar följande exempel.
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
Relaterat innehåll
- Distribuera tillgänglighetsgrupper på Kubernetes med DH2i DxOperator på Azure Kubernetes Service och Rancher av SUSE
 - Distribuera tillgänglighetsgrupper med DH2i DxEnterprise på Kubernetes
 - Distribuera SQL Server-containrar i Azure Kubernetes Service
 - Distribuera SQL Server Linux-containrar på Kubernetes med StatefulSets