With the new release of CloudCasa migration and replication workflows, businesses harnessing Kubernetes can now streamline complex transitions across multiple clouds with unprecedented ease. Announced on March 19, 2024, by Catalogic, the enhanced version of CloudCasa is designed to address the critical needs of migrating on-premises clusters to the cloud, , including the migration of AKS clusters, shifting workloads between clouds, and replicating environments for development, testing, and disaster recovery. This update is pivotal for users of Azure Kubernetes Service (AKS), facilitating smoother migrations of AKS worker nodes to Azure Linux and storage volumes to Azure Container Storage, among other enhancements. For more insights into this partnership and its benefits, read more on the Azure Linux Partner Showcase featuring Catalogic Software. With these new capabilities, CloudCasa now empowers its users to manage large-scale Velero installations more efficiently and with reduced complexity, ultimately ensuring that CloudCasa can save more than 20% steps for the migration of Azure Linux. Here’s a detailed blog about the steps.
Overview
CloudCasa by Catalogic can be installed on Azure Kubernetes Service (AKS) clusters using Ubuntu and perform migrations to Azure Linux as the host operating system.
The Azure Linux container host for AKS is a lightweight, secure, and reliable OS platform optimized for performance on Azure. With this platform, you can easily deploy and manage your container workloads using the same proven tooling used by many of Microsoft’s own services such as Minecraft, Xbox, HDInsight, Defender, Azure Kubernetes Service and Azure Nexus.
In this tutorial you will learn how to:
- Install CloudCasa on Azure Kubernetes Service clusters
- Backup AKS clusters and Persistent Volumes with CloudCasa
- Perform restore(s) to migrate your existing clusters from Ubuntu to Azure Linux
Registering Microsoft Cloud Accounts in CloudCasa
In the first step, you will need to add a Microsoft Cloud Account into CloudCasa profile. If you haven’t already done so, you will need to create a CloudCasa account profile at https://cloudcasa.io.
Step 1: Add a new cloud account to CloudCasa
From the Configuration > Cloud Accounts menu, click on the Add Cloud account button.
Step 2: Select Microsoft Azure as the cloud account type
In the “Add Cloud Account” menu, select Microsoft Azure as the cloud account services
Step 3: Deploy the CloudCasa ARM template to your Azure cloud account
Click the “Deploy to Azure” link. This will take you to the Create ARM Template (Azure Resource Manager) wizard. Click the Deploy to Azure button.Step 4: Follow the custom deployment wizard
The link will take you to the Create Template wizard within the Microsoft Azure portal. It is here where you can deploy our custom template, by providing this information when configuring the template:
Subscription: CloudCasa
Region: <select applicable region>
You can leave the default options listed in the template. Click the “Review + Create” button.
Step 5: Create the CloudCasa application from the custom template
After clicking on the Review + Create Button, you will be provided with a description of the CloudCasa custom template along with end user terms of agreement. Agree to the Azure MarketPlace Terms and click the Create button within this screen.
Verifying CloudCasa Connectivity with Azure
After deploying the custom template through the Azure Resource Manager template screen, you will see your Account be marked as “Active”. In the CloudCasa management console, you can provide your Cloud Account with a Name and Description as shown in the example screenshot below.
Upon clicking the save button, an inventory job will be created and run automatically.
Installing CloudCasa Agent in your AKS Cluster
Step 1: Verify you can see AKS clusters in your Azure cloud account
When clicking on the hyperlink for your Cloud Account name, you will be able to see the AKS clusters accessible for your Azure cloud account.
Step 2: Choose a cluster to install the CloudCasa agent
On the cluster which you would like to deploy an agent, click on the Actions menu on. From the actions menu, select “Install”.Step 3:Verify the CloudCasa agent has been installed and is active
Install using the preferred method of your choice (Automatic is the easiest and will push out an agent for you). Once the installation is completed, your cluster should move from a Discovered state to an Active state.Note: If you are only performing migrations into your Azure Cloud Account, then there will be no need to install any agents. You will only need to register your Azure Cloud account. Once your Azure account is registered, you will be able to perform Full Stack Recovery (create an AKS cluster on-the fly during your restore) to the registered Azure account.
Migrating Clusters Through New Migration Feature
Defining a Backup Job in CloudCasa
Recently, CloudCasa introduced a new Migration feature will automatically perform a backup and restore to a destination cluster of your choice, or, use Full Stack Recovery to Create the cluster on in Azure Kubernetes Service on the fly. (Previously, this would have been done via two separate jobs – a backup job and a restore job.
To define a migration job of a cluster, CloudCasa needs to first be able to communicate with the source cluster, and the cluster should appear as Active within CloudCasa. If you haven’t already done so, follow the previous steps in the doc to register an AKS cluster to CloudCasa.
Step 1: Verify the CloudCasa agent installed in your cluster is active
In the CloudCasa user interface, go to the Cluster > Overview section and ensure that your cluster is registered and marked in an Active state.
Step 2: Define a migration job for your cluster
There are many screens from which you can define a migration within CloudCasa, by either clicking on the hyperlink to the cluster and going into the Clusters > Migration section and clicking “Define Migration”.
Step 3: Make selections for your migration source
In the Selections Panel, you’ll be able to select the cluster you want to migrate. Your cluster will need to have at least one pod with persistent volume claims in order to perform the migration.
CloudCasa will need a storage repository to send the copy to before it performs the migration. The storage destination that you select in your migration job definition will also need to be reachable from the Microsoft Azure Kubernetes Services as well. Once you have your migration selections defined, proceed to the next screen.
Step 4: Define a Migration Destination
Similar to defining a cross account/cross cluster restore, you will supply the parameters for where you want to Kubernetes cluster to be restored to. Here we can choose to use Full Stack Recovery to create a cluster automatically or migrate our application namespaces to an already existing cluster.
Step 5: Supply the AKS Options for Location and Credentials
Here you will supply:
- Resource Group Name available from a drop-down menu
- Region
- Kubernetes Version
- Client ID and Client Secret
Step 6: Customizing Node Pools
It’s here that you will define the elements of your node pool and change your OS SKU to Azure Linux. From this screen can customize the elements of your node pool including:
- Size of node pool
- OS SKU (Ubuntu or Azure Linux distribution with which to build your Kubernetes cluster)
- Size of VM node
- Minimum, maximum, and desired node size of the cluster
Step 7 (Optional): Final Steps, Restore Transforms and Application Hooks
Restore transformations allow you to rename namespaces either by appending a prefix or suffix to the original namespace name. You will also be able to remap storage classes of your persistent volume claims here as well. In doing so, clusters that may have originated from an AWS EKS cluster using EBS or EFS storage class can be remapped to Azure disk or Azure Container Storage as an example.
Step 8: Finalize and Run
Finally give your migration job a name and choose whether or not you would like to Run Now. During the migration process, CloudCasa performs a backup of the cluster to your defined storage destination and then immediately restores the copy to AKS using the parameters specified.
Another way to think of migration is having a backup and restore policy contained in a single policy and great for those instances in which you’re looking to do a one-time move of the cluster to a new location.
Step 9: New Cluster Creation
Upon completion of defining your migration job, you will be able to see your cluster being created through the Azure Portal.
Conclusion
The migration of an AKS cluster from Ubuntu Linux to Azure Linux can be a simple undertaking when using the right tools. Once a CloudCasa agent is installed on your source cluster, the migration itself can be done by creating a migration policy through CloudCasa. During the migration, CloudCasa’s full stack recovery can create an entirely new cluster from scratch using the defined parameters of your choice.
CloudCasa allows you to choose many different parameters during restore, including OS SKU, Kubernetes version, etc. This flexibility is what allows CloudCasa to become the “easy” button for performing your migration. With CloudCasa, you can migrate and rebuild your cluster however and whenever you want.
After the migration, you need to consider what to do with your old cluster that is running on Ubuntu nodes. We’ll leave that decision up to you, but you can either stop the cluster or delete it entirely after testing your services on the new cluster CloudCasa built from scratch. Happy migrating!