Add additional nodes (preview)
Published 03 January 2024
Node roles
Node roles control the functionality of the nodes and how the application behaves when handling them. Node roles are controlled by their Kubernetes labels.
Node role | Kubernetes Label | Purpose |
---|---|---|
Infrastructure | redgate.com/infrastructure-node | Holds all the Redgate Clone application components. In other words, an infrastructure role controls where ancillary processes like the application's web API are run from. For embedded clusters we require having only one infrastructure node. |
Cloning | redgate.com/cloning-node | Hosts and manages the executing data containers running in the associated database engine (e.g. SQL Server or PostgreSQL). |
redgate.com/cloning-mssql-node | MSSQL and Oracle data containers will only run on nodes with a special label assigned to them (this is because these database engines may be licensed per-machine/CPU). Other database engines will run on any available node. | |
redgate.com/cloning-oracle-node |
How can I add another node?
You'll need to scale up the relevant node pool on your AKS cluster, this should be called agentpool
if you followed the Quick Start Guide.
You should be able to find the relevant configuration option within the "Node pools" overview within your AKS Cluster page in the Azure portal.
Additional nodes will need to be labelled appropriately for the data containers that will be created, and this should be configured at the node pool level.
In order to configure the labels for a node pool in AKS, you need to use the Azure CLI. You can follow the official documentation for details.
First, you'll need to create another VM that meets the specifications outlined in the pre-requisites, without an attached storage disk.
Then, follow the instructions for "Add a node" provided in the "Cluster Management" tab of the Redgate Clone Admin Console.
Additional nodes are for running data containers, so they will need to be labelled appropriately for the data containers that will be created.
To allow MSSQL data containers:
kubectl label nodes <NODE-NAME> redgate.com/cloning-mssql-node=true --overwrite
To allow Oracle data containers:
kubectl label nodes <NODE-NAME> redgate.com/cloning-oracle-node=true --overwrite
To allow any other data containers:
kubectl label nodes <NODE-NAME> redgate.com/cloning-node=true --overwrite
The above labels can be combined if desired.
Redgate Clone requires the clocks of the VMs to be kept in sync, e.g., by using a Network Time Protocol (NTP) tool such as ntpd.