Personal k8s Cluster Roadmap

Personal k8s Cluster Roadmap

The Problem So far, my ideas for experimenting with my personal Kubernetes cluster have been spread out across discrete blog posts. As a result, its difficult for me, and I imagine y'all as the readers, to track a prioritized list of projects. via GIPHY I also think that, in the future, it will be useful for us to be able to easily see which projects have been completed and which have not.
(Part 1) SLO Implementation: Release the Metrics

(Part 1) SLO Implementation: Release the Metrics

In the blog post overviewing our SLO implementation, I listed configuring our blog to expose the metrics for Prometheus to scrape as the first step. To fulfill that promise, this post examines the necessary steps for taking our static website and serving it via a production web server which exposes the latency and success metrics our SLO needs. A brief examination of Prometheus metrics Application monitoring has two fundamental components: instrumentation and exposition.
(Part 0) SLO Implementation: Overview

(Part 0) SLO Implementation: Overview

My last two blog posts enumerated this blog's SLO and error budget. Our next logical step is adding the monitoring and alerting infrastructure which will transform our SLO usage from theoretical to practical. Like creating a Kubernetes of One's Own, this project contains multiple steps which we'll explore over multiple blog posts. While this series focuses on achieving this goal for this blog's specific SLO, the techniques are applicable to many scenarios.
This Blog Has an Error Budget Policy

This Blog Has an Error Budget Policy

In my last blog post, I publicized an SLO for this blog. I also mentioned that, in the future, I'd couple the SLO with an error budget and error budget policy. Well, the future is today, because this post will define error budgets and error budget policies and their benefits, before proposing a specific error budget and error budget policy to accompany our previously defined SLO. What are Error Budget and Error Budget Policies?
This Blog Has an SLO

This Blog Has an SLO

Background I recently started reading The Site Reliability Workbook, which is the companion book to the excellent Site Reliability Engineering: How Google Runs Production Systems. via GIPHY These books devote considerable attention to Service Level Ojectives (SLOs), which are a way of defining a given level of service that users can expect. More technically, a SLO is a collection of Service Level Indicators (SLIs), metrics that measure whether our service is providing value, and their acceptable ranges.
Hosting Static Blog on Kubernetes

Hosting Static Blog on Kubernetes

In my last three blog posts, we focused on creating a Kubernetes cluster you can use for your own personal computing needs. But what good is a Kubernetes cluster if we're not using it to run applications? Spoiler alert, not much. Let's make your Kubernetes cluster worth the cash you're paying and get some applications running on it. In this post, we'll walk through deploying your first application to Kubernetes: a static blog.
(Part 2) A Kubernetes of One's Own: Can We Build It? Yes We Can!

(Part 2) A Kubernetes of One's Own: Can We Build It? Yes We Can!

In my last blog post, we outlined the different methods of creating and maintaining a Kubernetes cluster, before deciding on Kops. In this blog post, we'll actually create the cluster using Kops. I'll provide source code and instructions, so by the end of this post, you can have your own Kubernetes cluster! This tutorial is strongly based on Kops AWS tutorial, although its even simplifier because I've written some generic terraform configurations which simplify initial AWS configuration.
(Part 1) A Kubernetes of One's Own: I Can Haz Cluster?

(Part 1) A Kubernetes of One's Own: I Can Haz Cluster?

In my last blog post, I hope I convinced you why you should be creating your own Kubernetes cluster for personal usage. Now, we can tackle the fun part of creating the cluster. What is a Kubernetes cluster? via GIPHY We can start by answering the most important question: what is a Kubernetes cluster? A Kubernetes cluster is a collection of physical resources on which we run the Kubernetes container management software.
(Part 0) A Kubernetes of One's Own: Start with Why

(Part 0) A Kubernetes of One's Own: Start with Why

From my last blog post, you know Kubernetes manages the blog you are reading right now. But I violated pretty much all the rules of good blogging by only briefly discussing why I wanted to start running my own production Kubernetes cluster in the first place, and how exactly I made that happen. I think I was just excited it was working and I wanted to share… via GIPHY Now, I'm writing to remedy my excited self's mistakes.
This Blog is Running on Kubernetes

This Blog is Running on Kubernetes

I've avidly followed the Kubernetes project since it was the basis of my undergraduate thesis in 2015. But despite all my reading and minikube experimentation, I felt I was missing out the important lessons you can only learn from using a technology to run real applications in production. I acutely felt this pain when contributing code to the Kubernetes ecosystem, as I was able to fix bugs, but didn't have knowledge and empathy around the production user's experience.