Deploy a microservice to Kubernetes the right way
Anyone can `kubectl apply` a YAML and call it done. You deploy a service the way it should actually run in production: health-checked so the platform can heal it, configured cleanly so the image is environment-agnostic, resource-bounded so it can’t starve its neighbours, and able to scale automatically under load.
What you'll build
A microservice running on Kubernetes with correct liveness/readiness/startup probes, ConfigMap- and Secret-based configuration, resource requests and limits, and a Horizontal Pod Autoscaler you’ve proven scales the service up under real load and back down when it subsides.
See how we teach, before you sign up
You don't just get code dumped on you. Every starter file and every solution is explained line-by-line, in plain English. Here's one real file from this project:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
labels:
app: web
spec:
replicas: 2
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: ghcr.io/your-org/web:1.0.0 # your image
ports:
- containerPort: 8080
# probes, resources, envFrom added in milestones 1-2Reading this file
kind: DeploymentA Deployment keeps a set of identical pods running and replaces them if they die, the standard way to run a stateless app.replicas: 2Asks Kubernetes to keep two copies of the pod running so the app survives one pod failing.matchLabels: app: webTells the Deployment which pods it owns by matching this label, it must line up with the pod template labels.image: ghcr.io/...:1.0.0Pins the exact container image and version to run, swap this for your own built image.containerPort: 8080Documents the port the app listens on inside the container, the Service forwards traffic here.
A skeleton Deployment, you add probes, resources, and config refs milestone by milestone.
That's 1 of 8 explained code blocks in this single project.
The build, milestone by milestone
- 1
Deploy with health checks that mean something
5 guided stepsProbes are how Kubernetes self-heals and routes traffic safely. Wrong probes are worse than none, they restart healthy pods or send traffic to ones that aren’t ready yet.
- 2
Externalize configuration and secrets
5 guided stepsBaking config or credentials into an image means a rebuild for every environment and secrets leaking into your registry. Externalized config is the line between a demo and a deployable artifact.
- 3
Bound resources and autoscale under load
5 guided stepsWithout requests the scheduler can’t place pods sanely; without limits one pod can starve a node. The HPA is what turns a fixed deployment into one that responds to demand, and you only trust it once you’ve seen it react.
- 4
Sanity-check what it logs and what it costs
5 guided stepsA service you can’t inspect when it misbehaves and can’t price against a node is a demo, not an operable workload, and on Kubernetes you pay for what you request, not what you use.
What's inside when you start
You'll walk away with
This is portfolio-grade. Build it free.
Sign up to unlock every milestone step-by-step, the code skeletons, full reference solutions, and checkable tasks, with your progress saved as you build.
Start building