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.
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.
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.
The application fleet lives inside a private VPC, reachable only through a locked-down bastion that refuses to give you a shell. Find a way to jump through the bastion and place a maintenance lock on two misbehaving servers.
A new service needs to run in your development environment, but the port it requires is already in use by another app that has to keep working. Diagnose the conflict, free the port without taking the other app down, and get both services running side by side - a realistic exercise in untangling local port conflicts.
A systemd-managed worker process starts cleanly, prints a few heartbeat lines, then silently vanishes - over and over again. Diagnose why the process keeps dying and stabilize the service.
An image conversion daemon was installed from a vendor package, but it fails to start. Diagnose why the binary cannot be loaded and fix the installation.
A system daemon crashes on startup with a cryptic, non-actionable error message. Investigate the failure, identify its root cause, and get the service running.
Leverage your knowledge of Linux namespaces to reach an application's internal debug interface without installing anything into the container.
Learn how to run multiple Docker containers sharing the same PID, IPC, and network namespaces - a foundation of many advanced container use cases, including Kubernetes Pods construction and container debugging tools.
Can you resolve issues with a Node.js container's termination process to ensure graceful shutdown on 'docker stop'?
Can you make a container exit gracefully after the 'docker stop' command while preserving its extensible entrypoint mechanism?