- Exercises. This was 95% of the learning I did. DO ALL OF THESE. MORE THAN ONCE
Once you can do these (without looking up the answer), you are ready
https://github.com/dgkanatsios/CKAD-exercises/ - Very good Medium post
https://medium.com/@nassim.kebbani/how-to-beat-kubernetes-ckad-certification-c84bff8d61b1 - Also good Medium post
https://medium.com/bb-tutorials-and-thoughts/how-to-pass-the-certified-kubernetes-application-developer-ckad-exam-503e9562d022 - This post explains the web terminal you will use and has other tips
https://codeburst.io/the-ckad-browser-terminal-10fab2e8122e - MS Premier person's post, some more insight
https://devblogs.microsoft.com/premier-developer/certified-kubernetes-application-developer-ckad-exam-tips/
- ConfigMaps & mounting into containers as volumes
- More ConfigMaps, seriously it was on about three or four questions, practice all the ways of creating & using a ConfigMap DOCS LINK
- Learn to use every variation of
kubectl runand use with or without the--dry-run -o yamlflags, e.g.--restart=Neverwill create a Pod--restart=Alwaysand--replicaswill create a Deployment--restart=OnFailurewill create a Job--restart=OnFailureand--schedulewill create a CronJob- Pass any commands for the pod/container to run at the end of the command after
--
e.g.kubectl run webpod --image nginx --restart Never -- sleep 600
- Memorise the
volumeMountandvolumessyntax of pod & container spec, you don't have time to look it up, and it comes up a lot - Multi container pods, experiment with deploying this, and sharing a volume using
emptyDir - Network Policy,
podSelectorsboth for ingress/egress rules and applying the policy - PV and PVC, go through creating both and a pod to use the PVC, DOCS LINK
- Surprise! one question required SSH onto a node to create a file for PV of
hostPathtype
- Surprise! one question required SSH onto a node to create a file for PV of
- Ingresses are not in the exam, nor are CRDs, Helm, etc, only core, non-beta API objects
- Editing objects directly with
kubectl edit... only do this if you're confident of the change you're making, i.e. It's something mutable and you know the syntax- If you save and it's wrong you're thrown back into the editor. If you're anything less than 99% sure, then export the YAML
kubectl get foobar -o yaml --export > blah.yamland edit that - Often the change you are making requires you to delete the object (as it's an immutable field) so
kubectl editis never going to work
- If you save and it's wrong you're thrown back into the editor. If you're anything less than 99% sure, then export the YAML
Enable kubectl auto complete, very useful and part of the docs so you can copy & paste it
https://kubernetes.io/docs/reference/kubectl/cheatsheet/#kubectl-autocomplete
Aliases. Shortening kubectl to k is a HUGE time saver! I used kn as a way to change namespaces
alias k=kubectl
alias kn='kubectl config set-context --current --namespace '
Change editor used by kubectl edit
export KUBE_EDITOR=nano
If a command like delete is taking a while, hit ctrl+z to put it to the background and carry on working
Hi Ben, Thanks for wonderful write up the summary. i have basic question on how to switch back to base node from node, where PV question need ssh to node for hostpath.