Challenges

Focused, hands-on problems for sharpening your DevOps and server-side skills. Some teach specific concepts while others mirror real-world scenarios. Every challenge includes hints, feedback, and automated solution checks.

Collection
Category
Difficulty
Challenge ·Medium

Debug a Pod Stuck at 0/1 Ready Due to a Readiness Probe

A new intern learning about probes wrote a small Pod manifest. The exec command and the application are both correct, but the Pod never becomes Ready because one probe parameter is missing. Find it and add it.

Submissions: 22/29
Challenge ·Easy

Pick and Deploy the Least Permissive NetworkPolicy

The security team left five NetworkPolicy files on the workstation. Only one of them lets the frontend reach the backend while granting nothing more. Identify it and deploy it, unchanged.

Submissions: 10/10
Challenge ·Hard

Migrate the Kubernetes Cluster DNS Domain from cluster.local to iximiuz.cluster

Learn how to reconfigure the Kubernetes cluster DNS domain by updating CoreDNS ConfigMap and kubelet configuration on all nodes, a critical skill for custom cluster networking and CKA exam preparation.

Submissions: 20/26
Challenge ·Easy

Port-Forward a Kubernetes Service to localhost

A Deployment running a distroless Chainguard nginx image (cgr.dev/chainguard/nginx) is deployed in the namespace webapps, fronted by a ClusterIP Service. Port-forward that Service to localhost port 3333 on cplane-01, use curl to save the response body to /home/laborant/index.html, and verify the file is accessible and contains the expected content.

Submissions: 45/50
Challenge ·Easy

Debug a Failing Kubernetes Job

A Job manifest at /home/laborant/batch-job.yaml is exiting with a non-zero exit status. The Job has limited retries configured. Inspect the cluster and the manifest to find the bug, fix it, and reapply.

Submissions: 61/74
Challenge ·Medium

Extend kubectl with a Custom Image-Inspection Plugin

A helper script that lists every container image running in the cluster — along with its on-disk size and the workload that uses it — has been downloaded to cplane-01. Install it as a kubectl plugin named kubectl-images so that kubectl images works from any directory.

Submissions: 20/23
Challenge ·Medium

Provision Ephemeral Storage for a Pod Using a Generic Ephemeral Volume

Create a Pod that uses a generic ephemeral volume backed by a dynamic StorageClass. Unlike emptyDir, ephemeral volumes are provisioned as PersistentVolumeClaims and support storage requests and access modes.

Submissions: 25/29