- 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
So you were created host path on slave node and created pv and pvc from master node. Did you use node selector?