/ckad-questions

A set of exercises and solutions to prepare for the Certified Kubernetes Application Developer exam by Cloud Native Computing Foundation.

Apache License 2.0Apache-2.0

Sample CKAD exercises and solutions

kubernetes-ckad-color-300x294

Disclaimer

  • Opinions expressed here are solely my own and do not express the views or opinions of JPMorgan Chase.
  • Any third-party trademarks are the intellectual property of their respective owners and any mention herein is for referential purposes only.

Questions by Domain


Docker Desktop Setup

Linux access to Docker desktop

  • Windows Subsystem for Linux requires you to install a Linux distribution from the Microsoft Store.
    • Tick the 'Use the WSL 2 based engine' under the 'General' panel
  • To mimic the CKAD exam please execute all the commands in this repo from this Linux distribution that you installed.
    • The CKAD exam terminal is Ubuntu based.
  • Start the distribution directly by searching for Ubuntu and starting the application

Prerequisite software for Docker desktop

Please install these software components, required to answer questions in later sections:

Metrics Server

Metrics Server installs into Kubernetes

By default the metrics server required for the kubectl top command is not present on Docker Desktop.

Please install the metrics server with the following command:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl patch deployment metrics-server -n kube-system --type 'json' -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--kubelet-insecure-tls"}]'

Contour Ingress

Contour installs into Kubernetes

contour

By default the Contour Ingress required for the Ingress Networking question is not present on Docker Desktop.

Please install the contour ingress with the following command:

kubectl apply -f https://projectcontour.io/quickstart/contour.yaml

Calico

Calico installs into Kubernetes

calico

Calico is required for the non native Kubernetes resources lookup question.

curl https://docs.projectcalico.org/manifests/calico.yaml | kubectl apply -f -

Helm

Helm installs into WSL Linux

Please install the Helm with the following command:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

kubectl convert

kubectl convert installs into WSL Linux

Please install the kubectl convert with the following command:

curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"
echo "$(<kubectl-convert.sha256) kubectl-convert" | sha256sum --check
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
kubectl convert --help


Optional software for Docker desktop

Octant

Helm installs into Windows

octant

  • Consider installing Octant to visualize Kubernetes Resource Types
  • This will help you understand the interaction and relationships between Kubernetes Resource types
  • Installation instructions for Octant can be found here


Logistics

  • The current version of Kubernetes in the CKAD exam can be found here.
  • This has been tested on Docker Desktop v4.1.1 (69879)
  • To remove all the resources that get created run the commands in the Clean Up section.

End of Section