Skip to content

Latest commit

 

History

History
89 lines (59 loc) · 3.21 KB

README.md

File metadata and controls

89 lines (59 loc) · 3.21 KB

Cubienetes: A Kubernetes Cluster on Cubieboard2s

This is a project to build a home 5-node Kubernetes cluster using Cubieboards.

Parts

Assembly

First versions of the hard disk brackets didn't quite fit:

First partial assembly

I did a full build to get a handle on the cabling too:

First full assembly

Problems were:

  • The SSD mounting hole pitch was off by 0.5mm.
  • The walls around the pillars meant the distance between the pillars was too small.
  • The bore of all the holes (3mm) was too tight for M3 threaded rod and needed drilling out. Surprisingly the Shapeways white plastic took this quite well.

So I created & new design and ordered that:

Second partial assembly

And with the router & PSU double-sided-sticky taped on, and cables all cable-tied:

Second full assembly

Software

Operating System

Manual setup

For ansible to work, I setup password-less ssh:

mkdir .ssh
chmod 700 ~/.ssh
echo "<REDACTED>" > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

I did this manually. I also statically assigned IP addresses 192.168.0.1-5 to the Cubieboards manually. The rest was configured with ansible.

Automated setup

I designated the first Cubieboard as the "master", and set it up to do NAT routing & DNS as it also has a WiFi adapter.

ansible-playbook --inventory-file=inventory --user=root custom-playbooks/networking.yaml

The disks got LVM & ext4 installed and mounted at /mnt/countainers:

ansible-playbook --inventory-file=inventory --user=root custom-playbooks/disks.yaml

And the hostnames were all set and put in /etc/hosts:

ansible-playbook --inventory-file=inventory --user=root custom-playbooks/hostname.yaml

Docker Daemon

ansible-playbook --inventory-file=inventory --user=root custom-playbooks/docker.yaml