Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server em Linux
Este tutorial explica como configurar grupos de disponibilidade Always On (AGs) do SQL Server para contêineres baseados no SQL Server Linux implantados em um cluster do Serviço Kubernetes do Azure (AKS), usando o DH2i DxOperator. Esses procedimentos também são aplicáveis aos clusters do Azure Red Hat OpenShift; a principal distinção é a implantação de um cluster do Azure Red Hat OpenShift, seguida pela substituição de kubectl comandos pelas oc etapas a seguir.
A Microsoft oferece suporte a movimentação de dados, Grupos de Disponibilidade e componentes do SQL Server. A DH2i é responsável pelo suporte ao produto DxEnterprise, que inclui gerenciamento de cluster e quórum.
O DxOperator é uma extensão de software para o Kubernetes que usa definições de recursos personalizadas para automatizar a implantação de clusters DxEnterprise. Em seguida, o DxEnterprise fornece toda a instrumentação para criar, configurar, gerenciar e fornecer failover automático para cargas de trabalho do SQL Server AG no Kubernetes. Você pode se registrar para obter uma licença de software DxEnterprise gratuita. Para obter mais informações, consulte o Guia de início rápido do DxOperator.
Usando as etapas mencionadas neste artigo, saiba como implantar um StatefulSet e usar o DH2i DxOperator para criar e configurar um AG com três réplicas, hospedado no AKS.
Este tutorial consiste nas seguintes etapas:
- Criar um objeto
configmapno cluster AKS com configurações mssql-conf - Instalar o DxOperator
- Criar objetos secretos
- Implantar 3 réplicas SQL AG usando o arquivo YAML
- Conectar-se ao SQL Server
Pré-requisitos
Um Serviço Azure Kubernetes (AKS) ou Kubernetes cluster.
Uma licença DxEnterprise válida com recursos AG e túneis ativados. Para obter mais informações, consulte a edição para programadores para uso não produtivo ou o software DxEnterprise para cargas de trabalho de produção.
Criar o configmap objeto
No AKS, crie o
configmapobjeto, que tem configurações mssql-conf com base em suas necessidades. Neste exemplo, você cria oconfigMap, usando um arquivo chamadomssqlconfig.yamlcom os seguintes parâmetros.apiVersion: v1 kind: ConfigMap metadata: name: mssql-config data: mssql.conf: | [EULA] accepteula = Y [sqlagent] enabled = trueCrie o objeto executando o seguinte comando.
kubectl apply -f ./mssqlconfig.yaml
Criar objetos secretos
Crie um segredo para armazenar a senha do sa SQL Server.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="<password>"
Atenção
A sua palavra-passe deve seguir a política de palavra-passe padrão do SQL Server . Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Crie um segredo para armazenar a chave de licença para DH2i. Visite o site da DH2i para obter uma licença de desenvolvedor. Substitua XXXX-XXXX-XXXX-XXXX no exemplo a seguir por sua chave de licença.
kubectl create secret generic dxe --from-literal=DX_PASSKEY="<password>" --from-literal=DX_LICENSE=XXXX-XXXX-XXXX-XXXX
Instalar o DxOperator
Para instalar o DxOperator, você deve baixar o arquivo DxOperator YAML usando o exemplo a seguir e, em seguida, aplicar o arquivo YAML.
Implante o YAML descrevendo como configurar um AG, usando o comando a seguir. Salve o arquivo com um nome personalizado, como
DxOperator.yaml.curl -L https://dxoperator.dh2i.com/dxesqlag/files/v1.yaml -o DxOperator.yaml kubectl apply –f DxOperator.yamlDepois de instalar o operador, você pode implantar contêineres do SQL Server, configurar o grupo de disponibilidade, definir réplicas, implantar e configurar o cluster DxEnterprise. Aqui está um exemplo de arquivo YAML de implantação chamado
DxEnterpriseSqlAg.yaml, que você pode alterar para atender às suas necessidades.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" ]Implante o
DxEnterpriseSqlAg.yamlarquivo.kubectl apply -f DxEnterpriseSqlAg.yaml
Criar um ouvinte para o grupo de disponibilidade
Aplique o seguinte YAML para adicionar um balanceador de carga, definindo o seletor como valor de metadata.name na etapa anterior. Neste exemplo, é 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
Verifique a implantação e as atribuições do balanceador de carga.
kubectl get pods
kubectl get services
Você deve ver uma saída semelhante ao exemplo a seguir.
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
Conteúdo relacionado
- Implantar grupos de disponibilidade no Kubernetes com DH2i DxOperator no Serviço Kubernetes do Azure e no Rancher by SUSE
- Desplegar grupos de disponibilidade com o DH2i DxEnterprise no Kubernetes
- Implantar contêineres do SQL Server no Serviço Kubernetes do Azure
- Implantar contêineres SQL Server Linux no Kubernetes com StatefulSets