A hands-on training showing how to design, implement, test, and operate high-quality HTTP, streaming, and event-driven services with ASP.NET Core 10 and the .NET 10 stack including .NET Aspire.
Kubernetes for .NET Developers
Duration: 3 days
Hands-on workshop for developers and software architects (with a .NET focus) to design, containerize, deploy, and operate applications on Kubernetes. Builds on the Docker workshop as a prerequisite.
Audience
- .NET developers and architects deploying services to Kubernetes
- Teams standardizing on containers, microservices, or cloud-native practices
Prerequisites
- Docker fundamentals (see
docker-en.md)
- Basic C#/.NET and REST/HTTP familiarity
- Kubernetes CLI access (kubectl) and a local or cloud cluster (kind/AKS/minikube)
Learning Goals
- Understand core Kubernetes objects (Pods, Deployments, ReplicaSets, Services, Ingress)
- Package .NET apps into images and deploy via manifests and Helm
- Configure apps with ConfigMaps/Secrets and environment variables
- Expose services with Ingress and manage traffic
- Add health probes, resource limits/requests, and autoscaling (HPA)
- Observe applications with logs, events, and metrics
- Apply rollout strategies (rolling updates, blue/green, canary)
Outline
- Kubernetes fundamentals
- Control plane vs. nodes; declarative model; reconciliation loop
- Pods, ReplicaSets, Deployments; Services (ClusterIP/LoadBalancer)
- Building and packaging .NET apps
- Container images (multi-stage) and image registries
- Using
dotnet publish for containers; image tagging/versioning
- Configuration and secrets
- ConfigMaps, Secrets, env vars, mounted files; secret management practices
- Connection strings and appsettings patterns for .NET
- Networking and ingress
- Service types; DNS in-cluster
- Ingress controllers and routing basics
- Health, resources, and scaling
- Liveness/readiness probes for .NET apps
- Resource requests/limits; Horizontal Pod Autoscaler (HPA)
- Deployments and rollouts
- Rolling updates, rollbacks
- Blue/green and canary concepts (Helm/labels/Ingress approaches)
- Observability
- Logs, events,
kubectl diagnostics
- Metrics (Prometheus-compatible), basic dashboards
- Readiness for OpenTelemetry/Tracing integration
- Tooling and workflows
- kubectl basics; kubectl apply/rollout/logs/exec
- Helm charts (values, templates) for .NET services
- CI/CD considerations for image build, scan, deploy
- Aspire-assisted deployments
- Using the Aspire CLI to deploy services to Kubernetes
- Configuring AppHost to emit Helm charts and wire environment/config
- Combining Aspire models with existing manifests/Helm releases
Hands-on Labs
- Build and push a .NET service image (from Docker workshop base)
- Deploy a Deployment + Service; verify with kubectl and port-forwarding
- Add ConfigMap/Secret-based configuration; consume in the .NET app
- Configure liveness/readiness probes and resource requests/limits
- Expose via Ingress and validate routing
- Scale with HPA and observe behavior under load
- Perform a rolling update and rollback
- Use the Aspire CLI to deploy the service to Kubernetes and inspect the release
- Configure AppHost to generate Helm charts and apply them to the cluster
Outcomes
- Working Kubernetes manifests/Helm chart for a .NET service
- Practical skills for configuring, scaling, and exposing .NET apps on Kubernetes
- Confidence using kubectl/Helm and applying health, config, and rollout best practices