Kubernetes Intro 2: Deployments

In the last post we talked about pods, which are the basic work unit in Kubernetes. Pods are ephemeral, and they may stop running for any number of reasons: node failure, preemption by a higher-priority workload, internal error, etc. When a pod stops, it doesn’t restart on its own. For this, you need a deployment. A deployment is a level above a pod. Whereas a pod is a (relatively) “tangible” thing in the cluster, a deployment is more like a standing order. ...

November 9, 2020

Kubernetes Intro 1: Pods

Once you have kubectl set up, the full power of Kubernetes is at your fingertips! There’s a lot to learn before you can build exascale applications to serve bajillions of requests per second, though. In this post, we’ll get familiar with pods. Create a pod The term pod is k8s-ese for container, basically. Technically, a pod can have multiple containers in it, but usually it just has one. Pods are pretty much the only reason K8s exists; everything else about K8s revolves around getting traffic to and from pods. Let’s create one! Put the following into a file named myfirstpod.yml: ...

November 8, 2020

Kubernetes Intro 0: Setup

This is a series on how to get your feet wet with Kubernetes (K8s). We won’t talk about the nitty-gritty details, since the K8s docs serve that purpose already. The purpose is to give an overview and some familiarity with what K8s is and how it works. In this post, we’ll set up your machine with the basics so that you can start working in a K8s cluster. Assumptions for the series: ...

November 8, 2020

Create a Kubernetes Cluster with Rancher

Kubernetes is all the rage in the web developer world these days, and it’s gaining traction in the AI/ML community as well. Kubernetes is basically an engine that runs containers in the right place at the right time, accessible by the right entities…And containers are basically just individual, isolated programs with a whole lot of marketing hype. Simple enough, right? This post describes how to get started as an administrator (not a developer) of a cluster from scratch. If you have a bunch of computers lying around at the office, and your development group is interested in trying Kubernetes without investing any money into it, this post is for you. ...

June 7, 2020

Encrypt a USB Drive in Linux with Cryptutils

Encrypting a drive in Linux used to be an extremely cryptic (I’m not sorry) process. Now, while it still is not entirely straightforward, there are tools to make it less painful. Even better, most desktop environments will handle mounting and unmounting encrypted volumes automatically with a simple password prompt once you get the drive set up. For this tutorial, I assume you want to encrypt an external USB drive and that you don’t mind wiping it first. I assume you’re comfortable working with the command line. ...

May 21, 2020

Raspberry Pi NFSv4 Server (Dockerized)

Sometimes you just need an NFS server. This guide will show how to start a simple, albeit insecure (public read/write), NFSv4 server in a Docker container on a Raspberry Pi. I assume the Pi is all set up and ready to go and that you’ll use an external drive for storage. I also assume you’re at least familiar with parted or fdisk. Prepare storage drive (If you already have your external drive formatted and mounted, skip this section.) ...

May 19, 2020

Headless Raspberry Pi Setup Checklist

These are brief instructions for setting up a headless Raspberry Pi in a controlled manner. I assume you’ve done this sort of thing before and are just looking for a quick reference. Prep First, get the Raspbian Lite image. Use Etcher to put the image on an SD card. You can just use the Raspbian .zip file (no need to unzip). Networking Mount the rootfs volume on the SD card. You can do this from the file explorer GUI if you like. Open /etc/dhcpdcd.conf (as root) and set the configuration to something like this: ...

May 18, 2020