Matias Wired Aluminium Tenkeyless Keyboard review
Short version: good form-factor, poor quality. Returned.
Short version: good form-factor, poor quality. Returned.
Back what I was setting up my home Kubernetes cluster the latest Kubernetes version was 1.18.6.
A lot of minor and major versions were released since then and now the latest version is 1.21.0. I didn't go all the way to 1.21.0 but I've recently performed upgrade to latest stable version in 1.20 branch.
Kubernetes has somewhat decent upgrade instructions. But they are far from comprehensive and I've learned a few thing things even upgrading my small home cluster with a very small number of apps. I can understand now why Kubernetes admins fear upgrades.
After setting up my shiny single-node Kubernetes "cluster" I wanted to do something useful with it. Many of the useful things require your useful data not to disappear, so I needed to figure out how to do that.
In Kubernetes storage is organized via Volumes. These Volumes can be attached to Pods via Volume Claims. There are two types of Volumes: regular ones and Persistent Volumes. Regular Volumes are ephemeral and destroyed together with Pods (e.g. when it crashes or rescheduled). These are of course less interesting than Persistent Volumes which as the name suggest survive Pod restarts.
There are many ways to implement Persistent Volumes, the simplest is probably to use Local Persistent Volumes. They simply bind local directory into pod. However they force pods to be always running on the same node.
This was not interesting enough for me so I went with something more complicated.
As Ireland went into second lockdown of 2020, I've decided to upgrade my home personal computer.
I use my PC for gaming, hacking around with Linux and general wasting time in the Internet.
Previously I used PC with Intel i5-3550. After an SSD, GPU and memory upgrades it was still a very capable machine. It is actually still in use today to play some less demanding games co-op with my spouse. However I was not 100% happy with how some CPU-heavy games behaved (city/transport simulators), and compile times were getting annoyingly long while hacking. Another thing I was not happy about is fan management - the old PC had proprietary Lenovo motherboard which would spin case and CPU fans too much.
Given above I wanted:
This post is a follow-up to a post where I talk about backups strategy.
Here I describe my solution for file backups from my Linux computers, and don't yet go into the subject of other devices and online services.
After some experimentation I decided to use restic for this. Restic is a modern, open-source backup program with an active community. It is written in Go. It runs on Linux (but also BSD, Mac and Windows) and can back up to local disks as well as remote/cloud services.
And as I wanted my backups to be cheap, "pay as you go" and off-site I've opted to use Backblaze for storage.
There are two kinds of people in this world: people who back up their files and people who will back up their files.
If you don't do backups, check the world backup day website. It lists a number of reasons of why backups are important and provides some advice on how to start backing your files up.
However, their advice is rather simplistic. After following it and setting up /some/ backup, one may end up with no usable backups still and false sense of security. Or, people who are more paranoid (or experienced?), may still have some anxiety. There are still many open questions. Do I backup the right files? Did I forget anything? Will these backups protect me from all data loss situations? Do they cost me too much?
Recently I've stumbled upon Liberapay.
Liberapay is a non-profit crowdfunding platform. The most interesting thing is that Liberapay does not charge fee for donations. Instead, it relies on donations itself. So Liberapay has account on Liberapay. Another big upside is that it appears to be entirely open-source.
The biggest downside is that it does not appear to be very popular, so there is not all that many things to donate to there.
Still, I found a few things and set up a few tiny recurring donations.
Then I thought it would be interesting to get some. Mostly as a social experiment - I would be surprised to get a single cent.
The setup was fairly straightforward. Any registered user can add Stripe or PayPal account. I was not registered in either, so I opted to sign up for Stripe which took around 10 minutes.
It is also quite easy to add "Donate" button to GitHub. Once simply needs to place
.github/FUNDING.yml file to their default branch. For me it looked like this:
There are more docs and examples on GitHub.
Click my button, give me some money. I don't intend to profit on it, and would try to match anything given to me, though quite likely not through Liberapay unless it suddenly becomes more popular.
I found following interesting (to me) projects there:
As almost any engineer I have a small "server" at home. This server is nothing more than an old laptop running CentOS and a few docker containers in it. At some point I got tired of restarting and updating them manually. And of course instead of writing a few systemd unit files I've decided to over-engineer it and run Kubernetes on it.
This was a nice way to keep myself busy for a few evenings and get some relevant experience.
After small amount of reading it was quite obvious there is no single way to set up Kubernetes. There are many ways to set Kubernetes up and it's easy to get lost. Thus before doing everything else, let's outline what is it that I wanted:
Monit is a simple, lightweight, but useful and powerful enough monitoring solution for your servers.
Monit can monitor: * OS processes (presence, resources) * files, directories and file system for changes (mtime, size and checksum changes) * network hosts (ping, TCP connections)
Monit can notify administrator via configurable e-mail messages. It also can automatically restart failed service.
Monit has an embedded web-server which allows to view state on monitoring objects and disable or enable them.