- A set of sample questions and solutions to assist in preparing for the CKAD exam.
- Assumed practice environment is Docker Desktop with a Windows Subsystem for Linux backend.
- 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.
- Example CKAD Application Design and Build Q&A
- Example CKAD Application Environment, Configuration and Security Q&A
- Example CKAD Application Deployment Q&A
- Example CKAD Services and Networking Q&A
- Example CKAD Observability and Maintenance Q&A
- Example CKAD Miscellaneous Q&A
- 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
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
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 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
Octant
Helm installs into Windows
- 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
- 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