Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server na Linuxu
Tento návod vysvětluje, jak nastavit SQL Server Always On availability groups (AGs) pro kontejnery založené na SQL Server Linux nasazených v clusteru Azure Kubernetes Service (AKS) pomocí DH2i DxOperator. Tyto postupy platí také pro Azure Red Hat OpenShift clustery. Hlavním rozdílem je nasazení clusteru služby Azure Red Hat OpenShift a následné nahrazení příkazů kubectl za oc v následujících krocích.
Pomocí kroků v tomto článku se naučíte, jak nasadit StatefulSet a použít DH2i DxOperator k vytvoření a konfiguraci AG se třemi replikami, hostovanými na AKS.
Tento kurz se skládá z následujících kroků:
- Vytvoření objektu
ConfigMapv clusteru AKS s nastavením mssql-conf - Vytváření tajných objektů
- Instalace DxOperatoru
- Nasadit tříreplikovou skupinu dostupnosti SQL Server pomocí YAML souboru
- Připojení k SQL Serveru
Předpoklady
Cluster Azure Kubernetes Service (AKS) nebo Kubernetes.
Platná licence DxEnterprise s povolenými funkcemi AG a tunnelovými funkcemi. Další informace najdete v edici developer pro neprodukční využití nebo software DxEnterprise pro produkční úlohy.
Vytvoření objektu ConfigMap
V AKS vytvořte
ConfigMapobjekt, který má nastavení mssql-conf na základě vašich požadavků. V tomto příkladu vytvoříteConfigMappomocí souboru s názvemmssqlconfig.yamls následujícími parametry.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueVytvořte objekt spuštěním následujícího příkazu.
kubectl apply -f ./mssqlconfig.yaml
Vytváření tajných objektů
Vytvořte tajný kód pro uložení sa hesla pro SQL Server.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Caution
Vaše heslo by mělo splňovat výchozí zásady hesla pro SQL Server. Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Vytvořte tajný kód pro uložení licenčního klíče pro DH2i. Navštivte web DH2i a získejte vývojářskou licenci. Nahraďte XXXX-XXXX-XXXX-XXXX v následujícím příkladu vaším licenčním klíčem.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
Instalace DxOperatoru
Pro instalaci DxOperator si stáhněte soubor DxOperator YAML pomocí následujícího příkladu a poté aplikujte soubor YAML.
Nasadit soubor YAML, který popisuje, jak nastavit AG, pomocí následujícího příkazu. Uložte soubor s vlastním názvem, například
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxsqlag/files/v2.yaml -o DxOperator.yaml kubectl apply -f DxOperator.yamlPo instalaci operátora můžete nasadit SQL Server kontejnery, konfigurovat skupinu dostupnosti, definovat repliky a nasadit a konfigurovat DxEnterprise cluster. Změňte následující ukázkový YAML soubor nasazení,
DxSqlAg.yaml, podle svých požadavků.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" ]Nasaďte soubor
DxSqlAg.yaml.kubectl apply -f DxSqlAg.yaml
Vytvořte posluchače skupiny dostupnosti
Aktualizujte
availabilityGroupListenerPorthodnotu veDxSqlAg.yamlvašem souboru:spec: sqlAgConfiguration: availabilityGroupListenerPort: 51433Aplikujte soubor:
kubectl apply -f DxSqlAg.yamlPoužijte následující YAML pro přidání load balanceru pro posluchače.
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: 7979Ověřte, že služby a vyvažovače zátěže běží.
kubectl get servicesVýstup vypadá podobně jako v následujícím příkladu:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE contoso-cluster-lb LoadBalancer 10.1.0.21 172.212.20.29 1433:30484/TCP,51433: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 87mOvěřte, že všechny tři SQL Server pody běží.
kubectl get podsVýstup vypadá podobně jako v následujícím příkladu:
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
Související obsah
- Nasazení kontejnerů a skupin dostupnosti SQL Serveru pomocí DH2i DxOperatoru ve službě Azure Kubernetes Service přes Rancher
- Nasazení skupin dostupnosti s využitím DH2i DxEnterprise v Kubernetes
- Rychlý start: Nasazení clusteru kontejnerů SQL Serveru v Azure nebo Red Hat OpenShiftu
- Nasazení kontejnerů SQL Serveru s Linuxem v Kubernetes s využitím StatefulSets