-
Sometimes the problem is DNS (on Hetzner)
If you're running on Hetzner, you might want to update your DNS settings to use some other resolvers. This can problem can manifest if you're trying to resolve DNS names that resolve to your own machines *from inside your own machines*.
-
So you need to wait for some Kubernetes resources?
Want to wait for some Kubernetes resources and don't want to write a full reconciliation loop/operator? Here's how to hack it.
-
The Deployment Spectrum
A quick writeup on the 'deployment spectrum' and it's history, as I see it.
-
Wicked Landing Gear
I stood on the shoulders of the giants over at wickedtemplates (https://www.wickedtemplates.com) who open sourced wickedblocks (https://blocks.wickedtemplates.com/) and built their tailwind templates into individual components powered by lit-html, which is now called Lit (https://lit.dev/)
-
Novice Arch Pitfall: watch out for kernel mismatches (after system updates)
Watch out for kernel version mismatches after system updates (i.e. updates of the 'linux' package) -- spooky behavior can occur if you're not careful
-
Level 1 Automated K8S Deployments With GitLab CI
You may not need Flux/ArgoCD or any fancy automated reconciliation loop deployment process just yet! Plain old CI runners work quite well for simple automated deployments (this approach powers this blog right now!).
-
Postgres Tip: Covering with primary key indices
Some quick code (PG migrations) to enable converting an auto-generated postgres primary key index to a covering index
-
Paxosmon 2: The Paxos Journey Continues
A few more Paxos papers to take a gander at -- Quorum reads, Compartmentalization, Matchmaking and Pigs. The Paxos family of consensus protocols (and their papers) are as colorful as they ever were.
-
Years later, REST-ish Services in Haskell Part 4
Part 4 of a series on how I write REST-ish web services in Haskell with a dash of robustness
-
Setting Up SES With Pulumi
A step by step guide on how to set up SES with Pulumi
-
Stuffing both SSH and HTTPS on port 443 with stunnel, sslh, and Traefik
A small exploration and guide (with repo) into exposing SSH to a container in a Pod over port 443 (which is normally used for HTTPS).
-
K8s storage provider benchmarks round 2, part 5
I finish up the benchmarking process, and share the results. If you want to find what I actually end up using, the answer is in here!
-
K8s storage provider benchmarks round 2, part 4
I describe in detail the YAML and Makefile scripts that power the fio and pgbench based tests that will run on every storage provider I managed to set up
-
K8s storage provider benchmarks round 2, part 3
I install even more storage providers -- this time OpenEBS cStor, Jiva, LocalPV hostPath, LocalPV ZFS and LINSTOR
-
K8s storage provider benchmarks round 2, part 2
I start installing storage plugins, this time Rook (Ceph) -- which takes a while -- and OpenEBS Mayastor. Read this if you want to read a feel-good underdog system administration story.
-
Automatically closing issues is violence
How closing issues automatically is destroying our society, one cold trail at a time.
-
K8s storage provider benchmarks round 2, part 1
Part 1 of my second crack at benchmarking storage providers that scale from hobbyist to enterprise. In this post I go over the setup (the code isn't public just yet) of the dedicated servers I'll be using
-
K8s Upgrade Sunday 03-21-21
Kubernetes upgrade sunday -- A series of posts where I do some maintenance and upgrades on my k8s cluster that sometimes happens on a sunday. This sunday I work on node local DNS caching, kube-router, jaeger, cert-manager, traefik, and containerd
-
Serving a single file over HTTP with Rust and Go
Has anyone ever written anything that serves just a single file? Should this even be written? I don't know the answer but I've written it, twice.
-
Ingress Controller considerations in early 2021
Are there some other compelling ingress controllers for the Kubernetes ecosystem I should consider switching to in 2021?