Part Two — bootstrapping Kubernetes the semi-hard way

Image for post
Image for post

If you missed Part 1 of this series, read up: Part One

The “metal” in bare-metal

Virtualization has changed our concept of a physical server so much that we have started calling it “bare-metal”. On the other hand, hypervisors, CPU cores, and fast storage have progressed so much that it’s not easy to tell the difference between bare-metal and a VM anymore — the latter being identifiable mostly by VM-specific support tools, services, or drivers. …

Webhooks included. Also Kubernetes.

Ansible AWX (or its commercial counterpart, Red-Hat’s Ansible Tower) is a Web UI driven tool for enterprise deployment automation based on Ansible. Gitlab is an increasingly popular git-based repository manager with a lot of side-options. The two can really play into each other’s strengths with a bit of tinkering.

AWX really wants to be deployed into Kubernetes or a similar docker-based orchestration solution like OpenShift - just read the docs. …

Part One — the architecture.

Image for post
Image for post

Major cloud provides can offer you an almost-instant, scalable cluster on demand, but there’s a trick or two you can pull while leveraging your own architecture. One of the reasons you might want to deploy your own Kubernetes cluster is because you already have some on-prem or collocated bare-metal hardware. Another is the flexibility of architecture. Price also comes to mind if you already own metal in your racks. Last but not least, you could learn a thing or two.

Anyway, that was my line of thinking when we went forward to deploy an on-prem Kubernetes cluster in my company…

There are lots of options nowadays to describe and actually deploy your infrastructure as a code (IaC) — here we are gonna take a look at how to set up some quick& dirty continuous integration (CI) using the increasingly popular Terraform tool to spin up IaC and Gitlab as a source-control and CI platform.

How does it work? Well, ideally, you simply edit your Terraform resource files using your favorite editor (MS Word not allowed), push the repo via git to Gitlab and the GitLab’s CI Pipeline will make required changes directly to your infrastructure. …

Or how to bring the LAMP stack to the 21st century.

Nextcloud is a private cloud file-sync solution that is pretty easy to set up on classical LAMP infrastructure, however that particular solution isn’t good for scaling horizontally. Kubernetes (or, more affectionately, K8S), the Dev Ops poster child, makes scaling trivial, as long as you can bring your services as close to being stateless as possible.

In that spirit, I will declare MySQL service out of scope right away; you will need it somewhere, somehow. While there’s a MySQL Operator for K8S nowadays, not all things are made stateless, so I suggest having an externally reachable MySQL server (or cluster) ready…

Marko Skender

The Ops in DevOps.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store