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 kurz vysvětluje, jak nakonfigurovat skupiny dostupnosti AlwaysOn (AG) SQL Serveru pro kontejnery založené na SQL Serveru nasazené do clusteru Azure Kubernetes Service (AKS) pomocí DH2i DxOperatoru. Tyto postupy platí také pro Azure Red Hat OpenShift clustery. Hlavním rozdílem je nasazení clusteru 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 - Instalace DxOperatoru
- Vytváření tajných objektů
- 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,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 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