• Stars
    star
    143
  • Rank 257,007 (Top 6 %)
  • Language
  • License
    Apache License 2.0
  • Created about 3 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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 - Kubernetes top command

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 - Kubernetes Ingress Controller

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 - Kubernetes Container Network Interface (CNI)

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 -

To work with Calico Network Policies use the following command:

kubectl get networkpolicy.p

Helm - Kubernetes Package Manager

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 - Deal with deprecated API versions

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 - Kubernetes UI

Octant installs into Windows 11

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

  • You can follow along and cut and paste the example code snippets into your own cluster
  • A single node cluster is sufficient for all examples
  • All code snippets have been created and tested on Docker Desktop
  • To clean up just execute commands in the "Clean Up" section at the end of each section

End of Section