CKA Exam Passed

5 questions I could not answer, and one I could, but arguably that question was ambiguous

  1. Fix a broken cluster — kubelet was started but couldn’t connect to itself.
  2. Add node to cluster. Nodes do not have kubeadm installed.
  3. Static pod. Couldn’t find where the path was to put the manifests for the yaml.

4 and 5 I can’t remember the questions but will update if I remember

Ambiguous Question:

  1. Create a pod with a persistent volume, that isn’t persistent, and doesn’t tell you how big to make the PV. I used emptyDir, but that’s not really a PV (didn’t create a PV or a PVC)

CKAD Writeup

So I did the CKAD exam and it was one of the latest exams I’ve done, starting at 22:45 and finishing at 00:45. The CKAD exam is 2 hours versus the CKA’s 3 hours

And I went into the exam feeling relatively confident. But, damn, the 2 hours goes by really quickly.

Had several questions I wasn’t able to complete or only partially complete.

Liveness and Readiness Probes

This question wanted a pod to be restarted if an endpoint returns 500. Simple enough, but there was a catch, if another endpoint returns 500, then the application is starting, and so disregard the check.

I used similar by implementing this check as a curl command in a real life scenario (I should write a blog entry on that some time).

So in the exam, I did both the liveness and readiness checks to chain two curl commands together, if the first endpoint (/starting) in this case, returned 200, then it would do the next endpoint (/healthz) and return a fail if that gave a 500.

Buuuuut, the image didn’t have curl installed so the probes failed. I could use the hack I’ve used in my image and install curl as part of the check, but time constraints wouldn’t let me.

Persistent Volumes

Similar to the CKA question, there was a quirkily worded question here which wanted me to add a file to a node, create a pod that used hostPath and reserve a 1Gi PV. The documentation does not provide an example of that, just a pod with a hostPath as an internal volume:

Network Policies

A technology I haven’t used in Kubernetes yet. They gave several policies, one that allowed “app:proxy” and one that allowed “app:db” and wanted ius to edit a pod to only be allowed to talk to only those.

We were not allowed to modify the policies. I can’t remember whether we were allowed to create new policies for this question

But both those policies use the app label. And the pod can’t have the same label with two values (I did try)

Though thinking about it now, and after a few checks, the NetworkPolicy object describes how to restrict traffic to the pods in question — so those selectors may be related to the pods the policy is restricting. I think I should have looked inside the policies more carefully to see what it was saying on the ingress rule and see if it was saying something like “app:frontend”, and then making sure the pod was labelled accordingly.

Ambassador” Sidecar Pattern

A big chunk of the exam time was taken up by the sidecar questions — far more time than I would have liked, to be honest.

They had a question on adaptor, using fluentd, which was fine, I got that to work, but also had another where I had to use HAProxy to proxy requests do a different port (ambassador pattern). A useful use case, but I ran out of time to finish it. I wanted to come back and revisit it if I had time, but didn’t.


Terminate a cronjob if it lasts longer than 17 seconds. There’s a startup deadline but not a duration deadline. It could be implemented within the command of the application itself, or by specifying to replace any previous running version of the jobs.


I don’t think I passed this, having so many issues is probably going to take me into the 60s mark.

The Fall and Rise of MasterCard

MasterCard seems to be making a lot of good choices recently with its branding showing up in a lot of high-profile cards.

Monzo, Revolut, Starling, Curve, Tide, and more are all MasterCard branded.

I used to have a MasterCard Credit Card by (IIRC) MBNA (remember them?) which I took out initially because I was going to Germany and back then (early noughties), I was advised that MasterCard was more prevalent in the European continent than Visa was, so make sure I had a MasterCard handy in case I ended up in a place that did not take Visa.

I didn’t even use that card.

Fast forward several years later, and suddenly I got a letter saying MBNA were transferring me onto Barclaycard Visa — which was the same as the other credit cards I had. So I ended up with multiple Barclaycard Visa cards, and no MasterCards.

The fact MBNA transferred me off MasterCard made me wonder why. Was there an issue with MasterCard? Were they like AmEx and causing problems with merchants? I shall never know.

I’ve been with Visa pretty much my entire adult life, and aside from that period above where I had a MasterCard, never had a MasterCard.

Eventually I decided to look at Monzo and Revolut, getting accounts successfully setup in both. Both issued MasterCard Debit cards. Starling’s app wouldn’t run on my device.

Monzo is rapidly becoming my main day-to-day account, whereas my Barclaycard is for things like larger purchases, bills, fuel, etc.

It’s strange since my last MasterCard experience, they’ve gone and pretty much disappeared, to coming back and almost every new card out there is MasterCard Debit….


Picked up my FitBit and reinstalled the running partner app on it and attempted to run 2km in a target of 15 mins. Did it in 11mins according to the app, but Strava logged it as 1.91km in 10:45. Strange, considering both are powered by the same data…

%d bloggers like this: