Skip to main content

Essential tools

kubectl + kubelogin + helm is the minimum. Add k9s for interactive debugging. Skip GUIs until you know the CLI.

Required tools

Install these before touching any AKS cluster:

# Install Azure CLI (includes az aks commands)
# Windows: winget install Microsoft.AzureCLI
# macOS: brew install azure-cli
# Linux: curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

# Install kubectl and kubelogin via Azure CLI
az aks install-cli

# Verify installations
kubectl version --client
kubelogin --version
helm version
ToolWhy You Need ItInstall
Azure CLICluster lifecycle managementwinget install Microsoft.AzureCLI
kubectlAll Kubernetes API interactionsaz aks install-cli
kubeloginRequired for Entra ID auth (every production cluster)az aks install-cli
HelmInstall third-party components (ingress, cert-manager)winget install Helm.Helm
warning

kubelogin is not optional. Every production AKS cluster uses Entra ID integration. Without kubelogin, kubectl cannot authenticate. The az aks install-cli command installs both kubectl and kubelogin.

Connecting to your cluster

# Get credentials (merges into ~/.kube/config)
az aks get-credentials --resource-group myrg --name myaks

# For Entra ID clusters, convert kubeconfig to use kubelogin
kubelogin convert-kubeconfig -l azurecli

# Verify connectivity
kubectl get nodes
ToolPurposeOpinion
k9sTerminal UI for KubernetesBest debugging tool. Beats kubectl get loops.
KustomizeTemplate-free YAML compositionBuilt into kubectl (kubectl apply -k)
kubectx/kubensFast context/namespace switchingEssential once you have 2+ clusters
sternMulti-pod log tailingkubectl logs but across all pods at once
# Install k9s
winget install derailed.k9s

# Run it -- instant cluster overview
k9s

Helm vs Kustomize

Use Helm for third-party charts. Use Kustomize for your own apps. Don't use both on the same application.

ScenarioUseWhy
Install NGINX Ingress ControllerHelmMaintained chart, complex templates, values-based config
Install cert-managerHelmSame as above
Deploy your own microserviceKustomizeSimple overlays, no template engine needed
Customize a Helm chart heavilyHelm + values fileDon't eject into Kustomize patches on top of Helm
Opinion

If you find yourself patching Helm output with Kustomize, you've gone wrong. Either use the chart's values.yaml properly or fork the chart. The Helm-then-Kustomize pipeline is a maintenance nightmare.

Infrastructure as code

ToolWhen to Use
BicepAzure-only shops, simplest syntax, first-party support
TerraformMulti-cloud requirement, existing Terraform estate
ARM TemplatesNever for new projects. Legacy only.
info

Bicep compiles to ARM but is human-readable. If you're Azure-only, use Bicep. Terraform makes sense if you also manage AWS/GCP resources or your team already knows it.

Skip these (for now)

  • Lens/OpenLens: GUI Kubernetes IDE. Learn kubectl first so you understand what the GUI is doing.
  • Docker Desktop Kubernetes: Use AKS directly or kind/minikube for local dev.
  • Rancher/Portainer: Adds a management layer you don't need for a single cluster.

Resources