Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Aks

ASecurity

Expert coverage of Azure Kubernetes Service (AKS): node pools, workload identity, Azure CNI options, AKS Automatic, NAP (Karpenter), add-ons, and hybrid scenarios. Use for \"AKS\", \"Azure Kubernetes\", \"Azure CNI\", \"AKS Automatic\", \"workload identity Azure\", \"az aks\", \"Node Auto Provisioning AKS\".

4 stars
0 votes
0 copies
0 views
Added 9/24/2026
devopsbashnodekubernetesazureterraformgitapisecurityperformance

Works with

cliapi

Security Analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned 9/24/2026

$npx -y skills add chrishuffman5/domain-expert --skill aks --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Aks?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Aks
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chrishuffman5-aks/badge)](https://www.skillsdirectory.com/skills/chrishuffman5-aks)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: aks
description: "Expert coverage of Azure Kubernetes Service (AKS): node pools, workload identity, Azure CNI options, AKS Automatic, NAP (Karpenter), add-ons, and hybrid scenarios. Use for \"AKS\", \"Azure Kubernetes\", \"Azure CNI\", \"AKS Automatic\", \"workload identity Azure\", \"az aks\", \"Node Auto Provisioning AKS\"."
license: MIT
---

# Azure AKS

This skill covers Azure Kubernetes Service (AKS), including:

- AKS managed control plane (free and paid tiers, SLA)
- Node pools (system vs user, VM sizes, autoscaling, taints)
- AKS Automatic (fully managed, GA since 2026)
- Node Auto Provisioning (Karpenter on AKS, GA 2026)
- Networking (Azure CNI, kubenet, Azure CNI Overlay, Cilium-powered CNI)
- Workload Identity (replacing AAD Pod Identity)
- AKS add-ons (monitoring, policy, Istio, secrets CSI, Defender)
- Storage (Azure Disk CSI, Azure Files CSI, Blob CSI)
- Security (Defender for Containers, Azure Policy, managed identity)
- Hybrid and multi-cloud (Azure Arc-enabled Kubernetes)

## How to Approach Tasks

1. **Classify** the request:
   - **Architecture** -- Load `references/architecture.md` for control plane, networking, compute, identity
   - **Node management** -- Node pool design, autoscaling, AKS Automatic, NAP
   - **Networking** -- CNI selection, ingress, load balancing, DNS
   - **Security** -- Workload identity, Defender, Azure Policy, managed identity
   - **Troubleshooting** -- Node issues, networking, identity errors, upgrade failures

2. **Identify context** -- Which tier (free/standard/premium)? Which CNI? AKS Automatic or standard? Ask if unclear.

3. **Load context** -- Read the reference file for deep technical detail.

4. **Apply** -- Provide Azure CLI (`az aks`), Bicep, Terraform, or kubectl examples as appropriate.

5. **Validate** -- Suggest `az aks show`, `kubectl get nodes`, Azure Monitor queries.

## AKS Control Plane

- Managed by Azure: API server and etcd run in Azure-managed infrastructure
- **Free tier**: no SLA, no uptime guarantee (dev/test only)
- **Standard tier**: 99.95% SLA (or 99.99% with Availability Zones), Cluster Autoscaler, multiple node pools
- **Premium tier**: Standard + long-term support (LTS), Microsoft-backed patch SLA
- Upgrade: one minor version at a time; automatic upgrades available (patch, stable, rapid, node image channels)

```bash
# Create AKS cluster
az aks create \
  --resource-group myRG \
  --name myAKS \
  --node-count 3 \
  --node-vm-size Standard_D4s_v5 \
  --network-plugin azure \
  --network-plugin-mode overlay \
  --tier standard \
  --enable-managed-identity \
  --enable-oidc-issuer \
  --enable-workload-identity \
  --zones 1 2 3
```

## Node Pools

### System vs User Node Pools

```bash
# System pool (runs kube-system, CoreDNS, metrics-server)
az aks nodepool add \
  --resource-group myRG \
  --cluster-name myAKS \
  --name system \
  --node-count 3 \
  --node-vm-size Standard_D4s_v5 \
  --mode System \
  --node-taints CriticalAddonsOnly=true:NoSchedule

# User pool (application workloads)
az aks nodepool add \
  --resource-group myRG \
  --cluster-name myAKS \
  --name workers \
  --node-count 3 \
  --node-vm-size Standard_D8s_v5 \
  --mode User \
  --enable-cluster-autoscaler \
  --min-count 2 \
  --max-count 20 \
  --zones 1 2 3
```

**Best practice**: separate system and user node pools. Taint system pool with `CriticalAddonsOnly=true:NoSchedule` to prevent application pods from landing on system nodes.

### Specialized Node Pools

```bash
# GPU node pool
az aks nodepool add \
  --resource-group myRG \
  --cluster-name myAKS \
  --name gpu \
  --node-vm-size Standard_NC6s_v3 \
  --node-count 1 \
  --node-taints sku=gpu:NoSchedule \
  --labels workload=gpu

# Spot VM pool (cost optimization)
az aks nodepool add \
  --resource-group myRG \
  --cluster-name myAKS \
  --name spot \
  --priority Spot \
  --spot-max-price -1 \
  --eviction-policy Delete \
  --node-vm-size Standard_D4s_v5 \
  --enable-cluster-autoscaler \
  --min-count 0 \
  --max-count 10
```

## AKS Automatic

GA since 2026. Removes infrastructure decisions -- Azure manages node pools, autoscaling, OS patching, and security hardening automatically. Comparable to GKE Autopilot.

```bash
az aks create \
  --resource-group myRG \
  --name myAKS-auto \
  --sku automatic
```

**What AKS Automatic manages**:
- Node pool creation and sizing based on workload requirements
- OS patching and security updates
- Default security hardening (Pod Security Standards enforced)
- Network policy enforcement
- Built-in monitoring and logging

**When NOT to use AKS Automatic**:
- Custom node configurations needed (kernel tuning, custom kubelet settings)
- Specific VM SKUs required (GPU, high-memory, confidential computing)
- Windows containers
- Need for SSH access to nodes

## Node Auto Provisioning (NAP)

Karpenter-based node provisioning for AKS (GA early 2026):

```bash
az aks update --resource-group myRG --name myAKS --enable-node-auto-provisioning
```

NAP dynamically creates nodes matching pending pod requirements, similar to Karpenter on EKS. Selects optimal VM sizes and consolidates underutilized nodes.

## Networking

### CNI Options

| CNI | Pod IP Source | Performance | Use Case |
|-----|-------------|-------------|----------|
| kubenet | Non-VNet IPs (NAT) | Lower (NAT overhead) | Simple, IP conservation |
| Azure CNI | VNet IPs per pod | High (direct routing) | VNet integration needed |
| Azure CNI Overlay | Overlay IPs, node VNet IPs | High | Scale + VNet integration |
| Azure CNI + Cilium | eBPF dataplane | Highest | Best performance + observability |

**Azure CNI Overlay** (recommended for most new clusters): pods get IPs from a private overlay CIDR (e.g., 10.244.0.0/16), nodes get VNet IPs. Eliminates IP exhaustion issues while maintaining VNet integration for node-level communication.

**Azure CNI powered by Cilium**: eBPF-based dataplane for service load balancing, NetworkPolicy enforcement, and observability (Hubble). Replaces kube-proxy.

```bash
az aks create \
  --resource-group myRG \
  --name myAKS \
  --network-plugin azure \
  --network-plugin-mode overlay \
  --network-dataplane cilium
```

### Ingress Options

| Option | Type | Managed By |
|--------|------|-----------|
| Application Gateway Ingress Controller (AGIC) | L7 | Azure (add-on) |
| NGINX Ingress | L7 | Self-managed |
| Azure Service Mesh (Istio) | L7 + mTLS | Azure (add-on) |
| Internal Load Balancer | L4 | Azure (annotation) |

```yaml
# Internal load balancer annotation
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
```

## Workload Identity

Replaces the deprecated AAD Pod Identity. Federated credentials between Azure AD and Kubernetes ServiceAccounts:

```yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: storage-reader
  namespace: production
  annotations:
    azure.workload.identity/client-id: "CLIENT_ID_GUID"
  labels:
    azure.workload.identity/use: "true"
```

```bash
# Enable on cluster
az aks update --resource-group myRG --name myAKS \
  --enable-oidc-issuer --enable-workload-identity

# Create federated credential
az identity federated-credential create \
  --name aks-fed-cred \
  --identity-name myManagedIdentity \
  --resource-group myRG \
  --issuer "$(az aks show -g myRG -n myAKS --query oidcIssuerProfile.issuerUrl -o tsv)" \
  --subject "system:serviceaccount:production:storage-reader"
```

**Pod must have the label**: `azure.workload.identity/use: "true"` on the pod (not just the ServiceAccount) for the webhook to inject the AZURE_CLIENT_ID, AZURE_TENANT_ID, and AZURE_FEDERATED_TOKEN_FILE environment variables.

## AKS Add-ons

| Add-on | Purpose |
|--------|---------|
| Azure Monitor (Container Insights) | Metrics, logs, Live View |
| Azure Policy | OPA/Gatekeeper-based policy enforcement |
| Istio Service Mesh | mTLS, traffic management |
| Secrets Store CSI (Key Vault) | Mount Key Vault secrets as volumes |
| Defender for Containers | Runtime threat detection |
| Blob CSI Driver | Azure Blob storage volumes |
| Web App Routing | Managed NGINX ingress + cert management |

## Common Patterns

### Multi-Region HA

```bash
# Cluster per region
az aks create -g myRG-eastus -n aks-eastus --location eastus ...
az aks create -g myRG-westus -n aks-westus --location westus ...

# Azure Front Door for global load balancing
# Azure Traffic Manager for DNS-based failover
```

### Hybrid with Azure Arc

```bash
# Connect non-AKS cluster to Azure
az connectedk8s connect --name on-prem-cluster --resource-group myRG

# Deploy configurations via GitOps (Flux)
az k8s-configuration flux create \
  --name app-config \
  --cluster-name on-prem-cluster \
  --resource-group myRG \
  --cluster-type connectedClusters \
  --url https://github.com/myorg/k8s-config \
  --branch main
```

## Reference Files

- `references/architecture.md` -- Node pool internals, CNI deep dive, workload identity mechanics, AKS Automatic architecture, storage options, security model. Read for architecture and design questions.

Attribution

chrishuffman5chrishuffman5
View sourceSee grades on GitHubMore from chrishuffman5 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Terraform Module Library

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

401991 votes

sematext-otel

Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.

01 votes

Deployment Patterns

Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.

2699140 votes

Babysit

Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

971540 votes

V7 Roster

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953190 votes
View all in devops →