Dreitägiger Praxis-Workshop für .NET-Entwickler und Architekten: Kubernetes-Grundlagen, Containerisierung, Deployments, Konfiguration, Ingress, Health Probes, Autoscaling, Rollout-Strategien und Observability.
Kubernetes für .NET-Entwickler
Dauer: 3 Tage
Praxis-Workshop für Entwickler und Softwarearchitekten (mit .NET-Fokus) zum Entwerfen, Containerisieren, Deployen und Betreiben von Anwendungen auf Kubernetes. Baut auf dem Docker-Workshop als Voraussetzung auf.
Zielgruppe
- .NET-Entwickler und -Architekten, die Services auf Kubernetes bereitstellen
- Teams, die auf Container, Microservices oder Cloud-native setzen
Voraussetzungen
- Docker-Grundlagen (siehe
docker-en.md)
- Basiswissen in C#/.NET und REST/HTTP
- Zugriff auf die Kubernetes-CLI (kubectl) und einen lokalen oder Cloud-Cluster (kind/AKS/minikube)
Lernziele
- Zentrale Kubernetes-Objekte verstehen (Pods, Deployments, ReplicaSets, Services, Ingress)
- .NET-Apps als Images paketieren und per Manifeste und Helm deployen
- Anwendungen mit ConfigMaps/Secrets und Umgebungsvariablen konfigurieren
- Services per Ingress veröffentlichen und Traffic steuern
- Health Probes, Ressourcenlimits/-requests und Autoscaling (HPA) hinzufügen
- Anwendungen über Logs, Events und Metriken beobachten
- Rollout-Strategien anwenden (Rolling Updates, Blue/Green, Canary)
Agenda
- Kubernetes-Grundlagen
- Control Plane vs. Nodes; deklaratives Modell; Reconciliation Loop
- Pods, ReplicaSets, Deployments; Services (ClusterIP/LoadBalancer)
- .NET-Apps bauen und paketieren
- Container-Images (Multi-Stage) und Registries
dotnet publish für Container; Image-Tagging/Versionierung
- Konfiguration und Secrets
- ConfigMaps, Secrets, Env Vars, gemountete Dateien; Secret-Management
- Connection Strings und appsettings-Muster für .NET
- Networking und Ingress
- Service-Typen; DNS im Cluster
- Ingress-Controller und Routing-Grundlagen
- Health, Ressourcen und Skalierung
- Liveness/Readiness-Probes für .NET-Apps
- Ressourcen-Requests/-Limits; Horizontal Pod Autoscaler (HPA)
- Deployments und Rollouts
- Rolling Updates, Rollbacks
- Blue/Green- und Canary-Konzepte (Helm/Labels/Ingress)
- Observability
- Logs, Events,
kubectl-Diagnose
- Metriken (Prometheus-kompatibel), Basis-Dashboards
- Vorbereitung für OpenTelemetry/Tracing-Integration
- Tooling und Workflows
- kubectl-Grundlagen; apply/rollout/logs/exec
- Helm Charts (Values, Templates) für .NET-Services
- CI/CD-Aspekte für Image-Build, Scan, Deploy
- Aspire-gestützte Deployments
- Aspire CLI für Deployments nach Kubernetes nutzen
- AppHost konfigurieren, um Helm Charts zu erzeugen und Env/Config zu verdrahten
- Aspire-Modelle mit bestehenden Manifesten/Helm-Releases kombinieren
Praktische Übungen
- Ein .NET-Service-Image (Basis aus dem Docker-Workshop) bauen und pushen
- Ein Deployment + Service ausrollen; mit kubectl und Port-Forwarding prüfen
- ConfigMap/Secret-basierte Konfiguration hinzufügen und in der .NET-App nutzen
- Liveness/Readiness-Probes sowie Ressourcen-Requests/-Limits konfigurieren
- Über Ingress veröffentlichen und Routing validieren
- Mit HPA skalieren und Verhalten unter Last beobachten
- Rolling Update und Rollback durchführen
- Mit der Aspire CLI nach Kubernetes deployen und das Release inspizieren
- AppHost so konfigurieren, dass Helm Charts generiert und auf den Cluster angewendet werden
Ergebnisse
- Funktionierende Kubernetes-Manifeste/Helm-Chart für einen .NET-Service
- Praxiswissen für Konfiguration, Skalierung und Exponierung von .NET-Apps auf Kubernetes
- Sicherheit im Umgang mit kubectl/Helm sowie Health-, Config- und Rollout-Best Practices