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
Core Components
- Creating and Managing Kubernetes Pods
- Mastering Multi-container Pods in Kubernetes
- Understanding Kubernetes Events
- Understanding Kubernetes Services
- Implementing Kubernetes Services
- Kubernetes Labels and Selectors
- Using Annotations in Kubernetes
Configuration and Deployment
- Configuring Applications in Kubernetes
- Understanding Kubernetes ConfigMaps
- Kubernetes Deployments
- Kubernetes Liveness & Readiness Probes
- Kubernetes Resource Quotas and Limits
- Kubernetes Service Accounts
- Automating Deployments with Kubernetes Operators
- Understanding and Using Helm in Kubernetes
- Managing Configurations with Kubernetes Kustomize
Storage
- Working with Kubernetes Volumes
- Kubernetes Persistent Volume Claims Explained
- Managing Kubernetes State with Persistent Volumes
- Kubernetes StatefulSets Explained
Observability and Troubleshooting
- Monitoring and Observability in Kubernetes
- Troubleshooting Kubernetes Container Logs
- Advanced Troubleshooting in Kubernetes
Network and Policies
- Kubernetes Networking Overview
- Kubernetes Network Policies
- Understanding and Using Kubernetes Ingress
Jobs and CronJobs
Patterns and Custom Resources
- Adapter Pattern in Kubernetes
- Ambassador Pattern in Kubernetes
- Sidecar Pattern in Kubernetes
- Kubernetes Custom Resource Definitions (CRDs)
Security
- Kubernetes Security Best Practices
- Securing Kubernetes Clusters
- Securing Kubernetes Secrets
- 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:
- Set the current cluster
kubectl config set cluster cluster1
- Set the namespace to the question asked
kubectl config set-context --current --namespace=question1
available in namespaces - 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
andkubectl 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:
source <(kubectl completion bash)
alias k=kubectl
complete -F __start_kubectl k
[Cheatsheet] (https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
Firefox own bookmarks are not allowed anymore, each question has links to relevant documentation, but you cannot import your own bookmarks.