Beck’s Journey

Leaving the safe shores of C# for parts unknown...

Gonna get me some Kubernetes, but DevOps first

The wheels were turning in Beck’s mind. Kubernetes was the key. Whatever the Big Idea turned out to be, writing code to do stuff wouldn’t be the problem. He was good at that. The only question remaining was how to get it out there.

I mentioned back in the first post that Beck was a fan of DevOps, but he’d never set up a CI/CD pipeline himself. Well, it was time to change that. They’d used TeamCity and Octopus Deploy at work, so he figured he’d go with those.

“But,” he thought, “let’s make things a little more interesting.”

He decided to do this project on his daughter’s MacBook Air. The Voice had mentioned Linux and .NET Core. Well MacOS is some kind of Linux, right? And there was VS Code and/or Visual Studio for Mac, so that wouldn’t be a problem.

First stop: the Octopus Deploy website.

“Hmm… there is a free trial, but then it’s $45 a month. Can’t say that’s unreasonable, but this is just a learning project, and just the first piece of a much bigger puzzle. Is there something cheaper? Or even free?”

One of the top hits on Google was Weaveworks. Their site had a ton of good information about CI/CD for Kubernetes, and their product, Weave Cloud, had a free tier when used in conjunction with Google Cloud Platform (GCP).

The fact is, GCP hadn’t been on Beck’s radar. He’d been thinking about either Azure or AWS. But what the heck? Setting up the GCP account was easy enough. Hooking it up to Weave Cloud wasn’t bad. He followed some tutorials to get a simple Hello World app running on Google Kubernetes Engine (GKE), which is part of GCP.

…and here comes a tangent. The first one? Maybe. But definitely not the last.

On the way to that first Hello World, Beck learned:

  • That you can run Kubernetes locally with Mikikube.
  • That the default hypervisor isn’t optimal, but you can tell Minikube to use a better one.
  • What a hypervisor is.
  • How to install things like hypervisors and minikube on a Mac using homebrew in a bash terminal.
  • That homebrew isn’t perfect, but “brew doctor” and Google-fu can get you there.
  • That you should use sudo.
  • That you shouldn’t use sudo.
  • That the cool people shorten Kubernetes to k8s.
  • That containers have been around longer than k8s. Docker is the big player when it comes to containerizing things. K8s makes managing containers easier, but you still build them with Docker.
  • And that you should delete your GKE cluster when you’re not using it so as not to waste any of the $300 credit Google gives new customers.

As this post draws to a close, many things were done, but…
There’s still no CI.
There’s still no CD.
Is Beck any closer to his goal?
What is his goal anyway?

We’ll get into that next time.

Comments