I’m working on a tech talk for my company on Kubernetes. I use Kubernetes on a customer system every day. I wrote and delivered a half day training class on it, help customers understand how to use it and then help them work through any hiccups they run into in deploying their own systems to it.
So, you’d think I’d be in good shape for a 45 minute tech talk which gives an overview and shows a little bit of stuff running. If I were just talking, I’d be fine: I can talk about why k8s, where it came from, key concepts and benefits in it, how to deploy and monitor things within it, how to figure out what’s wrong with your system running on it… What I hadn’t had to do was deploy my own Kubernetes installation: there are a few to work with in our customer environment, which each have their own quirks. If a particular quirk is getting in my way, I jump to a different cluster assuming there’s no other constraint preventing me from doing so. That helps me and my team keep abreast of things our clients will run into, and we share that guidance with them.
Last night I started to set up my company laptop, the one I’ll use for the presentation next week, to have a single node Kubernetes implementation via minikube. I’d looked through the tutorials, everything seemed straightforward. Very straightforward: either install it via curl or via a brew cask install. Minikube downloaded, I started my cluster, and pointed kubectl at that cluster. Very neat and tidy. But I spent a few hours last night trying to figure out why it would neither finalize my deployments (and thus give me running pods) nor let me delete an existing deployment. Nor why the minikube dashboard wasn’t available. The dashboard used to be, when I’d done a fabric8 installation that itself bundled a minikube… When I tore that down to install from scratch to give tested instructions for the tutorial, though, the dashboard stopped working. (I’ll take a guess that it’s because the pod used to satisfy the service that provides the dashboard endpoints isn’t deploying – seems logical given other evidence.)
Tonight I’ll spin up a Google Container Engine small cluster to let me have an alternate path for my talk, rather than continue to beat my head. That’ll also let me demonstrate multi-node interactions and seeing pods jump from one node to another. Critical path is the talk, not the talk running off an environment on my laptop. But having a hard time taking my brain away from debugging why minikube isn’t working. When I figure it out (after the tech talk’s written), I’ll come back and see if I can leave a tracer here for some other stuck soul.