Challenges

Focused, hands-on DevOps and server-side problems with hints, feedback, and automated solution checks.

Challenge

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.

Challenge

CKA Practice: Renew Expiring Control Plane Certificates

kubectl is dead: the kube-apiserver certificate expired and the control plane is down, while the workload quietly keeps serving. Diagnose the expiry offline, renew the certificates, bring the control plane back, and prove the cluster recovered.

Challenge

Expose the Snake Game via TLS Ingress

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.

Challenge

Disable API Server NodePort and Configure kube-scheduler Resource Requests

Configure the kube-scheduler static pod with CPU resource requests based on node allocatable, and disable the NodePort access to the Kubernetes API server so it is only reachable via ClusterIP.

Challenge

Troubleshoot CrashLoopBackOff Caused by a Missing TLS Secret

A deployment is failing because the application cannot load its TLS certificate. Create the missing secret and mount it into the deployment so the Flask app can serve TLS traffic.

Challenge

Schedule a Maintenance Pod with Host Namespace Access Using Taints, Tolerations, and NodeSelector

Learn how to taint a node, schedule a Pod using nodeSelector and tolerations, and share the host network, PID, and IPC namespaces with the Pod.

Challenge

Control Cross-Namespace Traffic Using NetworkPolicy

A multi-tier application runs across two namespaces. Learn how to isolate the application tier and restrict database access to only the application namespace.