Published on

Azure Kubernetes Service (AKS) Automatic

Authors
  • avatar
    Name
    Saif Segni
    Twitter

Introduction

Azure Kubernetes Service (AKS) is a managed Kubernetes service that you can use to deploy and manage containerized applications. Microsoft has announced AKS Automatic during the Build conference. In this article, we will discuss this new AKS feature and test it!

With Azure Kubernetes Service (AKS) Automatic , Azure takes care of your cluster setup, including node management, scaling, security, and preconfigured settings that follow AKS well-architected recommendations ! Users of any skill level can benefit from the security, performance, and dependability of AKS Automatic for their applications.

Prerequisites:

  • This article requires version 2.57.0 or later of the Azure CLI. If you’re using Azure Cloud Shell, the latest version is already installed there .

  • The identity creating the cluster should also have the following permissions on the subscription:Microsoft.Authorization/policyAssignments/write ; Microsoft.Authorization/policyAssignments/read.

  • Make sure your subscription has quota for 24 vCPUs of the Standard_DS4_v2 virtual machine for the region you’re deploying the cluster to .

Prepare our environment

  • Run az version to find the version and dependent libraries that are installed. To upgrade to the latest version, run az upgrade.
  • Login to your tennat and select the appropriate subscription ID in which the resources should be billed :
az login -t xxxxxxxxxxxxxxxxxxxxxxxxxxxx
az acouunt set -s xxxxxxxxxxxxxxxxxxxxxx
  • Install the aks-preview extension
az extension add --name aks-preview
az extension update --name aks-preview
  • Register the feature flags using the az feature register command.
az feature register --namespace Microsoft.ContainerService --name EnableAPIServerVnetIntegrationPreview
az feature register --namespace Microsoft.ContainerService --name NRGLockdownPreview
az feature register --namespace Microsoft.ContainerService --name SafeguardsPreview
az feature register --namespace Microsoft.ContainerService --name NodeAutoProvisioningPreview
az feature register --namespace Microsoft.ContainerService --name DisableSSHPreview
az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview
  • Refresh the registration of the Microsoft.ContainerService resource provider by using the az provider register command
az provider register --namespace Microsoft.ContainerService
az provider register --namespace Microsoft.ContainerService

Deploy the aks cluster with AKS Automatic

  • Create a resource group:
az group create --name test-aks-automator --tag createdby=ssegni --location francecentral

{
  "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxx/resourceGroups/test-aks-automator",
  "location": "francecentral",
  "managedBy": null,
  "name": "test-aks-automator",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": {
    "createdby": "ssegni"
  },
  "type": "Microsoft.Resources/resourceGroups"
}
  • Create AKS Automatic cluster :
 az aks create --resource-group test-aks-automator --name myAKSAutomaticCluster --sku automatic

Argument '--sku' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
The behavior of this command has been altered by the following extension: aks-preview
 \ Running ..

After the build process is finished, we can see in the resource group that a list of resources has been created :

rg-aks

When we create the AKS Automatic cluster we have some Pre-configured features(you can’t disable or change their settings) ,defautl features (can be modified) and Optional features are available for you to configure and are not enabled by default.

Below is a summary of the most important options :

  • Managed Prometheus for metric collection , Managed Grafana for visualization and Container insights for log collection are a defautl features.

  • AKS Automatic manages the node pools using Node Autoprovisioning come us a Pre-configured features .

  • AKS Automatic creates nodes based on workload requests using Node Autoprovisioning.Horizontal Pod Autoscaler (HPA), Kubernetes Event Driven Autoscaling (KEDA), and Vertical Pod Autoscaler (VPA) are enabled on the cluster.( Pre-configured features)

  • Node operating system is Azure Linux (Pre-configured)

  • Clusters are automatically upgraded (Pre-configured)

  • Azure RBAC for Kubernetes authorization for managing cluster authentication and authorization using Azure role-based access control is also Pre-configured feature .

  • Managed Virtual Network using Azure CNI Overlay powered by Cilium combines the robust control plane of Azure CNI with the data plane of Cilium to provide high-performance networking and security.

  • Managed NGINX using the application routing add-on with integrations for Azure DNS and Azure Key Vault is also Pre-configured feature.

  • Azure Service Mesh (Istio) ingress gateway is optional .

If you see the pods that have been created with the creation of the cluster, you can find pods related to these features: pods We can determine some pods such as : keda , vpa , aks-secrets-store, cilium, azure-policy , ….

that’s all folks 👏 thanks for reading 🙏