This time, I decided to do something else. One of the perks of the new role is to be involved in incubation projects so I decided to build a “tight as possible”, highly available, multi-master Kubernetes cluster on top of Raspberry Pi.

Couple of disclaimers before I dive in:

  1. This is definitely not a production-grade architecture and implementation so don’t be crazy using it for, well, production.
  2. The companies which their products I will be showing in this post, did not talk to me, paid me or asked me to write a review. This is based on my own analysis and needs.

Motivation

Basically, I wanted to build a portable K8s setup which I can use when testing some internal projects while leveraging ARM architecture.

It is no secret that IoT and Edge computing are hot topics these days, although Edge is a very broad concept which IMO it doesn’t end with small Raspberry Pi computer or some sensors, it is more than that and can even be a full-blown vSphere cluster. As always, It all depends on the business requirements.

Yes, I am aware of the K3s project from Rancher. I am following that project but to be honest I haven’t formalized a solid opinion on it. In the next posts, I believe I will be writing about it a bit more.

References

I did (and still doing) a lot of research on this topic, both from the hardware and software side. There some great posts and projects out there which I want to point out.

The what

I wanted to build an architecture which you can just take, provide some electrical juice to and start playing. I did have a few key requirements for the hardware which I’m going to use.

  1. I worked under the assumption that a single K8s master node is a no-go.
  2. This had to be as plug-and-play as possible, meaning, I wanted easy access for how power gets connected.
  3. If one Pi gets malfunctioned, I needed a way to easily replace it.
  4. The network stack had to be compact but also managed by software. I wanted to have granular control for some more advanced use cases that might come in the future.
  5. I didn’t want to deal with the “not enough power” situation.
  6. I like things to stay cool.
  7. It had to be pretty as much as possible. Functionality and portability come first but if I can make it look nice why not?!

In the next post, I will be focusing more on the hardware I selected for this project. I am still working on the software side of the house and hopefully, I will feel comfortable releasing follow-up posts soon enough.

Stay tuned for this 🙂

LEAVE A REPLY

Please enter your comment!
Please enter your name here