summaryrefslogtreecommitdiff
path: root/gemfeed
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-12-05 11:28:12 +0200
committerPaul Buetow <paul@buetow.org>2024-12-05 11:28:12 +0200
commit7f4aadb88ff9f4194bdd5d2b83495d4c808e3779 (patch)
tree2654d9254c23aafecc53152b7b3dfc27b0dde030 /gemfeed
parentc938874c18ee736b9e4a5e3d1d6606455c71ec30 (diff)
other headings
Diffstat (limited to 'gemfeed')
-rw-r--r--gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.gmi.tpl36
1 files changed, 22 insertions, 14 deletions
diff --git a/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.gmi.tpl b/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.gmi.tpl
index 71e77840..9b31c5e3 100644
--- a/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.gmi.tpl
+++ b/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.gmi.tpl
@@ -18,7 +18,7 @@ Let's continue...
<< template::inline::toc
-## Deciding on the hardware
+# Deciding on the hardware
Note that the OpenBSD VMs included in the f3s setup (which will be used later in this blog series for internet ingress - as you know from the first part of this blog series) are already there. These are virtual machines that I rent at OpenBSD Amsterdam and Hetzner.
@@ -29,7 +29,7 @@ This means that the FreeBSD boxes need to be covered, which will later be runnin
I've been considering whether to use Raspberry Pis or look for alternatives. It turns out that complete N100-based mini-computers aren't much more expensive than Raspberry Pi 5s, and they don't require assembly. Furthermore, I like that they are AMD64 and not ARM-based, which increases compatibility with some applications (e.g., I might want to virtualize Windows (via bhyve) on one of those, though that's out of scope for this blog series).
-### Not ARM but Intel N100
+## Not ARM but Intel N100
I needed something compact, efficient, and capable enough to handle the demands of a small-scale Kubernetes cluster and preferably something I don't have to assemble a lot. After researching, I decided on the Beelink S12 Pro with Intel N100 CPUs.
@@ -54,7 +54,7 @@ The Beelink comes with the following specs:
I bought three (3) of them for the cluster I intend to build.
-### Beelink unboxing
+## Beelink unboxing
Unboxing was uneventful. Every Beelink PC came with:
@@ -67,15 +67,15 @@ Unboxing was uneventful. Every Beelink PC came with:
Overall, I love the small form factor.
-### Network switch
+## Network switch
I went with the tp-link mini 5-port switch, as I had a spare one available. That switch will be plugged into my wall ethernet port, which connects directly to my fiber internet router with 100 Mbit/s down and 50 Mbit/s upload speed.
=> ./f3s-kubernetes-with-freebsd-part-2/switch.jpg Switch
-## Installing FreeBSD
+# Installing FreeBSD
-### Base install
+## Base install
First, I downloaded the boot-only ISO of the latest FreeBSD release and dumped it on a USB stick via my Fedora laptop:
@@ -99,7 +99,7 @@ After doing all that three times (once for each Beelink PC), I had three ready-t
=> ./f3s-kubernetes-with-freebsd-part-2/f3s-collage2.jpg Beelink installation
-### Latest patch level and customizing `/etc/hosts`
+## Latest patch level and customizing `/etc/hosts`
After the first boot, I upgraded to the latest FreeBSD patch level as follows:
@@ -118,7 +118,7 @@ root@f0:~ # cat <<END >>/etc/hosts
END
```
-### Additional packages after install
+## Additional packages after install
After that, I installed the following additional packages:
@@ -126,14 +126,20 @@ After that, I installed the following additional packages:
root@f0:~ # pkg install helix doas zfs-periodic uptimed
```
+### Helix editor
+
Helix? It's my favourite text editor. I have nothing against `vi` but like `hx` (Helix) more!
+### `doas`
+
`doas`? It's a pretty neat (and KISS) replacement for `sudo`. It has far fewer features than `sudo`, which is supposed to make it more secure. Its origin is the OpenBSD project. For `doas`, I accepted the default configuration (where users in the `wheel` group are allowed to run commands as `root`):
```sh
root@f0:~ # cp /usr/local/etc/doas.conf.sample /usr/local/etc/doas.conf
```
+### Periodic ZFS snapshotting
+
`zfs-periodic` is a nifty tool for automatically creating ZFS snapshots. I decided to go with the following configuration here:
```sh
@@ -157,6 +163,8 @@ root@f0:~ # sysrc monthly_zfs_snapshot_keep=6
monthly_zfs_snapshot_keep: 2 -> 6
```
+### Uptime tracking
+
`uptimed`? I like to track my uptimes. This is how I configured the daemon:
```sh
@@ -190,9 +198,9 @@ This is how I track the uptimes for all of my host:
=> ./2023-05-01-unveiling-guprecords:-uptime-records-with-raku.gmi Unveiling `guprecords.raku`: Global Uptime Records with Raku
-## Hardware check
+# Hardware check
-### Ethernet
+## Ethernet
Works. Nothing eventful, really. It's a cheap Realtek chip, but it will do what it is supposed to do.
@@ -210,7 +218,7 @@ re0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
```
-### RAM
+## RAM
All there:
@@ -220,7 +228,7 @@ hw.physmem: 16902905856
```
-### CPUs
+## CPUs
They work:
@@ -232,7 +240,7 @@ dev.cpu.1.freq: 604
dev.cpu.0.freq: 604
```
-### CPU throttling
+## CPU throttling
With `powerd` running, CPU freq is dowthrottled when the box isn't jam-packed. To stress it a bit, I run `ubench` to see the frequencies being unthrottled again:
@@ -251,7 +259,7 @@ Idle, all three Beelinks plus the switch consumed 26.2W. But with `ubench` stres
=> ./f3s-kubernetes-with-freebsd-part-2/watt.jpg Idle consumption.
-## Conclusion
+# Conclusion
The Beelink S12 Pro with Intel N100 CPUs checks all the boxes for a k3s project: Compact, efficient, expandable, and affordable. Its compatibility with both Linux and FreeBSD makes it versatile for other use cases, whether as part of your cluster or as a standalone system. If you’re looking for hardware that punches above its weight for Kubernetes, this little device deserves a spot on your shortlist.