Skip to content

Hands-on Kubernetes labs

Exam-style tasks for the performance-based certifications, run on a real kubeadm cluster on your own Mac with the GoldenKube CLI and graded locally. Each card shows the task's domain, the cluster topology it needs, the recommended time and its points; the detail page has the full task text.

37 published scenarios

CKACluster Architecture, Installation & ConfigurationMedium

Namespaced RBAC: Role and RoleBinding for a ServiceAccount

Grant a ServiceAccount read access to pods in one namespace using a Role and a RoleBinding.

Single node · ~6 min · 6 points

  • rbac
  • role
  • rolebinding
  • serviceaccount
  • namespace

goldenkube start cka-arc-001

CKACluster Architecture, Installation & ConfigurationMedium

Cluster-scoped RBAC: ClusterRole for listing nodes

Grant a namespaced ServiceAccount cluster-wide read access to nodes using a ClusterRole and ClusterRoleBinding.

Single node · ~6 min · 6 points

  • rbac
  • clusterrole
  • clusterrolebinding
  • serviceaccount
  • nodes

goldenkube start cka-arc-002

CKACluster Architecture, Installation & ConfigurationMedium

etcd snapshot backup

Take a snapshot of the cluster's etcd datastore and store it as a file on the control plane node.

Single node · ~8 min · 6 points

  • etcd
  • backup
  • etcdctl
  • control-plane

goldenkube start cka-arc-003

CKACluster Architecture, Installation & ConfigurationEasy

Long-lived ServiceAccount token Secret

Create a ServiceAccount and a controller-populated long-lived token Secret bound to it.

Single node · ~6 min · 5 points

  • serviceaccount
  • secret
  • token
  • authentication

goldenkube start cka-arc-004

CKACluster Architecture, Installation & ConfigurationMedium

Static Pod on the control plane

Run a Pod directly through the kubelet by placing a manifest in the static pod directory.

Single node · ~7 min · 6 points

  • static-pod
  • kubelet
  • control-plane
  • manifests

goldenkube start cka-arc-005

CKACluster Architecture, Installation & ConfigurationMedium

Drain a node for maintenance

Safely take a worker node out of service by cordoning it and evicting its workload pods without deleting the node.

Two nodes · ~7 min · 7 points

  • drain
  • cordon
  • maintenance
  • eviction
  • daemonset

goldenkube start cka-arc-006

CKACluster Architecture, Installation & ConfigurationMedium

Install an application with Helm

Add a chart repository and install a chart as a named release into a namespace using Helm.

Single node · ~10 min · 7 points

  • helm
  • package-management
  • release

goldenkube start cka-arc-007

CKACluster Architecture, Installation & ConfigurationEasy

PriorityClass and a prioritized Pod

Create a non-default PriorityClass and run a Pod that uses it.

Single node · ~6 min · 5 points

  • priorityclass
  • scheduling
  • pod

goldenkube start cka-arc-008

CKAServices & NetworkingEasy

ClusterIP Service for a Deployment

Expose an existing Deployment inside the cluster with a ClusterIP Service that selects all its pods.

Two nodes · ~6 min · 5 points

  • service
  • clusterip
  • endpoints
  • networking

goldenkube start cka-net-001

CKAServices & NetworkingEasy

NodePort Service with a fixed port

Expose a Deployment outside the cluster with a NodePort Service on a specific node port.

Two nodes · ~6 min · 5 points

  • service
  • nodeport
  • networking

goldenkube start cka-net-002

CKAServices & NetworkingMedium

NetworkPolicy: allow ingress from one app only

Restrict ingress to database pods so only client pods may reach them on a single TCP port.

Two nodes · ~9 min · 7 points

  • networkpolicy
  • ingress
  • cilium
  • networking
  • security

goldenkube start cka-net-003

CKAServices & NetworkingMedium

Ingress routing to a Service

Create an Ingress that routes a hostname and path prefix to an existing Service through the nginx IngressClass.

Two nodes · ~8 min · 7 points · Ingress

  • ingress
  • ingressclass
  • nginx
  • networking

goldenkube start cka-net-004

CKAServices & NetworkingMedium

Gateway API HTTPRoute

Attach an HTTPRoute to an existing Gateway so a path prefix is routed to a Service.

Two nodes · ~9 min · 7 points · Gateway API

  • gateway-api
  • httproute
  • gateway
  • networking

goldenkube start cka-net-005

CKAServices & NetworkingEasy

Headless Service

Create a headless Service (clusterIP None) that selects an existing Deployment's pods.

Two nodes · ~6 min · 5 points

  • service
  • headless
  • dns
  • networking

goldenkube start cka-net-006

CKAServices & NetworkingEasy

Service port vs targetPort

Expose a Deployment on a Service port that differs from the container port.

Two nodes · ~6 min · 5 points

  • service
  • clusterip
  • targetport
  • networking

goldenkube start cka-net-007

CKAWorkloads & SchedulingMedium

Taint, toleration and placement

Taint a worker node and run a Pod that tolerates the taint and is placed on that node.

Two nodes · ~7 min · 6 points

  • taint
  • toleration
  • scheduling
  • nodename

goldenkube start cka-sch-001

CKAWorkloads & SchedulingMedium

Spread replicas across nodes

Create a Deployment whose replicas are guaranteed to land on different nodes.

Three nodes · ~8 min · 6 points

  • scheduling
  • topology-spread
  • pod-anti-affinity
  • deployment

goldenkube start cka-sch-002

CKAStorageMedium

Manual PersistentVolume and matching claim

Create a hostPath PersistentVolume and a PersistentVolumeClaim that binds to it.

Single node · ~7 min · 6 points

  • storage
  • pv
  • pvc
  • hostpath

goldenkube start cka-sto-002

CKAStorageMedium

Default StorageClass

Make an existing StorageClass the cluster default and provision a PVC without naming a class.

Single node · ~8 min · 6 points · Storage

  • storage
  • storageclass
  • default
  • pvc

goldenkube start cka-sto-003

CKAStorageMedium

StatefulSet with volumeClaimTemplates

Create a headless Service and a StatefulSet whose pod gets its own dynamically provisioned PVC.

Two nodes · ~10 min · 7 points · Storage

  • storage
  • statefulset
  • headless
  • volumeclaimtemplate
  • pvc

goldenkube start cka-sto-004

CKATroubleshootingMedium

Worker NotReady: kubelet stopped

A worker node reports NotReady; diagnose and restore it without recreating the node.

Two nodes · ~7 min · 7 points

  • troubleshooting
  • node
  • kubelet
  • notready

goldenkube start cka-trb-001

CKATroubleshootingMedium

Worker NotReady: kubelet fails to start

The kubelet on a worker refuses to start; find the misconfiguration and fix it on the node.

Two nodes · ~8 min · 7 points

  • troubleshooting
  • node
  • kubelet
  • systemd
  • configuration

goldenkube start cka-trb-002

CKATroubleshootingHard

kube-apiserver static pod broken

kubectl cannot reach the cluster; repair the API server from the control plane node.

Single node · ~8 min · 8 points

  • troubleshooting
  • kube-apiserver
  • static-pod
  • control-plane
  • crictl

goldenkube start cka-trb-003

CKATroubleshootingMedium

Worker NotReady: container runtime down

A worker is NotReady although its kubelet runs; find the underlying runtime problem and fix it.

Two nodes · ~6 min · 6 points

  • troubleshooting
  • node
  • containerd
  • cri
  • kubelet

goldenkube start cka-trb-004

CKATroubleshootingEasy

Cluster DNS down

Service name resolution has stopped working; investigate and restore the cluster DNS component.

Two nodes · ~5 min · 5 points

  • troubleshooting
  • coredns
  • dns
  • kube-system

goldenkube start cka-trb-005

CKATroubleshootingMedium

Service with no endpoints

A Service forwards nowhere; find the mismatch and fix the Service only.

Two nodes · ~6 min · 6 points

  • troubleshooting
  • service
  • selector
  • endpoints

goldenkube start cka-trb-006

CKATroubleshootingMedium

Pods Pending on a cordoned node

A Deployment pinned to one node cannot schedule; find the node-level cause and fix it.

Two nodes · ~5 min · 6 points

  • troubleshooting
  • scheduling
  • cordon
  • pending
  • nodeselector

goldenkube start cka-trb-007

CKATroubleshootingMedium

CrashLoopBackOff: container command exits

A Deployment's containers keep exiting; find out why and make them stay running.

Single node · ~6 min · 6 points

  • troubleshooting
  • crashloopbackoff
  • deployment
  • logs

goldenkube start cka-trb-008

CKATroubleshootingEasy

ImagePullBackOff: wrong image tag

A Deployment's pods cannot pull their image; correct the image and get the replicas Ready.

Single node · ~5 min · 5 points

  • troubleshooting
  • imagepullbackoff
  • deployment
  • image

goldenkube start cka-trb-009

CKAWorkloads & SchedulingEasy

Rolling update of a Deployment

Update the image of a running Deployment with a rolling update and confirm all pods run the new image.

Single node · ~4 min · 4 points

  • deployment
  • rolling-update
  • rollout
  • workloads

goldenkube start cka-wkl-002

CKAWorkloads & SchedulingMedium

ConfigMap env var and Secret volume

Create a ConfigMap and a Secret and consume them from a Pod as an environment variable and a mounted volume.

Single node · ~8 min · 6 points

  • configmap
  • secret
  • pod
  • env
  • volume
  • workloads

goldenkube start cka-wkl-003

CKAWorkloads & SchedulingEasy

DaemonSet on every node

Run one Pod per node, including the control plane, with a DaemonSet.

Two nodes · ~6 min · 5 points

  • daemonset
  • toleration
  • control-plane
  • workloads

goldenkube start cka-wkl-004

CKAWorkloads & SchedulingEasy

Required node affinity

Pin a Pod to nodes with a given label using required node affinity rather than a nodeSelector.

Two nodes · ~6 min · 5 points

  • node-affinity
  • scheduling
  • labels
  • workloads

goldenkube start cka-wkl-005

CKAWorkloads & SchedulingEasy

Guaranteed QoS Pod

Create a Pod whose resource settings place it in the Guaranteed QoS class.

Single node · ~4 min · 4 points

  • qos
  • resources
  • requests
  • limits
  • workloads

goldenkube start cka-wkl-006

CKAWorkloads & SchedulingEasy

Job with completions and parallelism

Run a batch Job that must complete a fixed number of times with limited parallelism.

Single node · ~5 min · 4 points

  • job
  • batch
  • completions
  • parallelism
  • workloads

goldenkube start cka-wkl-007

Exams covered

  • CKA · Certified Kubernetes Administrator · scenarios verified on Kubernetes 1.37 · 37 published scenarios · mock exam: 15 tasks in 120 minutes, pass at 66%

How to run a lab

  1. Install the CLI and Multipass, then run goldenkube doctor.
  2. Sign in with goldenkube login (free account).
  3. Start a scenario with its id, solve the task on the cluster, run goldenkube submit.

Grading happens on your machine and is practice feedback, not an official score. Tasks are public; hints, reference solutions and grader internals are not.