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 – Linux
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 clustery Azure Red Hat OpenShift; Primárním rozdílem je nasazení clusteru Azure Red Hat OpenShift následované nahrazením kubectloc příkazů v následujících krocích.
Microsoft podporuje přesun dat, skupiny dostupnosti (AG) a komponenty SQL Serveru. DH2i zodpovídá za podporu produktu DxEnterprise, který zahrnuje správu clusteru a kvoru.
DxOperator je softwarové rozšíření Kubernetes, které používá vlastní definice prostředků k automatizaci nasazení clusterů DxEnterprise. DxEnterprise pak poskytuje veškerou instrumentaci pro vytváření, konfiguraci, správu a zajištění automatického převzetí služeb při selhání pro úlohy dostupnostních skupin SQL Serveru v Kubernetes. Můžete si zaregistrovat bezplatnou softwarovou licenci DxEnterprise. Další informace najdete v úvodní příručce k DxOperatoru.
Pomocí kroků uvedených v tomto článku se dozvíte, jak nasadit StatefulSet a pomocí DH2i DxOperatoru vytvořit a nakonfigurovat Availability Group se třemi replikami hostovaný 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
- Vytvoření tajných objektů
- Nasazení 3 replika SQL AG pomocí souboru YAML
- Připojení k SQL Serveru
Požadavky
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říte souborconfigMaps 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>"
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . 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
Pokud chcete nainstalovat DxOperator, musíte stáhnout soubor DXOperator YAML pomocí následujícího příkladu a pak použít soubor YAML.
Pomocí následujícího příkazu nasaďte YAML popisující, jak nastavit AG. Uložte soubor s vlastním názvem, například
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxesqlag/files/v1.yaml -o DxOperator.yaml kubectl apply –f DxOperator.yamlPo instalaci operátora můžete nasadit kontejnery SQL Serveru, nakonfigurovat skupinu dostupnosti, definovat repliky, nasadit a nakonfigurovat cluster DxEnterprise. Tady je ukázkový soubor YAML nasazení, který se nazývá
DxEnterpriseSqlAg.yaml, který můžete změnit tak, aby vyhovoval vašim požadavkům.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.yamlNasaďte soubor.kubectl apply -f DxEnterpriseSqlAg.yaml
Vytvořte posluchače skupiny dostupnosti
Pomocí následujícího YAML přidejte nástroj pro vyrovnávání zatížení nastavením selektoru na hodnotu metadata.name v předchozím kroku. V tomto příkladu je to 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
Ověřte přiřazení produkčního nasazení a vyrovnávače zatížení.
kubectl get pods
kubectl get services
Měl by se zobrazit výstup podobný následujícímu 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 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
Související obsah
- Nasazení skupin dostupnosti v Kubernetes pomocí DH2i DxOperatoru ve službě Azure Kubernetes Service a Rancher by SUSE
- Nasazení skupin dostupnosti s využitím DH2i DxEnterprise v Kubernetes
- Nasazení kontejnerů SQL Serveru ve službě Azure Kubernetes Service
- Nasazení kontejnerů SQL Serveru s Linuxem v Kubernetes s využitím StatefulSets