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.
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.
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.
A worker node dropped to NotReady and part of the workload went with it. The container runtime is fine and the control plane is healthy; the trail leads from kubectl symptoms down into systemd and the kubelet configuration. Diagnose the node and bring it back.
A Snake game Deployment and ClusterIP Service are already running in the snake namespace. Create a Traefik Ingress that serves the game over HTTPS using an existing cert-manager-issued TLS Secret.
Export an Alpine container rootfs using crane, set up a chroot environment, and execute a musl-linked binary that fails to run on the host system.
A stubborn process is running on the system, kill it :)
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.
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.
Refactor a slow, single-threaded C file downloader that fetches files sequentially into a multi-threaded program using POSIX Threads (pthreads) to achieve concurrent downloads.
Create a multi-container Pod with different user IDs per container while sharing a common group ID at the Pod level for collaborative file access.
Write a C program that calls fork() to clone a process and execve() to execute a command, then print and retrieve the child process PID.