.NET
Backend-Entwicklung
DevOps

Kubernetes für .NET-Entwickler

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

  1. Kubernetes-Grundlagen
    • Control Plane vs. Nodes; deklaratives Modell; Reconciliation Loop
    • Pods, ReplicaSets, Deployments; Services (ClusterIP/LoadBalancer)
  2. .NET-Apps bauen und paketieren
    • Container-Images (Multi-Stage) und Registries
    • dotnet publish für Container; Image-Tagging/Versionierung
  3. Konfiguration und Secrets
    • ConfigMaps, Secrets, Env Vars, gemountete Dateien; Secret-Management
    • Connection Strings und appsettings-Muster für .NET
  4. Networking und Ingress
    • Service-Typen; DNS im Cluster
    • Ingress-Controller und Routing-Grundlagen
  5. Health, Ressourcen und Skalierung
    • Liveness/Readiness-Probes für .NET-Apps
    • Ressourcen-Requests/-Limits; Horizontal Pod Autoscaler (HPA)
  6. Deployments und Rollouts
    • Rolling Updates, Rollbacks
    • Blue/Green- und Canary-Konzepte (Helm/Labels/Ingress)
  7. Observability
    • Logs, Events, kubectl-Diagnose
    • Metriken (Prometheus-kompatibel), Basis-Dashboards
    • Vorbereitung für OpenTelemetry/Tracing-Integration
  8. 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
  9. 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
An unhandled error has occurred. Reload 🗙