Differences between revisions 3 and 8 (spanning 5 versions)
Revision 3 as of 2022-08-14 19:40:43
Size: 1097
Editor: PieterSmit
Comment:
Revision 8 as of 2022-10-19 10:34:04
Size: 2211
Editor: PieterSmit
Comment:
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
== Create EKS == == Create AKS ==
Line 32: Line 32:

== AKS RBAC ==
 * Assign role to AD group {{{
AKS_ID=$(az aks show \
    --resource-group myRGroup \
    --name myAKSCluster \
    --query id -o tsv)

APPDEV_ID=$(az ad group create \
    --display-name appdev \
    --mail-nickname appdev \
    --query objectId -o tsv)

az role assignment create \
  --assignee $APPDEV_ID \
  --role "Azure Kubernetes Service Cluster User Role" \
  --scope $AKS_ID
}}}

== AKS Autoscaler and NodePools ==
 * GitHub - https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md
 * Explained - https://www.thorsten-hans.com/aks-cluster-auto-scaler-inside-out/#why-should-you-use-cluster-auto-scaler
 * Azure doc - https://learn.microsoft.com/en-us/azure/aks/cluster-autoscaler#using-the-autoscaler-profile
 * e.g. ConfigMap - https://docs.giantswarm.io/advanced/spot-instances/azure/ondemand-fallback/
 * Use priorities to pick preferd pool order, From https://github.com/Azure/AKS/issues/2359 {{{
az aks update --subscription xxx --resource-group xxx --name xxx --cluster-autoscaler-profile expander=priority
}}}

k8s/AzureAKS

  • Links https://docs.microsoft.com/en-us/azure/aks/kubernetes-service-principal?tabs=azure-cli

  • SP - Service principal - used by the k8s cluster
    • NOTE: /!\ only valid for 1 year - rotate credentials

      • Saved on azure node(vm) at /etc/kubernetes/azure.json
      • If created with az aks create, saved on laptop at ~/.azure/aksServicePrincipal.json
      • got to delete SP, on cluster deletion, not done for you. query for your clusters servicePrincipalProfile.clientId and then delete it using the az ad sp delete
    • Give it roles/access e.g.
      • Access to Azure Container registry to pull images
      • Access storage in different RG
      • Access IP in different RG

Create AKS

  • Go

    RG_NAME=myResourceGroup-NP
    CLUSTER_NAME=myAKSCluster
    LOCATION=canadaeast
    
    Create the AKS cluster and specify *azure* for the network plugin and network policy.
    
    ```azurecli
    az aks create \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME \
        --node-count 1 \
        --network-plugin azure \
        --network-policy azure

AKS RBAC

  • Assign role to AD group

    AKS_ID=$(az aks show \
        --resource-group myRGroup \
        --name myAKSCluster \
        --query id -o tsv)
    
    APPDEV_ID=$(az ad group create \
        --display-name appdev \
        --mail-nickname appdev \
        --query objectId -o tsv)
    
    az role assignment create \
      --assignee $APPDEV_ID \
      --role "Azure Kubernetes Service Cluster User Role" \
      --scope $AKS_ID

AKS Autoscaler and NodePools

k8s/AzureAKS (last edited 2024-08-17 02:22:57 by PieterSmit)