If you’re preparing for the Certified Kubernetes Application Developer (CKAD) exam or simply want to enhance your Kubernetes skills, this learning path is for you. The following articles are designed to cover essential topics very quickly for the CKAD certification and beyond.

Getting Started

  1. Kubernetes Concepts
  2. Kubernetes Namespaces: An Overview
  3. Kubernetes Imperative Commands

Core Components

  1. Creating and Managing Kubernetes Pods
  2. Mastering Multi-container Pods in Kubernetes
  3. Understanding Kubernetes Events
  4. Understanding Kubernetes Services
  5. Implementing Kubernetes Services
  6. Kubernetes Labels and Selectors
  7. Using Annotations in Kubernetes

Configuration and Deployment

  1. Configuring Applications in Kubernetes
  2. Understanding Kubernetes ConfigMaps
  3. Kubernetes Deployments
  4. Kubernetes Liveness & Readiness Probes
  5. Kubernetes Resource Quotas and Limits
  6. Kubernetes Service Accounts
  7. Automating Deployments with Kubernetes Operators
  8. Understanding and Using Helm in Kubernetes
  9. Managing Configurations with Kubernetes Kustomize

Storage

  1. Working with Kubernetes Volumes
  2. Kubernetes Persistent Volume Claims Explained
  3. Managing Kubernetes State with Persistent Volumes
  4. Kubernetes StatefulSets Explained

Observability and Troubleshooting

  1. Monitoring and Observability in Kubernetes
  2. Troubleshooting Kubernetes Container Logs
  3. Advanced Troubleshooting in Kubernetes

Network and Policies

  1. Kubernetes Networking Overview
  2. Kubernetes Network Policies
  3. Understanding and Using Kubernetes Ingress

Jobs and CronJobs

  1. Managing Kubernetes Jobs
  2. Kubernetes CronJobs

Patterns and Custom Resources

  1. Adapter Pattern in Kubernetes
  2. Ambassador Pattern in Kubernetes
  3. Sidecar Pattern in Kubernetes
  4. Kubernetes Custom Resource Definitions (CRDs)

Security

  1. Kubernetes Security Best Practices
  2. Securing Kubernetes Clusters
  3. Securing Kubernetes Secrets
  4. Kubernetes Role-Based Access Control (RBAC)

Tips

Have an initial quick look at everything kubectl get all --all-namespaces or k get all --A

Cluster and Namespace

Validate that you are in the correct cluster and namespace for the question:

  1. Set the current cluster kubectl config set cluster cluster1
  2. Set the namespace to the question asked kubectl config set-context --current --namespace=question1 available in namespaces
  3. Double check your current context kubectl config get-contexts you can copy-paste fromt he documentation this: kubectl config view --minify | grep namespace:

The context determines which cluster to use for information or solving problems. So, Kubernetes context is crucial, and each new question must start with a new context. (kubectl config get-contexts and kubectl config use-context <CONTEXT_NAME>)

Aliases

Set some aliases in .bashrc:

k should be ready in the exam environment by default.

alias k=kubectl
alias hh='history | grep'
alias koy='kubectl -o yaml'
alias kn='kubectl config set-context --current --namespace' (You can change the namespace like this or use -n in each command)
export do="--dry-run=client -o yaml"  (This is the only one I configured during the exam)
export de="--grace-period=0 --force"

The main one for me is kn, to change namespaces quickly, remember to restore the default namespace when leaving a cluster/context and at the end of the exam.

Alternatively use -n in each k command and don’t change namespaces.

Use Explain

You can use an alias: alias ke='kubectl explain'

Example:

kubectl explain pods.spec —rescursive (And then pipe to grep -C10 volumes for example)

Use help, as it is faster than browsing: k run -h

Auto-completion

Ensure that bash-completion is already loaded. Typically, it’s pre-installed in the exam environment.

Use the following command to enable kubectl auto-completion:

source <(kubectl completion bash)

And then, you can enable auto-completion for this alias as well:

complete -F __start_kubectl k

Search for keywords

To see 5 lines before and after a keyword of your pod’s yaml, you can use:

kubectl get pod <POD_NAME> -n <NAMESPACE> -o yaml | grep -B 5 -A 5 <KEYWORD>

e.g. get po webapp-example -o yaml | grep -B 5 -A 5 image

This should give you a strong foundation in Kubernetes as you prepare for the CKAD exam.

Bookmarks

Autocomplete should be ready by default in the exam:

Auto-Complete

source <(kubectl completion bash)
alias k=kubectl
complete -F __start_kubectl k

Kubectl commands

[Cheatsheet] (https://kubernetes.io/docs/reference/kubectl/cheatsheet/)

[Liveness] (https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command)

Firefox own bookmarks are not allowed anymore, each question has links to relevant documentation, but you cannot import your own bookmarks.