- Authors

- Name
- Phillip Pham
- @ddppham
TL;DR
- AKS Control Plane ist kostenlos -- Sie zahlen nur fuer die Worker-VMs
- Mit
az aks createsteht ein funktionsfaehiger Cluster in ca. 8 Minuten - Azure CNI fuer Produktion (Pod-IPs im VNet), kubenet fuer Dev/Lernen (einfacher, guenstiger)
- Dieses Tutorial fuehrt Sie von Null zur laufenden Web-App mit Load Balancer
- Gesamtkosten fuer den Tutorial-Cluster: ca. 45 EUR/Monat (2 Nodes Standard_B2s)
Voraussetzungen
Bevor wir starten, brauchen Sie drei Dinge:
- Azure-Account mit aktivem Abonnement (ein kostenloses Konto reicht fuer den Anfang)
- Azure CLI installiert
- ca. 30 Minuten Zeit
Azure CLI installieren
# macOS
brew install azure-cli
# Linux (Debian/Ubuntu)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# Windows
winget install Microsoft.AzureCLI
# Anmelden
az login
# Pruefen, ob das richtige Abonnement aktiv ist
az account show --query "{name:name, id:id}" -o table
kubectl installieren
# Ueber die Azure CLI (funktioniert auf allen Plattformen)
az aks install-cli
# Version pruefen
kubectl version --client
Schritt 1: Resource Group und Cluster erstellen
# Resource Group in West Europe (Niederlande) -- guenstig fuer Tutorials
# Fuer Produktion: germanywestcentral oder westeurope
az group create \
--name aks-tutorial-rg \
--location westeurope
# AKS-Cluster erstellen
az aks create \
--resource-group aks-tutorial-rg \
--name mein-erster-cluster \
--node-count 2 \
--node-vm-size Standard_B2s \
--generate-ssh-keys \
--network-plugin kubenet
# Dauer: ca. 6-8 Minuten
Was passiert hier?
--node-count 2: Zwei Worker-VMs (reicht zum Ausprobieren)--node-vm-size Standard_B2s: Guenstigste brauchbare VM-Groesse (2 vCPU, 4 GB RAM, ~22 EUR/Monat pro Node)--network-plugin kubenet: Einfacheres Networking, ideal zum Lernen- Die Control Plane (API-Server, etcd, Scheduler) wird von Azure verwaltet und kostet nichts extra
Cluster-Zugriff einrichten
# kubeconfig herunterladen
az aks get-credentials \
--resource-group aks-tutorial-rg \
--name mein-erster-cluster
# Verbindung testen
kubectl get nodes
Erwartete Ausgabe:
NAME STATUS ROLES AGE VERSION
aks-nodepool1-12345678-vmss000000 Ready <none> 3m v1.31.2
aks-nodepool1-12345678-vmss000001 Ready <none> 3m v1.31.2
Zwei Nodes im Status Ready -- der Cluster laeuft.
Schritt 2: Erste Anwendung deployen
Wir deployen eine einfache Nginx-Anwendung mit einem LoadBalancer-Service.
Deployment-Manifest erstellen
Erstellen Sie eine Datei app.yaml:
# app.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-aks
spec:
replicas: 2
selector:
matchLabels:
app: hello-aks
template:
metadata:
labels:
app: hello-aks
spec:
containers:
- name: nginx
image: nginx:1.27-alpine
ports:
- containerPort: 80
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: hello-aks-service
spec:
type: LoadBalancer
selector:
app: hello-aks
ports:
- port: 80
targetPort: 80
Anwenden und pruefen
# Deployment erstellen
kubectl apply -f app.yaml
# Pod-Status beobachten
kubectl get pods -w
# Warten, bis beide Pods "Running" und "Ready" (1/1) sind
# Dann Ctrl+C druecken
# Service pruefen -- EXTERNAL-IP braucht 1-2 Minuten
kubectl get service hello-aks-service -w
Sobald die EXTERNAL-IP sichtbar ist (keine <pending> mehr), oeffnen Sie die IP im Browser. Sie sehen die Nginx-Willkommensseite.
# Externe IP abfragen
kubectl get service hello-aks-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
Glueckwunsch -- Ihre erste App laeuft auf Kubernetes.
Schritt 3: Skalierung ausprobieren
# Auf 5 Replicas hochskalieren
kubectl scale deployment hello-aks --replicas=5
# Status pruefen
kubectl get pods -o wide
# Der Load Balancer verteilt automatisch auf alle Pods
Fuer automatische Skalierung koennen Sie einen Horizontal Pod Autoscaler einrichten:
# hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: hello-aks-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: hello-aks
minReplicas: 2
maxReplicas: 8
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
kubectl apply -f hpa.yaml
kubectl get hpa
Azure CNI vs. kubenet
Die Wahl des Netzwerk-Plugins ist eine der wichtigsten Entscheidungen bei AKS:
| Kriterium | kubenet | Azure CNI |
|---|---|---|
| Pod-Networking | NAT, eigener IP-Bereich | Pods erhalten IPs direkt aus dem VNet |
| Performance | Gut, ein Hop mehr | Besser, direkte Erreichbarkeit |
| IP-Verbrauch | Gering (nur Node-IPs im VNet) | Hoch (jeder Pod braucht eine VNet-IP) |
| Netzwerk-Policies | Calico (manuell) | Azure Network Policies oder Calico |
| Zugriff von VMs/VPN | Nur ueber Node-IP + Port | Pods direkt erreichbar |
| Empfehlung | Dev, Lernen, kleine Workloads | Produktion, Enterprise |
Fuer dieses Tutorial verwenden wir kubenet (einfacher, weniger IP-Planung). Fuer Produktion empfiehlt sich Azure CNI mit Overlay-Networking -- das kombiniert direkte Pod-Erreichbarkeit mit geringerem IP-Verbrauch.
Monitoring mit Azure Monitor
AKS bietet integriertes Monitoring ueber Container Insights:
# Container Insights aktivieren (falls nicht bei der Cluster-Erstellung geschehen)
az aks enable-addons \
--addons monitoring \
--resource-group aks-tutorial-rg \
--name mein-erster-cluster
Nuetzliche kubectl-Befehle fuer Monitoring
# CPU/Memory-Verbrauch der Pods
kubectl top pods
# CPU/Memory-Verbrauch der Nodes
kubectl top nodes
# Events im Cluster (hilfreich bei Problemen)
kubectl get events --sort-by='.lastTimestamp' | tail -20
# Detaillierte Pod-Informationen
kubectl describe pod <pod-name>
# Logs eines Pods anzeigen
kubectl logs <pod-name>
# Logs live verfolgen
kubectl logs -f <pod-name>
Im Azure Portal finden Sie unter dem AKS-Cluster den Bereich Insights mit Metriken zu CPU, Memory, Netzwerk und Container-Logs.
Troubleshooting: Die 5 haeufigsten Probleme
1. Pod bleibt in "Pending"
kubectl describe pod <pod-name>
# Haeufigste Ursache: Nicht genug Ressourcen auf den Nodes
# Loesung: Node-Pool skalieren oder Resource Requests reduzieren
az aks nodepool scale \
--resource-group aks-tutorial-rg \
--cluster-name mein-erster-cluster \
--name nodepool1 \
--node-count 3
2. ImagePullBackOff
kubectl describe pod <pod-name>
# Image-Name pruefen -- Tippfehler sind die haeufigste Ursache
# Bei privaten Registries: imagePullSecret konfigurieren
3. CrashLoopBackOff
# Logs des abgestuerzten Containers pruefen
kubectl logs <pod-name> --previous
# Haeufige Ursachen:
# - Anwendung startet nicht (fehlende Env-Vars, Config)
# - Liveness Probe zu aggressiv (initialDelaySeconds erhoehen)
# - Out of Memory (Memory-Limit erhoehen)
4. Service hat keine External IP
kubectl describe service <service-name>
# Events pruefen -- oft fehlen Berechtigungen fuer den Load Balancer
# Oder: Limit fuer oeffentliche IPs im Abonnement erreicht
5. kubectl kann nicht verbinden
# Credentials neu laden
az aks get-credentials \
--resource-group aks-tutorial-rg \
--name mein-erster-cluster \
--overwrite-existing
# Cluster-Status pruefen
az aks show \
--resource-group aks-tutorial-rg \
--name mein-erster-cluster \
--query "powerState" -o table
Kosten im Griff behalten
Cluster stoppen, wenn er nicht gebraucht wird
# Cluster stoppen (spart die Node-Kosten)
az aks stop \
--resource-group aks-tutorial-rg \
--name mein-erster-cluster
# Cluster wieder starten
az aks start \
--resource-group aks-tutorial-rg \
--name mein-erster-cluster
Dev/Test-Cluster guenstig betreiben
| Massnahme | Ersparnis |
|---|---|
az aks stop nachts und am Wochenende | ~65% |
| Standard_B2s statt Standard_D2s_v5 | ~50% |
| Spot Node Pools fuer nicht-kritische Workloads | ~60-70% |
| Free Tier nutzen (1 Cluster kostenlos) | Control-Plane-Kosten = 0 |
Alles aufraeumen (Tutorial beenden)
# Gesamte Resource Group loeschen (Cluster + alle Ressourcen)
az group delete --name aks-tutorial-rg --yes --no-wait
Naechste Schritte nach dem Tutorial
Wenn der erste Cluster laeuft, sind das die sinnvollen naechsten Themen:
- Ingress Controller einrichten -- Statt pro Service einen Load Balancer zu bezahlen, leitet ein Ingress Controller (z.B. Nginx oder Azure Application Gateway) Traffic anhand von Hostnames weiter
- Azure Container Registry (ACR) -- Eigene Images bauen und sicher speichern, nahtlose Integration mit AKS
- Namespaces fuer Umgebungen -- Dev, Staging und Produktion im selben Cluster trennen
- GitOps mit ArgoCD -- Deployments automatisieren, siehe unseren ArgoCD Enterprise Guide
- Security Basics -- Network Policies, Pod Security Standards, RBAC
Weiterführende Artikel
- ArgoCD GitOps im Unternehmen
- Kubernetes Monitoring und Observability
- Helm Package Management
- Kubernetes Security Hardening
FAQ
Was kostet AKS? Die Control Plane ist im Free Tier kostenlos. Sie zahlen nur fuer die Worker-VMs. Ein kleiner 2-Node-Cluster mit Standard_B2s kostet ca. 45 EUR/Monat. Mit az aks stop koennen Sie den Cluster pausieren und zahlen nichts.
AKS vs. EKS -- was soll ich nehmen? Wenn Ihr Unternehmen bereits Azure nutzt (Microsoft 365, Azure AD), ist AKS die natuerliche Wahl wegen der nahtlosen Integration. Fuer AWS-Shops gilt dasselbe fuer EKS. Die Kubernetes-API ist identisch -- Ihr Wissen ist uebertragbar.
Brauche ich Docker auf meinem Rechner? Nein. Zum Deployen auf AKS genuegen az cli und kubectl. Docker brauchen Sie nur, wenn Sie lokal Images bauen wollen. Alternativ baut Azure Container Registry Images fuer Sie (az acr build).
Wie sicher ist AKS? AKS bietet automatische Sicherheitsupdates fuer die Control Plane, integriertes RBAC ueber Azure AD, Network Policies und Integration mit Microsoft Defender for Containers. Fuer DSGVO-Compliance nutzen Sie die Region germanywestcentral.
Bereit fuer den naechsten Schritt? Wenn Sie AKS produktionsreif aufsetzen oder Ihre bestehende Kubernetes-Umgebung optimieren moechten, sprechen Sie uns an. Wir helfen Ihnen bei Architektur, Security und Betrieb.
📖 Verwandte Artikel
Weitere interessante Beiträge zu ähnlichen Themen
AKS Kostenrechner 2026: GPU-Workloads & Kostenoptimierung
AKS-Kostenrechner 2026: Berechnen Sie Ihre Azure Kubernetes Service Kosten inkl. GPU-Workloads. Interaktiver Kostenrechner mit Optimierungspotenzial-Analyse.
Agentic AI auf Kubernetes: Was in der Praxis zählt
Agentic AI auf Kubernetes: Warum K8s das Substrat bleibt, welche Schichten (Inference bis Agents) zählen und wo Sandbox, Scheduling und Kosten knifflig werden.
Managed Kubernetes vs. Selbst-Betreiben: TCO-Vergleich 2026
Managed Kubernetes vs. Selbst-Betreiben: 3-Jahres-TCO-Vergleich mit realen €-Beträgen. Break-even-Analyse je nach Teamgröße: Zahlen statt Bauchgefühl.
Managed Kubernetes für SaaS: TCO-Vergleich & Guide 2026
Managed Kubernetes für SaaS-Anbieter 2026: TCO-Vergleich AKS vs EKS vs GKE für 15-Node-Cluster. Kosten, DSGVO, SLA & Egress: Die komplette Kaufentscheidung.
EKS vs AKS vs GKE: Managed Kubernetes im Vergleich
AWS EKS, Azure AKS und Google GKE im direkten Vergleich: Preise, Netzwerk, Features und DSGVO-Konformität für deutsche Unternehmen.
CKA Zertifizierung: Kubernetes Administrator bestehen (2026)
CKA 2026: Kubernetes Administrator-Zertifizierung bestehen. Lernplan, Prüfungsstrategie, Tools und 200+ Praxisübungen für die beliebteste K8s-Cert.
CKAD Zertifizierung: Kubernetes App Developer Guide (2026)
CKAD 2026: Kubernetes App Developer Zertifizierung bestehen. Lernplan, Prüfungsstrategie, YAML-Patterns und 200+ Übungsfragen für Devs.
Helm Charts für Anfänger: Kubernetes-Pakete erstellen (2026)
Helm Charts für Anfänger: Charts verstehen, CLI-Befehle nutzen, erstes Chart erstellen. Vollständiger Guide für Kubernetes-Paketmanagement mit YAML-Beispielen.