Installing on Azure Kubernetes Service (AKS)
Published 18 January 2022
This page provides step-by-step instructions on how to create AKS infrastructure and deploy the Redgate Clone solution onto it.
Contents
Create Kubernetes service
On the landing page of the Azure Portal, click on "Create a resource". Search for "Azure Kubernetes Service (AKS)".
Click on "Azure Kubernetes Service (AKS)" and then click "Create".
Select the Azure subscription you want to store the Kubernetes service in and create a new resource group for it.
Configuration
You'll need to configure the AKS instance. We have some required settings here that differ from the defaults and are necessary for Redgate Clone to function correctly.
After changing settings from the four tabs shown below, click on "Review + create" and Azure will start creating your cluster. Wait for the creation process to complete before continuing.
Complete all the changes in the tabs below
Setting | Expected value |
---|---|
Subscription | The Azure subscription you want to place the resource in |
Resource group | We recommend creating a new one for this service |
Kubernetes cluster name | This will name the Azure resource itself. "rgclone" is fine |
Kubernetes version | 1.30.11 |
Automatic upgrade | Disabled. (This upgrades Kubernetes. Please upgrade manually to versions we've tested redgate clone on.) |
Node security channel type | Node Image. (Updates to the latest VM image, including security updates) If you choose the unmanaged option, security updates are never done. Please read Managing AKS Updates for more guidance. |
By default AKS uses one or two node pools (agentpool
and/or userpool
). The agentpool is used by AKS, not Redgate Clone. We recommend leaving the agentpool
and deleting the userpool
.
AKS uses the agentpool
to manage the cluster. There needs to be at least one instance of the agentpool.
Important! Click into the agentpool node, scroll to the bottom and remove the CriticalAddonsOnly taint.
Redgate Clone can then be run in one of several configurations:
Single pool configuration
This mode is suitable for trialing Redgate Clone but does not allow for data replication and its performance is limited.
It uses a single node pool (in addition to the agentpool
) with a single node service as both the infrastructure and the cloning node.
Running on one node pool:
Pool | rginfrapool |
---|---|
Node size | E8s_v5 (Recommended minimum) |
Scale method | Manual |
Node count | 1 |
Max pods per node | 250 |
Mode | User |
Labels | redgate.com/infrastructure-node=true redgate.com/cloning-node=true redgate.com/cloning-mssql-node=true redgate.com/cloning-oracle-node=true |
Multi pool configuration with no data replication
This is the minimum recommended configuration for running with production data.
It uses at least two separate node pools, one for the architecture node and one or more for the cloning node(s), which can dynamically scale depending on usage up to a predetermined limit.
Nodes on a pool share configurations, including labels. The label defines the workloads for a node:
redgate.com/cloning-
node=true:
Allows spinning up MySQL and PostgreSQL databases on this node.redgate.com/cloning-mssql-node=true:
Allows spinning up Microsoft SQL Server databases on this node.redgate.com/cloning-oracle-node=true:
Allows spinning up Oracle databases on this node.
The distribution of workloads should help determine how many pools you need.
Running on two node pools without replication:
Pool | rginfrapool |
---|---|
Node size | E8s_v5 (Recommended minimum) |
Scale method | Manual |
Node count | 1 |
Max pods per node | 250 |
Mode | User |
Labels | redgate.com/infrastructure-node=true |
Pool | rgclonepool |
---|---|
Node size | E8s_v5 (Recommended minimum) |
Scale method | Manual |
Node count | 1 .. x |
Max pods per node | 250 |
Mode | User |
Labels | redgate.com/cloning-node=true redgate.com/cloning-mssql-node=true redgate.com/cloning-oracle-node=true |
Where:
x is the maximum number of nodes the pool is allowed to scale to. This value will determined the overall capacity available for storing data.
Multi pool configuration with data replication
This configuration is recommended for production data where data resilience is desired.
It is similar to the multi pool configuration described above, but with multiple copies of the data stored across the cluster's nodes.
As labels only affect where databases are spun up, and not where images are stored, the number of replications can go up to the total number of minimum cloning nodes across all pools.
Running on two node pools with replication:
Pool | rginfrapool |
---|---|
Node size | E8s_v5 (Recommended minimum) |
Scale method | Manual |
Node count | 1 |
Max pods per node | 250 |
Mode | User |
Labels | redgate.com/infrastructure-node=true |
Pool | rgclonepool |
---|---|
Node size | E8s_v5 (Recommended minimum) |
Scale method | Manual |
Node count | n .. x |
Max pods per node | 250 |
Mode | User |
Labels | redgate.com/cloning-node=true redgate.com/cloning-mssql-node=true redgate.com/cloning-oracle-node=true |
Where:
n is the number of nodes across which data is replicated. You will also need to specify this value later under 'Data Replications' in your Storage Settings.
x is the maximum number of nodes to which the pool is allowed to scale. This value will determined the overall capacity available for storing data (which will be x/n).
Setting | Expected value |
---|---|
Container networking configuration | Choose Azure CNI Node Subnet. NOTE: There's a new version of the Azure CNI called Azure CNI Overlay. We do not support the overlay version. |
The Redgate Clone installation includes the Grafana monitoring UI. We suggest you turn off the AKS monitoring by setting all the features with Azure monitor.
Setting | Expected value |
---|---|
Azure Monitor | Off |
Install Redgate Clone to the AKS instance
Locate the "Kubernetes service" in the resource group created earlier.
You will need to complete some of the following steps in a bash shell. On Windows, please use WSL.
Connect to the AKS instance
From the Kubernetes service, there are instructions on how to connect that appear when you press the "Connect" button in the command bar at the top of the page. Follow the instructions for the "Azure CLI".
N.B. You'll connect from you're computer remotely to the kubernetes cluster and to the kots admin console. The remote connection is the main way to run the kubectl cli for the kubernetes cluster.
Verify the connection is working with the command:
kubectl get nodes
You should see output similar to this:
If you have an error using kubectl see this troubleshooting page.
Install Redgate Clone
Execute the following command in a shell on mac, linux (WSL on windows).
sudo bash -c "$(curl -fsSL https://kots.io/install)"
Accept the default installation directory.
Execute the following command:
kubectl kots install cloning-capability-app
When prompted, enter "default" as the namespace to deploy to.
When prompted, choose and enter a password to use for connecting to the admin console. Remember this for later.
Access the Kots admin console
From the terminal on your computer you must always run the same sequence of commands to connect to the kubernetes cluster first.
After you've gotten the credentials, type this command to port forward the kots console to your localhost on port 8800:
kubectl kots admin-console
AKS Services and Ingresses
In the the AKS menu, you can reach the "Services and Ingresses" page.
This shows you all the running services on the kubernetes cluster.
Public IP address
The external IP address of the nginx service is the public ip address.
Configure Redgate Clone
Visit the admin console in a browser to continue setup at the location given by the previous command.
Continue as per the instructions given in the installation quick start guide, but with the following AKS-specific configuration values.
Setting | Expected value |
---|---|
Disk size | Size in GiB of the disk for data images and data containers. Default value is 100 GiB |
Data replications | The number of data replications providing storage redundancy across the cluster's nodes. This must be a number between one (no replication) and the minimum Node Count (n) set in rgclonepool. See under 'Node pools' above for more details. Default value is 1. |
Azure DNS Label | Must be unique to the Azure location of your AKS instance. To learn more visit the Microsoft learn page on the DNS label. |