CKAD Practice Exam - Part 3

1.5 hours
  • 2 Learning Objectives

About this Hands-on Lab

This lab is designed to help prepare for the kinds of tasks and scenarios encountered during the Certified Kubernetes Application Developer (CKAD) exam.

Here, there is an opportunity to practice debugging applications in Kubernetes. We will locate a problem in the Kubernetes cluster and fix it.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Identify the broken object and save its name and summary data

Become the root user so that we can write to the file:

sudo -i

Describe the broken service:

kubectl describe service oauth-provider -n gem

Note that the service’s selector selects pods with the label role: oauth.

Get a list of pods with labels in order to locate the pod(s) selected by the service:

kubectl get pods --all-namespaces --show-labels

Note that the pod called bowline has the role: oauth label.

Save the name of the broken pod:

vi /usr/ckad/broken-object-name.txt

Put the word bowline in there.

Save the JSON summary data for the broken pod to the specified file:

kubectl get pod bowline -n gem -o json > /usr/ckad/broken-object.json
Fix the problem

Examine the broken pod more closely:

kubectl describe pod bowline -n gem

Based on the event log and pod status, it appears something may be wrong with the pod image. Look at the pod’s container image, which appears to be misspelled. Edit the pod:

kubectl edit pod bowline -n gem

Fix the image name by changing it to nginx:1.15.9.

Verify that the pod is now working:

kubectl get pod bowline -n gem

Test the broken service to make sure it is working:

curl localhost:30080

Additional Resources

Our company has a Kubernetes cluster that is running several pods and services. A service called oauth-provider in the gem namespace has stopped working. Our task is to investigate the service and determine what is causing the problem, save some relevant data for future analysis, and then fix the problem.

  • The broken service is oauth-provider. It is located in the gem namespace.
  • Identify which Kubernetes object is broken and causing the service to fail. Save the name of the object in the file /usr/ckad/broken-object-name.txt.
  • Save the object's summary data in JSON format to the file /usr/ckad/broken-object.json.
  • Edit the object to fix the problem.
  • The oauth-provider service is a NodePort service listening on port 30080, so we can test it using curl localhost:30080.

Note that there may be other objects in the cluster which appear to be broken. Our task is to identify what specifically is causing the oauth-provider service to fail. Ignore any object which doesn't affect the oauth-provider service.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?