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,  Easy

Access the Kubernetes API Server via kubectl proxy

Use kubectl proxy to open a local, already authenticated HTTP endpoint to the Kubernetes API server, then use curl to list every Secret in the gliese-581 namespace and save the raw JSON response to /home/laborant/secret-list.json.

Submissions: 28/33
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: 8/9
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: 17/19
Challenge,  Medium

Extend the Cluster with an Additional Service CIDR for the dev Team

Add a new, separate Service CIDR range for the dev team using the ServiceCIDR API object — without touching or restarting the cluster's default Service CIDR — then create a Service with an explicit ClusterIP inside that new range and verify DNS resolution.

Submissions: 18/22
Challenge,  Medium

Pin a Client to the Same Pod Using Service Session Affinity

Configure a Kubernetes Service so that requests from the same client IP are always routed to the same backend Pod for a sustained period, using ClientIP-based session affinity.

Submissions: 11/14
Challenge,  Medium

Canary Deployment Using Kubernetes Gateway API Traffic Splitting

Implement a canary deployment strategy using the Kubernetes Gateway API. Route the majority of traffic to a stable version of a service while gradually shifting a small percentage to a new canary version.

Submissions: 21/33
Challenge,  Medium

Cross-Namespace Gateway and HTTPRoute Binding with Kubernetes Gateway API

Configure a Kubernetes Gateway API setup with the Gateway in a dedicated infrastructure namespace and HTTPRoute in the application namespace, using path-based routing to expose railway platform services.

Submissions: 18/21
Challenge,  Medium

Resolve a Container Port Conflict and Expose Multiple Ports Through a Single Service

A Deployment with two nginx containers has a port conflict — both containers use port 80. Fix the conflict by updating the ConfigMap, mounting it into the second container, updating the containerPort, and exposing both containers via a NodePort Service.

Submissions: 22/35