Pi Cluster Update


Pis on a Rack

photo of bare metal pi cluster

The cluster is built and looking good! With a bare metal set up, the next step is to get the operating system provisioned and loaded onto the SD cards. After that, it’s time to power up the Pis and get them established on my local network.

Installing the Operating System

For this installation, I’ve gone with the latest available Raspberry Pi OS from the RPi Foundation. It’s the default, and if anything is true it’s that the default mode is the easiest to set up and what’s easy is likely what’s going to keep happening. My goal here is to set up a cluster that enables the deployment of containers. Choosing the right OS for the job is simple in this case because Raspberry Pi OS is built for these machines.

Using the Raspberry Pi Imager it was easy to get the SD cards flashed and ready to go.

The only additional step I took here was enabling SSH on each Pi by mounting the SD card and executing the following command (from Mac OS)

touch /Volumes/boot/ssh

If you don’t already know what SSH is, there are plenty of YouTube videos to help you out. It’s a common tool used to connect to computers, and the above command simply creates a file called ssh that the OS will look for to automatically enable SSH when the Pi nodes boot for the first time.

Networking the Cluster

photo of networked pi cluster I used nmap to figure out the IP addresses of the individual nodes.

nmap -sT -p 22 192.168.1.0/24

The arguments here specify TCP connections using port 22 within the given IP range.

From the report nmap provided I determined each node’s dynamically-assigned IP address. I then assigned each node a static IP address so that they will always be accessible from predictable and known locations. I’m not very creative; my naming scheme was simply node* so my hostnames inventory looks like this:

node1
node2
node3
node4
node5
node6

Security Side

I can sometimes take it for granted that installing a fresh OS with SSH enabled means it’s an unsecured Linux box running on my network and that it’s on me to change the default password, so I’ll note here for posterity that setting up a cluster with unsecured nodes is NOT good. The first thing you should do is change the default credentials.

The default user and password for Raspberry Pi OS is pi and raspberry.

What’s next

  • Ansible
    • Installation
    • Configuration
    • Hello, world

Authored by Michael Lamb.
Published on 26 March 2021.


What I'm working on right now


Welcome to my newly refabricated weblog!

I’ve hosted various blogs across different platforms. Way back in the day I played around with Geocities and Xanga. Then there were the blessed days of Posterous. Most recently I hosted a blog using Ghost. In this latest foray, I’ll be running one attached to my Github profile using Github:Pages with focus on more technical subjects.

What I’m working on right now

I want to use this blog to document a new sandbox project to explore cluster computing concepts.

To Build a Computer Cluster

A computer cluster is a set of computers working together and viewed as a single system. The individual computers that make up a cluster are called nodes.

Here’s what I’ve purchased so far:

Qty Item Store Cost
1 GeeekPi 6-Layers Raspberry Pi Cluster Case (Clear) Amazon $20
6 Raspberry Pi 4 Model B/4GB PiShop.us $55/node
6 32 GB SD cards various < $10/card
1 TP-Link Litewave 8 Port Gigabit Ethernet Switch Amazon $16
1 CAT 6 Ethernet Cable - 10 Pack (1.5 ft) Amazon $13
2 AUKEY USB Charger 4 Ports Amazon $13
2 USB Type C Cable, Anker [3-Pack, 6 ft] Amazon $17

Goals

  • Set up and network a compute cluster with 6 nodes
  • Learn to install, configure, deploy, and maintain containers using Kubernetes
  • Learn to write Ansible Playbooks (exploring infrastructure automation)

Authored by Michael Lamb.
Published on 25 March 2021.


Hello, world!


Hello, world!


Authored by Michael Lamb.
Published on 24 March 2021.



Michael Lamb is a software engineer for privately-held telecommunications and technology company C Spire, headquartered in Ridgeland, Mississippi. He is a resident of Jackson, Mississippi, with his two cats and many plants. He graduated from Mississippi State University with a bachelor of science in Software Engineering. He is happily employed full-time creating microservices using Java and Spring technologies but is open to consulting.
© Copyright 2021