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. Fix it in a live cluster workspace and it lands on your portfolio.

26 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 startskuberneteskubectlpodsHeal a Kubernetes Service With No EndpointsRealigned the Service's label selector with the Deployment's pod labels - endpoints repopulated and traffic flkuberneteskubectlservicesFix a Kubernetes ImagePullBackOffSpotted a bad image tag in the Deployment via describe-events, corrected the reference, and watched the pull skuberneteskubectlimagesSchedule a Pending Kubernetes PodRead the scheduler's "didn't fit" reason from describe-events, removed an impossible nodeSelector, and the podkuberneteskubectlschedulingCorrect a Kubernetes Service targetPortMatched the Service's targetPort to the container's containerPort - connection-refused errors disappearedkuberneteskubectlservicesComplete a Stuck Kubernetes JobRead the failing pod's logs, fixed the bad command in the Job's template, deleted + reapplied so the new templkuberneteskubectljobsScale a Kubernetes DeploymentSpotted the Deployment scaled to zero replicas, set replicas back to a sane number, watched pods come upkuberneteskubectldeploymentsResolve a Selector and Label MismatchAligned the Deployment's selector with its template labels - kubectl apply accepted the manifestkuberneteskubectldeploymentsWrite a Production Kubernetes DeploymentCreated a Deployment + Service from spec - zero-downtime rolling updates (maxUnavailable=0), resource limits, kuberneteskubectldeploymentsWrite 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 kuberneteskubectlcronjobMount a Missing ConfigMap Into a PodAdded the volumeMounts + volumes block so the app-config ConfigMap mounts at /etc/config inside the pod; the ckuberneteskubectlconfigmapWrite a PodDisruptionBudget and Spread ConstraintsAdded a PDB with `minAvailable: 2` and topologySpreadConstraints (max-skew 1 across `kubernetes.io/hostname`) kuberneteskubectlpdbWrite 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_kuberneteshpaautoscalingConfigure a Kubernetes HPA for AutoscalingCreated a HorizontalPodAutoscaler (autoscaling/v2) targeting the api Deployment with min=2 max=10 replicas andkuberneteskubectlhpaRelease 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 drainkuberneteskubectldeploymentsAdd Liveness and Readiness Probes to a DeploymentAdded HTTP readiness and liveness probes to the web Deployment so traffic only reaches Ready pods and hung podkuberneteskubectlprobesCreate a Service to Expose a DeploymentCreated a ClusterIP Service whose selector matches the web Deployment and whose targetPort hits the container,kuberneteskubectlservicesSet CPU and Memory Requests and LimitsSet CPU and memory requests and limits on the worker Deployment so the scheduler can place it predictably and kuberneteskubectlresourcesInject 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 kuberneteskubectlsecretsLock Down a Namespace With a NetworkPolicyCreated a NetworkPolicy (app-default-deny-ingress) with podSelector matching all pods and policyTypes Ingress kubernetesnetworkpolicysecurityWrite a Helm Chart for a Multi-Service AppFilled in the Helm chart templates - Deployment and Service - to render with values from values.yaml (image, rkuberneteshelmchartsRun 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 sideckuberneteskubectlsidecarSpread Replicas with Pod Anti-AffinityAdded pod anti-affinity so the Deployment's replicas prefer to land on different nodes, improving availabilitykuberneteskubectlaffinityHarden a Pod with a securityContextHardened the worker pod with a securityContext - non-root, no privilege escalation, read-only root filesystem,kuberneteskubectlsecuritycontextAdd a startupProbe for a Slow-Starting AppAdded a startupProbe so a slow-starting container isn't killed by the liveness probe before it finishes bootinkuberneteskubectlprobesPin 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'kuberneteskubectlnodeselector

Plus 23+ more Kubernetes projects in the workspace, with new ones added regularly.

More for Kubernetes engineers

Kubernetes roadmapInterview questionsResume projectsCareer guide

Build your Kubernetes portfolio free. Fix real systems in a live cloud workspace - every fix is yours to keep.

Start free →