Redgate Clone

Installing on Azure Kubernetes Service (AKS)

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


SettingExpected value
SubscriptionThe Azure subscription you want to place the resource in
Resource groupWe recommend creating a new one for this service
Kubernetes cluster nameThis will name the Azure resource itself. "rgclone" is fine
Kubernetes version1.30.11
Automatic upgradeDisabled.  (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:

Poolrginfrapool
Node sizeE8s_v5 (Recommended minimum)
Scale methodManual
Node count1
Max pods per node250
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:

Poolrginfrapool
Node sizeE8s_v5 (Recommended minimum)
Scale methodManual
Node count
Max pods per node250
Mode

User

Labels

redgate.com/infrastructure-node=true

Poolrgclonepool
Node sizeE8s_v5 (Recommended minimum)
Scale methodManual
Node count1 .. x
Max pods per node250
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:

Poolrginfrapool
Node sizeE8s_v5 (Recommended minimum)
Scale methodManual
Node count
Max pods per node250
Mode

User

Labels

redgate.com/infrastructure-node=true

Poolrgclonepool
Node sizeE8s_v5 (Recommended minimum)
Scale methodManual
Node countn .. x
Max pods per node250
Mode

User

Labels

redgate.com/cloning-node=true

redgate.com/cloning-mssql-node=true

redgate.com/cloning-oracle-node=true

Where:

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).

SettingExpected 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.

SettingExpected value
Azure MonitorOff

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.

SettingExpected value
Disk sizeSize 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.



Didn't find what you were looking for?