Skip to main content
Version: v23.0

Install DxE + SQL Server Helm Chart

This quick start guide describes how to deploy the DxEMSSQL Helm Chart. Using this guide, you will create a DxEnterprise cluster and SQL Server availability group in Kubernetes, then connect to the DxEnterprise cluster using DxAdmin.

Prerequisites

  • DxAdmin and SSMS installed on a Windows machine. For more information about installing DxAdmin, view the DxAdmin Installation Guide. See Microsoft documentation for information about installing SSMS.

  • A Kubernetes cluster with at least two nodes. The Kubernetes cluster must have the ability to provision dynamic persistent volume claims.

    • At least three external IPs available to the Kubernetes cluster for provisioning load balancer resource types. How these IPs are assigned will depend on your load balancer implementation (i.e., Azure, AWS, MetalLB, etc.).
  • A valid DxEnterprise license with availability group management features and tunnels enabled. A fully featured Developer Edition is available free for non-production use. To purchase DxEnterprise software for production workloads, visit the DH2i Store.

Install the Helm Chart

  1. Create an opaque secret to store the DxEnterprise cluster passkey and SQL Server SA credentials.

    kubectl create secret generic <secret_name> --from-literal=DX_PASSKEY=<passkey> --from-literal=MSSQL_SA_PASSWORD=<password>
  2. Add the DH2i GitHub Helm repo.

helm repo add dh2i https://raw.githubusercontent.com/dh2i/helm/main/
  1. Inspect and save the values.yaml chart from the Helm repo.
helm show values dh2i/dxemssql > values.yaml
  1. Open the values.yaml file for editing.

  2. Modify the below parameters and save the changes.

values.yaml
secretKeys: "<secret_created_in_step_1>"
MSSQL_PID: "<sql_server_edition>"
ACCEPT_EULA: "<Y|N>"
DX_LICENSE: "<dxenterprise_license_key>"
DX_ACCEPT_EULA: "<Y|N>"
tip

The remaining parameters in the values.yaml file can also be modified as desired to meet specific requirements (image tags, vhost name, availability group name, etc).

  1. Install the Helm chart:
helm install <name> dh2i/dxemssql -f values.yaml
info

If you receive a "Kubernetes cluster unreachable..." error during the helm installation, then either supply the --kubeconfig parameter, or run the below export command:

export KUBECONFIG=<path_to_kubernetes_config_file>

See the following articles for more information:

Kubernetes - Organizing Cluster Access Using kubeconfig Files

K3S - Cluster Access

  1. Wait for the deployment to finish. You can check on the progress using kubectl get pods and/or kubectl describe pod <pod_name>.

  2. Find the load balancer IP address for the primary by running the kubectl get service command, then note the EXTERNAL-IP for the load balancer ending in *-lb-0 (the primary replica).

Connect Via SSMS and DxAdmin

After the installation is complete, you can connect to your availability group and the DxEnterprise cluster using SQL Server Management Studio (SSMS) and DxAdmin.

View the Availability Group Using SSMS

  1. Launch SSMS.

  2. Connect to the SQL Server instance using the external IP address of the primary pod (the load balancer IP) and your SQL Server SA password.

  3. In the SSMS Object Explorer, expand Always On High Availability > Availability Groups.

  4. Right-click on AG1 and select Show Dashboard.

  5. You can now browse the AG details pane.

View the DxEnterprise Cluster and AG Using DxAdmin

  1. Launch DxAdmin.

  2. In the login dialog, enter the external IP address of the primary pod (the load balancer IP) for the Server.

  3. In the Passkey field, enter your DxEnterprise cluster passkey.

  4. Select Connect Server.

  5. After logging in, you will have an overview of the entire DxEnterprise cluster including the availability group. You can show more details by selecting them in the tree view on the left-hand side of the window.

    tip

    You can use DxAdmin to manage the availability group databases. Simply right-click on the availability group in the tree view and select Manage availability databases.

Additional Information