Create AKS Cluster using Azure CLI

Deployment Steps:

prerequisites:

  1. Azure account with a subcription

  2. Azure Cli installed and logged in. You can install Azure CLI by following https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest

  3. Kubectl — Kuberntes Command Line Interface installed

  4. Create a resource group

    az group create -n <resource-group-name> -l <location>
    
  5. Create Virtualnet

    az network vnet create -g <resource-group-name> -n <vnet-name> --address-prefix <CIDR>
    

    Example:

    az network vnet create -g xxxgggg -n k8s-vnet --address-prefix xx.xx.xx.xx/x'''
    
  6. Create Subnet

This Subnet is used for the Pods network and Nodes

az network vnet subnet create -n <subnet-name> -g <resource-group> --vnet-name <vnet-name> --address-prefix <CIDR-**for**-**this**-subnet>

Example:

az network vnet subnet create -n k8s-nodes-subnet -g pocCCPwu2rg --vnet-name k8s-vnet --address-prefix xx.xx.xx/x
  1. Create Service principal

This Service Principal will be used for creating other resources like Load Balancer, Storage Disk etc

az ad sp create-**for**-rbac -n <service-principal-name> --skip-assignment

Example:

az ad sp create-**for**-rbac -n aks-poc-sp --skip-assignment

Output would be something like below. Use the AppID and Password in the command for creating cluster

{

"appId": "xxxxxxxx",

"displayName": "aks-poc-sp",

"name": "[http://aks-poc-sp"](http://aks-poc-sp%22/),

"password": "xxxxxxxx-xxxxxxx",

"tenant": "xxxxxxxxx"

}
  1. Show Available Kubernetes versions:

5 . Create AKS cluster

az aks create --resource-group xxxgggggg --name aks-poc --kubernetes-version 1.11.5 --node-count 1 --node-vm-size Standard_DS1_v2 --vnet-subnet-id "/subscriptions/xxx-xxx-xxxx-xxxx-xxxx/resourceGroups/xxx-rg/providers/Microsoft.Network/virtualNetworks/k8s-vnet/subnets/k8s-nodes-subnet" --network-plugin azure --service-principal <app_id_from_service_principal> --client-secret <service_principal_password> --service-cidr xx.xx.xx.xx/x--dns-service-ip xx.xx.xx.xx

Note:

Use — generate-ssh-keys to generate a new ssh key for SSH access to nodes. If this option is not used key ~/.ssh/id_rsa is used if it’s present

VM sizes list https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes — node

Even though documentation says Network Policy with Calico is supported, it’s not yet available.

Please read previous story for help on Network design & CIDR.