Skip to main content
Version: 1.21

Azure Kubernetes Service (AKS)

This guide will walk you through the process of installing Okteto in Azure Kubernetes Service (AKS).

Installation Requirements

Before you start, make sure you have the following CLIs installed in your machine:

You'll also need the following:

  • An Okteto License
  • A Domain and the ability to create wildcard DNS records for it
  • A Kubernetes cluster

Getting your Okteto License

A license is mandatory to use Okteto. You'll receive a license key as part of your subscription to Okteto. If you haven't received it, please open a support ticket.

If you are interested in evaluating Okteto, sign up for our free 30 days trial. No credit card required.

A Domain and the ability to create wildcard DNS records for it

You'll need sufficient access to a domain to add a wildcard DNS record, such as dev.example.com. By default, all endpoints created by Okteto for your development environments will be exposed on the wildcard subdomain you choose.

This guide assumes your domain is registered in Azure DNS. You can use any DNS service you prefer, but this guide focuses specifically on Azure DNS.

Deploy a Kubernetes cluster

We recommend that you follow Azure's cluster creation guide.

Okteto supports Kubernetes versions 1.26 through 1.29. To get started with Okteto, we recommend that you create a Kubernetes cluster with the following configuration:

  • Kubernetes v1.29
  • A pool with at least 3 Standard D4 nodes
  • 250 GB per Standard SSD Managed Disk

Installing Okteto

Okteto is installed using a Helm chart. Let's start the process:

Add the Okteto Helm repository

You'll need to add the Okteto Helm repository to be able to install Okteto:

helm repo add okteto https://charts.okteto.com
helm repo update

Create the Helm configuration file

In order to install Okteto you need to first create a config.yaml for the installation process. Replace license and subdomain with your own values, and initialize your Helm configuration file with these settings:

config.yaml
license: "REPLACE ME WITH YOUR OKTETO LICENSE"
subdomain: "REPLACE ME WITH YOUR OKTETO DOMAIN"

buildkit:
persistence:
enabled: true

registry:
storage:
filesystem:
persistence:
enabled: true

Note: This is the minimum configuration. Check our Helm configuration docs to learn more

Installing the Okteto Helm chart

Install the latest version of Okteto by running:

helm upgrade --install okteto okteto/okteto -f config.yaml --namespace=okteto --create-namespace --version=1.20.0

After a few seconds, all the resources will be created. The output will look something like this:

Release "okteto" has been installed. Happy Helming!
NAME: okteto
LAST DEPLOYED: Thu Mar 26 18:07:55 2020
NAMESPACE: okteto
STATUS: deployed

Retrieve the Ingress Controller IP address

You can use kubectl to fetch the address that has been dynamically allocated by AKS to the NGINX Ingress we've just installed and configured as a part of Okteto:

kubectl get service -l=app.kubernetes.io/name=ingress-nginx,app.kubernetes.io/component=controller --namespace=okteto

The output will look something like this:

NAME                             TYPE           CLUSTER-IP   EXTERNAL-IP                          PORT(S)                                     AGE
okteto-ingress-nginx-controller LoadBalancer 10.0.7.73 a519c8b3b27f94...aks.microsoft.com 80:30795/TCP,443:32481/TCP,1234:30885/TCP 5m

You'll need to take the EXTERNAL-IP address and add it to your DNS for the domain you have chosen to use. In AzureDNS, this is done by creating an A record with the name *, pointing to the IP of the Load Balancer.

Sign in to your Okteto instance

warning

Important: The default installation is not recommended for production use. We highly advise configuring a wildcard certificate and Okteto Registry storage with Azure Storage Container after finishing your evaluation and giving your team access to your Okteto instance.

After a successful installation, you can access your Okteto instance at https://okteto.SUBDOMAIN. Your account will be automatically created as part of the login process. The first user to successfully login into the instance will be automatically assigned the administrator role.

Once your Okteto instance is up and running, you're going to install and configure the Okteto CLI with your Okteto instance.

Optional: Configure access to your Azure Container Registry

Optionally, you can configure Okteto to have access to your Azure Container Registry. This will allow you to use your private images in your Dockerfiles and avoid using pull secrets everywhere to deploy your applications.