Installing Utopia in Azure
Setting Up a Kubernetes Cluster in Azure Using Azure Kubernetes Services
Last updated
Setting Up a Kubernetes Cluster in Azure Using Azure Kubernetes Services
Last updated
Check out this video running through the process, alternatively follow the instructions below
Azure simplifies the process of creating a Kubernetes cluster with its Azure Kubernetes Services (AKS). Setting up AKS is as straightforward as launching a virtual machine or a database in Azure. For most options, the default settings work well, but there are a few key areas you might want to customize:
Basics Tab:
Here, you'll define basic settings like your cluster's naming conventions and regions.
The Kubernetes version and upgrade settings are preset to sensible defaults, and it's usually fine to leave these as they are.
Node Pools Tab:
This tab lets you choose the size of the nodes (similar to VM size) in your cluster.
We recommend a minimum specification of 4-core CPUs and 7 GB RAM, typically using the Ubuntu OS, for a balanced performance.
Networking Tab:
Consider whether you need external access to your Kubernetes cluster. If so, enable public access by checking the 'Set authorized IP ranges' box.
If you're not familiar with Calico network policies and configurations, it's advisable to choose 'None' under the Network policy options.
Integrations Tab:
The default settings on this tab are usually sufficient, so you can leave them as is.
Monitoring Tab:
The monitoring settings can also be left at their defaults unless you have specific monitoring needs.
Advanced Tab:
Like the previous tabs, default settings here typically suffice.
Tags Tab:
Apply any necessary tags as per your usual Azure management practices. Tags are useful for categorizing and managing resources within Azure.
Review + Create Tab:
Finally, review all your settings. If everything looks good and aligns with your requirements, proceed to create your Kubernetes cluster.
What Azure will do now, is create a second resource group specifically for your Kubernetes cluster, this will include a few things in the background including Storage!
Once it is up the easiest way to install Utopia is connect your local terminal to your new Kube cluster. to do this you will need to to have the Azure CLI installed. If you have not done this already please check out https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
Once installed, from your local (where ever you have the utopia helm chart downloaded) terminal you can run:
You must then navigate to this resource to connect with it, navigating from your subscription to your resource:
Get a list of all your subscriptions
Set to the subscription you are looking for:
Get a list of the resource groups
Find the resource group you created for the Kube cluster and then run this command to get the resource names
Find the Kubernetes resource name and then you can merge the kube config to your local kube config file by running the following:
now you should be able to see your azure cluster on your local terminal if you run
to select it you can use
Next check you storage classes available, for Azure you can use default
Make sure your utopia values.yaml file has the correct storage class name here (see Databases)
When you have your utopia helm chart finalised ( Kubernetes Installation) navigate to the utopia folder in your local terminal and run
Back in your azure kubernetes resource you will see the workloads and services start provisioning.
Once everything is up, you will notice that you will not be able to connect to your Loadbalancer service, you can read up in more detail about this in this article: https://cloud-provider-azure.sigs.k8s.io/topics/loadbalancer/#custom-load-balancer-health-probe and https://learn.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli#basic-configuration
however essentially it means navigating into your kubernetes services, selecting your Loadbalancer service and navigate to its yaml file from the left hand panel. Once open you will need to add the following to the ingress-nginx-controller: metadata -> annotations node
after editting your yaml should look something like this
Now you should be able to access your Loadbalancer! which will mean you can finish off your installation by adding your DNS 'A' records as per the Final Stage DNS setup.