Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server - Linux
In deze zelfstudie wordt uitgelegd hoe u AG's (AlwaysOn-beschikbaarheidsgroepen) voor SQL Server Linux-containers configureert die zijn geïmplementeerd in een AKS-cluster (Azure Kubernetes Service), met behulp van DH2i DxOperator. Deze procedures zijn ook van toepassing op Azure Red Hat OpenShift-clusters; het primaire onderscheid is de implementatie van een Azure Red Hat OpenShift-cluster, gevolgd door het vervangen van kubectl opdrachten oc in de volgende stappen.
Microsoft biedt ondersteuning voor gegevensverplaatsing, AG en SQL Server-onderdelen. DH2i is verantwoordelijk voor ondersteuning van het DxEnterprise-product, dat cluster- en quorumbeheer omvat.
DxOperator is een software-extensie voor Kubernetes die gebruikmaakt van aangepaste resourcedefinities om de implementatie van DxEnterprise-clusters te automatiseren. DxEnterprise biedt vervolgens alle instrumentatie voor het maken, configureren, beheren en bieden van automatische failover voor SQL Server AG-workloads in Kubernetes. U kunt zich registreren voor een gratis DxEnterprise-softwarelicentie. Zie de Handleiding aan de slag met DxOperator voor meer informatie.
Met behulp van de stappen die in dit artikel worden genoemd, leert u hoe u een StatefulSet implementeert en de DH2i DxOperator gebruikt om een AG te maken en configureren met drie replica's die worden gehost op AKS.
Deze zelfstudie bestaat uit de volgende stappen:
- Een object maken in een 
configmapAKS-cluster met mssql-conf-instellingen - DxOperator installeren
 - Een geheim object maken
 - 3 replica SQL AG implementeren met behulp van YAML-bestand
 - Verbinding maken met SQL Server
 
Vereiste voorwaarden
Een Azure Kubernetes Service (AKS) of Kubernetes-cluster.
Een geldige DxEnterprise-licentie waarvoor AG-functies en tunnels zijn ingeschakeld. Zie de developer edition voor niet-productiegebruik of DxEnterprise-software voor productieworkloads voor meer informatie.
              configmap Het object maken
Maak in AKS het
configmapobject met mssql-conf-instellingen op basis van uw vereisten. In dit voorbeeld maakt u hetconfigMap, met behulp van een bestand dat wordt aangeroepenmssqlconfig.yamlmet de volgende parameters.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueMaak het object door de volgende opdracht uit te voeren.
kubectl apply -f ./mssqlconfig.yaml
Geheime objecten maken
Maak een geheim om het sa wachtwoord voor SQL Server op te slaan.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Waarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
Maak een geheim voor het opslaan van de licentiesleutel voor DH2i. Ga naar de website van DH2i om een ontwikkelaarslicentie te krijgen. Vervang XXXX-XXXX-XXXX-XXXX in het volgende voorbeeld door uw licentiesleutel.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
DxOperator installeren
Als u DxOperator wilt installeren, moet u het YAML-bestand DxOperator downloaden met het volgende voorbeeld en vervolgens het YAML-bestand toepassen.
Implementeer de YAML die beschrijft hoe u een AG instelt met behulp van de volgende opdracht. Sla het bestand op met een aangepaste naam, zoals
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxesqlag/files/v1.yaml -o DxOperator.yaml kubectl apply –f DxOperator.yamlNadat u de operator hebt geïnstalleerd, kunt u SQL Server-containers implementeren, de beschikbaarheidsgroep configureren, replica's definiëren, het DxEnterprise-cluster implementeren en configureren. Hier is een voorbeeld van een deployment YAML-bestand genaamd
DxEnterpriseSqlAg.yaml, dat u kunt wijzigen om het aan uw vereisten aan te passen.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" ]Implementeer het
DxEnterpriseSqlAg.yamlbestand.kubectl apply -f DxEnterpriseSqlAg.yaml
Een listener voor een beschikbaarheidsgroep maken
Gebruik de volgende YAML om een load balancer toe te voegen door de selector in te stellen op de waarde van `metadata.name` in de vorige stap. In dit voorbeeld is het 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
Controleer de toewijzingen van de deployment-configuratie en de load balancer.
kubectl get pods
kubectl get services
De uitvoer moet er ongeveer als het volgende voorbeeld uitzien.
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
Verwante inhoud
- Beschikbaarheidsgroepen implementeren in Kubernetes met DH2i DxOperator in Azure Kubernetes Service en Rancher door SUSE
 - Beschikbaarheidsgroepen implementeren met DH2i DxEnterprise op Kubernetes
 - SQL Server-containers implementeren in Azure Kubernetes Service
 - SQL Server Linux-containers implementeren in Kubernetes met StatefulSets