Live demos are a thing of beauty — you never know when the demo gods will decide to break your precious setup. During yesterday’s live webinar, Your Application Deserves Better than Kubernetes Ingress: Istio vs. Kubernetes, the first thing I wanted to show during the Istio service mesh demo was exposing an app using NodePort. Applying the deployment file resulted in the following:
$ kubectl apply -f flaskapp-deployment.yaml $ kubectl get pods NAME READY STATUS flaskapp-deployment-pod-1 0/1 ImagePullBackOff flaskapp-deployment-pod-2 0/1 ImagePullBackOff flaskapp-deployment-pod-3 0/1 ImagePullBackOff
What gives? This deployment spec has worked reliably time and time again with no business failing to pull the image. I can only guess that Docker Hub is down (unlikely) and had two options to choose from: 1) re-build the image from source, or 2) Use a backup environment to show the end state. In order to keep on topic within the given time period, I decided to go with option #2 to at least showcase Istio Ingress at its best.
After the webinar I decided to go back and take a look at the environment; and lo and behold, this is what I found!
$ kubectl get pods NAME READY STATUS flaskapp-deployment-pod-1 1/1 Running flaskapp-deployment-pod-2 1/1 Running flaskapp-deployment-pod-3 1/1 Running
And when I did a quick search of Docker Hub Status later, this is what I discovered:
As if by magic Docker Hub has decided to stop working within the exact time period of the Live Webinar. I learned a few things from this event:
- Don’t rely on a public repository / link for your demos
- Failures occur where you least expect them to
- Always prepare a backup
So that being said, I present to you all in the video below, how I originally envisioned the demo for this session:
I hope you enjoyed the live session regardless, and if you didn’t attend, I’m sorry you missed out on all the fun. Here’s hoping for a more successful demo next time!