Kubernetes Engineering Projects
Every project below is a real Kubernetes problem teams hit in production - CrashLoopBackOff, ImagePullBackOff, services with no endpoints, scaling and network lockdown. Complete it in a live cluster workspace and it lands on your portfolio.
Get started - freeLive cloud workspace in your browser · nothing to install
33 projects to build
Fix a Kubernetes CrashLoopBackOffRead the pod's events + logs, found a typo in the container command, and corrected the Deployment so it startsHeal a Kubernetes Service With No EndpointsRealigned the Service's label selector with the Deployment's pod labels - endpoints repopulated and traffic flFix a Kubernetes ImagePullBackOffSpotted a bad image tag in the Deployment via describe-events, corrected the reference, and watched the pull sSchedule a Pending Kubernetes PodRead the scheduler's "didn't fit" reason from describe-events, removed an impossible nodeSelector, and the podReconnect a Pod to Its ConfigMapSpotted the missing-ConfigMap error in describe-events, matched the Deployment's reference to the real ConfigMCorrect a Kubernetes Service targetPortMatched the Service's targetPort to the container's containerPort - connection-refused errors disappearedComplete a Stuck Kubernetes JobRead the failing pod's logs, fixed the bad command in the Job's template, deleted + reapplied so the new templScale a Kubernetes DeploymentSpotted the Deployment scaled to zero replicas, set replicas back to a sane number, watched pods come upPoint a Pod at the Right Secret KeyFound the missing-key error in describe-events, matched the Deployment's secretKeyRef to a key the Secret actuResolve a Selector and Label MismatchAligned the Deployment's selector with its template labels - kubectl apply accepted the manifestWrite a Production Kubernetes DeploymentCreated a Deployment + Service from spec - zero-downtime rolling updates (maxUnavailable=0), resource limits, Write a Kubernetes CronJob for DB BackupsAdded the AWS endpoint + credential env vars to the snapshot CronJob so the Job pod could reach the cluster's Sync AWS SSM Into a Pod With an Init ContainerAdded the missing AWS env block to the init container so it could reach the cluster's SSM endpoint and write tMount a Missing ConfigMap Into a PodAdded the volumeMounts + volumes block so the app-config ConfigMap mounts at /etc/config inside the pod; the cOrder Kubernetes Manifests TopologicallyImplemented Kahn's algorithm in `order_apply`: builds an in-degree map, repeatedly emits any node with zero inWrite a PodDisruptionBudget and Spread ConstraintsAdded a PDB with `minAvailable: 2` and topologySpreadConstraints (max-skew 1 across `kubernetes.io/hostname`) Write and Lint a Helm ChartBuilt a minimal Helm chart for the `web` deployment with values-driven image tag + replica count, validated viWrite an HPA That Scales on a Custom MetricWrote an `autoscaling/v2` HPA that scales the web deployment on a custom Pods-type metric (`http_requests_per_Configure a Kubernetes HPA for AutoscalingCreated a HorizontalPodAutoscaler (autoscaling/v2) targeting the api Deployment with min=2 max=10 replicas andRelease a New Image With a Rolling UpdateBumped the api Deployment from nginx:1.26-alpine to nginx:1.27-alpine and watched kubectl rollout status drainAdd Liveness and Readiness Probes to a DeploymentAdded HTTP readiness and liveness probes to the web Deployment so traffic only reaches Ready pods and hung podCreate a Service to Expose a DeploymentCreated a ClusterIP Service whose selector matches the web Deployment and whose targetPort hits the container,Set CPU and Memory Requests and LimitsSet CPU and memory requests and limits on the worker Deployment so the scheduler can place it predictably and Schedule a Recurring Task with a CronJobCreated a CronJob that runs a recurring task on a cron schedule with a bounded historyStore a Credential in a Secret and AWS Secrets ManagerCopied a Kubernetes Secret's value into AWS Secrets Manager so the credential has a managed source of truth ouInject a Secret into a Pod as Environment VariablesInjected the db-creds Secret into the api container as environment variables via envFrom so the app reads its Lock Down a Namespace With a NetworkPolicyCreated a NetworkPolicy (app-default-deny-ingress) with podSelector matching all pods and policyTypes Ingress Write a Helm Chart for a Multi-Service AppFilled in the Helm chart templates - Deployment and Service - to render with values from values.yaml (image, rRun a Multi-Container Pod with a SidecarAdded a sidecar container alongside the app in the same pod, sharing the pod network and a volume so the sidecSpread Replicas with Pod Anti-AffinityAdded pod anti-affinity so the Deployment's replicas prefer to land on different nodes, improving availabilityHarden a Pod with a securityContextHardened the worker pod with a securityContext - non-root, no privilege escalation, read-only root filesystem,Add a startupProbe for a Slow-Starting AppAdded a startupProbe so a slow-starting container isn't killed by the liveness probe before it finishes bootinPin a Deployment to Nodes with nodeSelector and TolerationsPinned the batch workload to a dedicated node pool with a nodeSelector and a matching toleration for the pool'
Plus 16+ more Kubernetes projects in the workspace, with new ones added regularly.
More for Kubernetes engineers
Do real production work, free. Live cloud workspaces in your browser - every project you complete lands on your portfolio.
Get started - free