Overview
This challenge set contains 17 practical tasks designed to test your Kubernetes administration skills. Each task reflects real-world scenarios you’ll encounter in the CKA exam.Work through these challenges in a practice cluster. Time yourself to simulate exam conditions.
Task 1: RBAC - Extracting Information
Task Requirements
Task Requirements
Objectives:
- Extract all kubeconfig context names to
/tmp/contexts, one per line - Write the current context name to
/tmp/current-context - Base64-decode the client certificate of user
account-0027and save it to/tmp/cert
- kubeconfig manipulation
- Context management
- Base64 encoding/decoding
- File operations
Task 2: Helm - Installing Application
Task Requirements
Task Requirements
Objectives:Skills Tested:
Install Helm chart
Install the
minio/operator Helm chart into the minio namespace as release minio-operator- Helm chart installation
- Namespace management
- YAML editing
- Custom resource application
Task 3: Pod Management
Task Requirements
Task Requirements
Objective:In the
project-h800 namespace, scale the two o3db-* Pods down to one replica to conserve resources.Skills Tested:- Resource identification
- Scaling operations
- Namespace-scoped commands
Task 4: Pod Management & QoS
Task Requirements
Task Requirements
Objective:Identify the Pods in
project-c13 that are likely to be terminated first under resource pressure. Write their names to /tmp/pods-terminated-first.txt.Skills Tested:- Quality of Service (QoS) classes
- Pod eviction behavior
- Resource limits and requests
- File output operations
- BestEffort (terminated first)
- Burstable
- Guaranteed (terminated last)
Task 5: HPA Setup
Task Requirements
Task Requirements
Objective:Replace the existing autoscaler with a HorizontalPodAutoscaler for the Skills Tested:
api-gateway.Create HPA for staging
Create HPA named
api-gateway:- Min replicas: 2
- Max replicas: 4
- Target CPU utilization: 50%
- HorizontalPodAutoscaler configuration
- Kustomize usage
- Multi-environment management
Task 6: Persistent Volumes
Task Requirements
Task Requirements
Objective:Create a complete storage solution with PV, PVC, and Deployment.PersistentVolume:
- Name:
safari-pv - Capacity: 2Gi
- AccessMode:
ReadWriteOnce - Path:
/Volumes/Data
project-t230):- Name:
safari-pvc - Storage: 2Gi
- Name:
safari - Namespace:
project-t230 - Mount path:
/tmp/safari-data - Image:
httpd:2-alpine
- PersistentVolume configuration
- PersistentVolumeClaim creation
- Volume mounting in deployments
- Storage binding
Task 7: Monitoring Resource Consumption
Task Requirements
Task Requirements
Objective:Write two bash scripts using
kubectl to gather resource metrics.Skills Tested:- kubectl top commands
- Metrics server usage
- Bash scripting
- Resource monitoring
Task 8: Upgrade & Join Worker
Task Requirements
Task Requirements
Task 9: Service Account
Task Requirements
Task Requirements
Objective:Create a Pod that queries the Kubernetes API using a ServiceAccount.
Skills Tested:
- ServiceAccount assignment
- Kubernetes API access from pods
- curl and API authentication
- Token mounting
Task 10: RBAC
Task Requirements
Task Requirements
Objective:In namespace
project-hamster, create RBAC resources to grant limited permissions.Create:- ServiceAccount:
processor - Role:
processor - RoleBinding:
processor
- Secrets
- ConfigMaps
- ServiceAccount creation
- Role definition
- RoleBinding configuration
- Permission scoping
Task 11: Taints and Tolerations
Task Requirements
Task Requirements
Objective:In namespace
project-tiger, create a DaemonSet that runs on all nodes including control planes.DaemonSet: ds-important- Image:
httpd:2-alpine - Labels:
id=ds-important,uuid=18426a0b-5f59-4e10-923f-c0e078e82462 - Resource requests: 10m CPU, 10Mi Memory
- Must run on all nodes (including control planes)
- DaemonSet configuration
- Tolerations for control plane taints
- Resource requests
- Label management
Task 12: Deployment
Task Requirements
Task Requirements
Objective:In namespace
project-tiger, create a Deployment with pod anti-affinity.Deployment: deploy-important- Replicas: 3
- Labels:
id=very-important
container1:nginx:1-alpinecontainer2:google/pause
- Use
topologyKey: kubernetes.io/hostname - Ensure 1 Pod per node
- Multi-container pods
- Pod anti-affinity
- Topology spread
- Deployment configuration
Task 13: Gateway API
Task Requirements
Task Requirements
Objective:In namespace Skills Tested:
project-r500, migrate from Ingress to Gateway API.Add conditional routing
Add
/auto path logic:- If
User-Agent: mobile→ redirect to/mobile - Otherwise → redirect to
/desktop
- Gateway API understanding
- HTTPRoute configuration
- Header-based routing
- Ingress migration
Task 14: Cluster Certificates
Task Requirements
Task Requirements
Objective:Inspect and document cluster certificate expiration.
Skills Tested:
- Certificate inspection
- kubeadm certificate management
- OpenSSL usage
- Cluster security
Task 15: Network Policy
Task Requirements
Task Requirements
Objective:In namespace
project-snake, create NetworkPolicy named np-backend.Requirements:Allow backend-* Pods to:- Connect to
db1-*Pods on port 1111 - Connect to
db2-*Pods on port 2222
- NetworkPolicy configuration
- Egress rules
- Pod selector matching
- Port-based filtering
Task 16: CoreDNS Custom Domain
Task Requirements
Task Requirements
Objective:Configure CoreDNS to support a custom domain in addition to the default Skills Tested:
cluster.local.Update CoreDNS
Update CoreDNS ConfigMap to support:
SERVICE.NAMESPACE.svc.cluster.local(default)SERVICE.NAMESPACE.svc.custom-domain(new)
- CoreDNS configuration
- ConfigMap editing
- DNS testing
- Service discovery
Task 17: Container Debugging
Task Requirements
Task Requirements
Objective:Use Skills Tested:
crictl to debug a container at the node level.Create pod
In namespace
project-tiger, create Pod tigers-reunite:- Labels:
pod=container,container=pod - Image:
httpd:2-alpine
- crictl commands
- Container runtime interaction
- Node-level debugging
- SSH access
Practice Tips
- Time yourself: Allocate 6-8 minutes per task
- Verify each solution before moving on
- Practice switching contexts and namespaces quickly
- Keep kubernetes.io documentation handy
- Review mistakes and understand why solutions work