Utopia Knowledge Base Definitions
  • Welcome to Utopia University
  • 🔦Overview
    • How to Navigate the University
    • How is Utopia different
    • Features
    • Utopia Sync Website Links
  • 😁Contact Us
    • Open Chat Room
    • Contact Us
  • ⬇️Installation guide
    • Docker Compose Installation
      • Prerequisites
      • The Installation Configurator
        • Databases
        • S3 (Optional)
        • SMTP Details (Compulsory)
        • Adobe API Credentials (Optional)
        • Final steps to get your compose fle
      • Compose Installation
    • Kubernetes Installation
      • Prerequisites
      • The Installation Configurator
        • Databases
        • S3 (Optional)
        • SMTP Details (Compulsory)
        • Adobe API Credentials (Optional)
        • Ingress Naming (Compulsory)
        • Final steps to get helm chart
      • Using Helm to Install and Edit
      • Final Stage DNS setup
        • Setting up TLS cert
        • Third Party Service DNS Manager (like Cloudflare)
        • DNS Work-around while you get your cert ready
    • Cluster Craft
      • Basic Kubernetes install with microk8s
      • Basic Kubernetes install with microk8s and NFS storage
      • Updating Loadbalancer IP with Microk8s and Metallb
      • Installing Utopia in Azure
      • Testing SMTP server from a Kubernetes Cluster or a Container using telnet and openssl
      • Kubernetes Visibility
        • Kube CLI visibility with Lens or OpenLens
        • Prometheus and Grafana Monitoring
      • Syntax Cheat Sheet
        • Kubectl
        • Microk8s
        • Microceph
        • Mongodb Compass
          • _MONGOSH Terminal Commands
          • Query Commands
        • Shell Commands
  • 🖥️Product Guide
    • Integration Hub
      • Selecting your Organization
      • Menu Navigation
      • Data In
        • Collection Parameters
        • Document Lifespan Strategy
        • Source Connectors
          • Connector Modules
            • Empact Email Orders
            • File Transfer Protocol (FTP)
            • Generate Random Documents (Test)
            • HTTP REST Collection Source
            • Lotus 1-2-3 prn file
            • Microsoft Navision Collection
            • MySQL Query
            • Pick n Pay Supplier Orders
            • Post Office Protocol (POP3)
            • Secure File Transfer Protocol (SFTP) (SSH)
            • Internet Message Access Protocol (IMAP)
            • Shoprite Collection
            • SQL Server Query
            • StrategixNav Collection
            • Transaction Query
          • Web Hook Triggers
        • API Listeners
          • Document Capture
          • Document Query (External)
          • Document Query (Integrated)
          • Listener Security
      • Transform
        • Search Documents
        • The Designer Panel
        • The Designer view
        • Transform Stage Types
          • Filter
          • Lookup
          • Add Field
          • Projection
          • Unwind
          • JS / JSON
      • Data Out
        • Publisher Collection Parameters
        • Data Out Connector
          • API Collection Publisher
          • Do Nothing
          • File Transfer Protocol (FTP)
          • HTTP REST Collection Publisher
          • Message Transport Post
          • Microsoft Navision Publisher
          • PDF Document Emailer
          • Pick n Pay Invoices
          • Post Syspro QueryQuery
          • Post Syspro Transaction
          • Post Vector Orders
          • Secure File Transform Protocol (SFTP) (SSH)
          • Shoprite Invoice Publisher
          • SMTP Collection Publisher
          • SQL Server OPENJSON Publisher
          • SQL Server Query Publisher
          • StrategixNav Publisher
      • Validation
    • Organizations
    • Transaction Page
    • User Profile
    • Logging
    • Process Que Dashboard
    • Process Error Dashboard
    • New Functions
      • XML to Json using the Transform Designer
      • XML to Json using ChatGPT
      • Rest Connector JS Prescript
    • Release Notes
      • Microservices
        • 0.12.1622
        • 0.12.1630
  • ☕Use Cases
    • Follow Along Examples
      • Look-ups! no-code Transform Stage
        • Multi Field Look-ups! low-code Transform Stage
      • Rest Connector JS Prescript Example
        • Rest Connector JS PreScript Fault Finding Techniques
      • XML to Json using the Transform Designer
      • XML to Json using ChatGPT
    • Solution Discussions
      • Moditar: Increasing Integration Adoption using UtopiaSync
      • UtopiaSync the scalable no-code Backend?
      • UtopiaSync Security - How does it work?
      • UtopiaSync Custom Configuration
      • UtopiaSync Maintenance
  • 😁Case Studies
    • How Moditar drove efficiency for Meridian Wine Merchants using Utopia iPaaS
    • The journey to Spier Wine Farm's perfect eCommerce Integration
    • Integration journey to 100% automated with La Concorde Bakery
Powered by GitBook
On this page
  1. Installation guide
  2. Cluster Craft

Installing Utopia in Azure

Setting Up a Kubernetes Cluster in Azure Using Azure Kubernetes Services

PreviousUpdating Loadbalancer IP with Microk8s and MetallbNextTesting SMTP server from a Kubernetes Cluster or a Container using telnet and openssl

Last updated 1 year ago

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:

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

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

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

  4. Integrations Tab:

    • The default settings on this tab are usually sufficient, so you can leave them as is.

  5. Monitoring Tab:

    • The monitoring settings can also be left at their defaults unless you have specific monitoring needs.

  6. Advanced Tab:

    • Like the previous tabs, default settings here typically suffice.

  7. Tags Tab:

    • Apply any necessary tags as per your usual Azure management practices. Tags are useful for categorizing and managing resources within Azure.

  8. 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 installed, from your local (where ever you have the utopia helm chart downloaded) terminal you can run:

az login

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

az account list

Set to the subscription you are looking for:

az account set --subscription "your-account"

Get a list of the resource groups

az group list -o table

Find the resource group you created for the Kube cluster and then run this command to get the resource names

az aks list --resource-group resource-abcde --query "[].name"

Find the Kubernetes resource name and then you can merge the kube config to your local kube config file by running the following:

az aks get-credentials --resource-group resource-abcde --name kube-1234

now you should be able to see your azure cluster on your local terminal if you run

kubectl config get-contexts

to select it you can use

kubectl config use-context kube-1234

Next check you storage classes available, for Azure you can use default

kubectl get sc

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

helm install utopia .

Back in your azure kubernetes resource you will see the workloads and services start provisioning.

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

service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path: /healthz

after editting your yaml should look something like this

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx-controller
  namespace: default
  uid: 951417bc-856b-4532-9149-59bc34b3e99a
  resourceVersion: '54497756'
  creationTimestamp: '2023-10-23T13:55:14Z'
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.9.3
    helm.sh/chart: ingress-nginx-4.8.2
  annotations:
    meta.helm.sh/release-name: ingress-nginx
    meta.helm.sh/release-namespace: default
    service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path: "/healthz"
.....    

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

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: and

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 .

⬇️
https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
https://cloud-provider-azure.sigs.k8s.io/topics/loadbalancer/#custom-load-balancer-health-probe
https://learn.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli#basic-configuration
Final Stage DNS setup