My First Kubernetes: k3s 'cluster' on 3 Orange Pi Zero 3's
Setting up a Kubernetes cluster with Orange Pi Zero 3 boards involves control and worker nodes, deploying apps, and overcoming ARM64 image compatibility challenges. Detailed steps, including Dashboard setup and user management, are shared, offering practical insights for Kubernetes enthusiasts.
Read original articleIn this article, the author describes setting up a Kubernetes cluster using three Orange Pi Zero 3 single-board computers. The cluster includes a control plane node and worker nodes, with detailed instructions on installation and configuration using k3s. The setup involves deploying the Kubernetes Dashboard, a Hello World app, and testing failover mechanisms. The author also shares challenges faced during deployment, such as compatibility issues with ARM64 images. The article provides step-by-step guidance on setting up the cluster, managing nodes, and installing the Dashboard UI using Helm. Additionally, it covers creating user credentials, testing deployments, and accessing the Kubernetes Dashboard. The author emphasizes using declarative YAML files for configurations and shares personal experiences and learnings throughout the setup process. The article serves as a practical guide for individuals looking to explore Kubernetes on small-scale hardware like the Orange Pi Zero 3.
Related
EasyOS: An experimental Linux distribution
The EasyOS website is a comprehensive guide covering the unique operating system. It includes advantages, development guidelines, application details, installation tutorials, technical workings, and troubleshooting insights, serving as a valuable resource.
CRIU, a project to implement checkpoint/restore functionality for Linux
CRIU is a Linux tool for freezing and saving container/application states, enabling live migration and snapshots. Integrated into software like Docker, it offers CLI, RPC, and C API for checkpointing. Various resources and events showcase its capabilities and development progress.
The FreeBSD-native-ish home lab and network
The author details a complex home lab setup with a FreeBSD server on a laptop, utilizing Jails for services like WordPress and emphasizing security measures and network configurations for efficiency and functionality.
Podman Desktop 1.11: Light mode, Kubernetes features, macOS improvements
Podman Desktop 1.11 introduces light mode, Rosetta support for Apple Silicon, Kubernetes enhancements, improved UI, and manifest support. Users can toggle light mode, achieve faster AMD64 builds on Apple Silicon, and benefit from upgraded features.
Dashboard and UIs for Node-Red
Node-RED Dashboard 2.0 offers a workshop on July 2nd for creating data-driven dashboards. It provides nodes for custom interfaces and recommends FlowFuse for enhanced capabilities and streamlined management of Node-RED applications.
Ultimately, I ripped it apart and stuck to using my x86 servers and now run Talos Linux[1] which is currently my favourite way to do Kubernetes on bare metal.
With Pi4, the cluster services just used too much of the available compute and though it was a fun project, want practical for my home lab.
Now the Pi5 is available (and I have some), I might look at adding them to my existing clusters for some mixed-architecture fun.
[0]https://2byt.es/post/bantamcloud/01-build/ [1] https://www.talos.dev/
I went through my own journey to get an understanding with k8s, in a homelab setting. It started with MicroK8s on a VM running on a 2011 macbook pro I had lying around. That was painful, but I eventually had something useful running, until it weirdly self combusted one day and weeks of hard work resulted in ssh failing to connect because the K8s instance seemed to have deleted itself from the VM. I think it was trying to tell me something.
I decided to persist, but this time with k3s, and no VM on an outdated Mac. Instead I went with an outdated HP Thinclient. A bargain on ebay, with extra RAM. That worked much better. Now I have a bunch of great self hosted software for home media, development servers, git repos, docker servers, CI/CD pipelines. With storage managed by a NAS. All managed via simple helm charts. It's really useful. I discovered Tailscale along the way, that opened up a whole new world of self hosting abilities.
I get the nerd sniping, I've seen k8s abused in work situations too, but underneath it, people just wanted to learn.
I had a similar situation recently trying to bake shokupan for the first time. There was a new bread maker. It made perfect rising normal bread. But trying the Shokupan recipe produced a damp brick. A total failure. I persisted, read a ton of recipes and blogs, watched countless youtube videos. I was convinced it was an equipment or method issue. Eventually, 3 damp bricks later, I realised the yeast was out of date. This was the first thing people recommended to check, but I thought I knew better because "it worked on my machine" with the normal bread. Anyway, the 4th attempt with new yeast produced a perfect loaf. And I learnt a ton of other useful info for baking great bread along the way. The elation when it finally worked, and I had amazing fluffy home made bread, was a very similar sense of reward and accomplishment to finally getting some program or system to work.
I thought about this a while back when there was a global shortage of Raspberry Pis. I'd see people with like 8 of them in a toy cluster and thought it was a shame because some people might have a real use for one but couldn't get one.
You can use things like docker-machine or Vagrant to easily spin up a bunch of VMs for things like this. Also you can use Rancher to automatically provision a cluster for you (but I guess you won't learn as much that way).
> I run the Orange Pi Boards without a Micro SD Card, they boot up via PXE with an NFS root file system, so I cannot use overlayfs2. Therefore during installation I provide an extra parameter to use the native shapshotter. Also some etcd timeouts are raised.
Both single-node (yeah, sue me) and multi-node have been working great, required minimal maintenance and have a super straight forward install procedure
Related
EasyOS: An experimental Linux distribution
The EasyOS website is a comprehensive guide covering the unique operating system. It includes advantages, development guidelines, application details, installation tutorials, technical workings, and troubleshooting insights, serving as a valuable resource.
CRIU, a project to implement checkpoint/restore functionality for Linux
CRIU is a Linux tool for freezing and saving container/application states, enabling live migration and snapshots. Integrated into software like Docker, it offers CLI, RPC, and C API for checkpointing. Various resources and events showcase its capabilities and development progress.
The FreeBSD-native-ish home lab and network
The author details a complex home lab setup with a FreeBSD server on a laptop, utilizing Jails for services like WordPress and emphasizing security measures and network configurations for efficiency and functionality.
Podman Desktop 1.11: Light mode, Kubernetes features, macOS improvements
Podman Desktop 1.11 introduces light mode, Rosetta support for Apple Silicon, Kubernetes enhancements, improved UI, and manifest support. Users can toggle light mode, achieve faster AMD64 builds on Apple Silicon, and benefit from upgraded features.
Dashboard and UIs for Node-Red
Node-RED Dashboard 2.0 offers a workshop on July 2nd for creating data-driven dashboards. It provides nodes for custom interfaces and recommends FlowFuse for enhanced capabilities and streamlined management of Node-RED applications.