- 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 run
and use with or without the--dry-run -o yaml
flags, e.g.--restart=Never
will create a Pod--restart=Always
and--replicas
will create a Deployment--restart=OnFailure
will create a Job--restart=OnFailure
and--schedule
will 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
volumeMount
andvolumes
syntax 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,
podSelectors
both 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
hostPath
type
- 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.yaml
and edit that - Often the change you are making requires you to delete the object (as it's an immutable field) so
kubectl edit
is 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?