Back to path
SmallWeekend build ~6h· 4 milestones

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.

Kubernetes Deployments/ServicesProbesConfigMaps/SecretsResource requests & limitsHPAYAMLkubectl observability (logs/metrics)Resource cost awareness

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:

k8s/deployment.yamlyaml
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-2

Reading 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. 1

    Deploy with health checks that mean something

    5 guided steps

    Probes 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. 2

    Externalize configuration and secrets

    5 guided steps

    Baking 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. 3

    Bound resources and autoscale under load

    5 guided steps

    Without 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. 4

    Sanity-check what it logs and what it costs

    5 guided steps

    A 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

4 starter files, ready to clone
4 guided milestones
4 full reference solutions
8 code blocks explained line-by-line
4 "is it working?" checks
4 interview questions it prepares you for

You'll walk away with

A manifest repo (Deployment, Service, ConfigMap, Secret, HPA) for the service
A short demo or recording of the HPA scaling up under load and back down
A note on your probe design and the request/limit values you chose and why
A one-line cost note: worst-case reservation (requests × max replicas) and its rough monthly figure

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