My struggle with Kubernetes

I struggle with Kubernetes

I've been circling Kubernetes for a couple of years now at work (two different jobs), slowly getting up to speed and coming to terms with what it is and how it works.  I'm still a long way from being an expert, but even as I should be getting at least *comfortable* with it, I'm finding myself still struggling.  Not with the raw technical matters; to be blunt, there's not a large number of fundamental concepts to grok with Kubernetes, just a few key ones and then a fair amount of nitty-gritty detail with each thing.  But when I am tasked with 'deploy this thing to Kubernetes', or when I start thinking about how Kubernetes will impact some other system if and when we deploy to it, I start feeling tense and anxious.  I have probed these feelings, much like one might probe a sore tooth, feeling the pain and trying to figure out what it is that makes me feel this way, and the extent of those feelings of pain.

I've been a professional Linux systems administrator for between 15 and 20 years, depending how you count experience (it wasn't officially my job title for some of those early years, but I was sort of doing it at least part time anyway).  I started before virtualisation was a usable thing (I assume it was around, but wasn't mainstream and practically usable until several years into my career), and installing server Operating Systems onto bare metal was, if not common, at least something done occasionally (as opposed to 'practically never' now).  Load-balancing wasn't common (at least where I was working, which may just have been a matter of scale not tech), configuration management was shell scripts and dreams, NoSQL was just an early fever-dream of a mad few (some things never change... but I jest), and there was absolutely no commodity Cloud at all (Amazon S3 wasn't launched until about 8 years into my IT career).  I have seen these things come, and I have adapted.  Each required re-learning things, and adjusting my habits and thought patterns, but it always seemed reasonable.  None of them cause me the same feelings that Kubernetes does.  It's possible I'm just getting old and set in my ways, but I see other new things coming and developing and they don't do that to me, so I *think* it's not just me.

And finally, I think I have a handle on it, and it all comes from a metaphor.  See, Kubernetes is like a big ball of yarn.  But, so are the systems I have always designed, built, and managed.  They're made of bits and pieces of tools, techniques, and configuration that combine to produce the result we want.  There's common bits to everything, things you can replace with similar yarn (same thickness, different colour), and unique bespoke things custom to any particular ball of yarn.  

The difference with *my* ball of yarn vs Kubernetes, is that it's entirely my ball of yarn.  I composed it with the parts that I understand and know; as I learned virtualisation, the cloud, load balancing and so on, I was just learning new types of yarn, how to cut them, and how to tie them together.  Kubernetes, on the other hand, is a ball of yarn into which I poke some baubles (containers), and then the little magic pixies that live inside the ball of yarn put those baubles somewhere inside the ball, and tie them together for me.  Those same pixies can magically make the ball bigger or smaller at any time (within limits), if they see the need.  Rather than me adding in new chunks of yarn, the pixies do it for me, based on the guidance I give them (oh my hamster, so much YAML).

Where I have trouble is in my understanding of how those pixies will do their job; they still seem magical to me, and the instructions I'm allowed to give them feel obscure and somehow limited (although I can't seem to quantify that feeling).  And those pixies are able to go on strike, or get sick, or just misbehave, and my ability to peer inside the ball of yarn feels limited; I *can* to a degree, but the tools are sometimes different (or limited, or missing), the picture I'm looking at is different, and the pixies might still be running around doing things while I'm looking.

And all of that bugs me.  I was talking with my wife recently about something work related, and she got this look on her face and said to me: "Oh, you're a control freak".  It's true, I am, and I've known it for a while; one of the things I enjoy about systems administrator is understanding and controlling (to the degree I need) complex systems.  And until my knowledge, comfort, and understanding gets better, Kubernetes feels like it's taking those away from me.

I will get there; once I spend more time working with it, I'm sure I'll get to a point where it feels as comfortable as all the other tools I use.  But until then, I'm still going to firmly gird my loins before entering battle, and overcome that feeling of squick.