Install Kubernetes on a Raspberry Pi Cluster

Posted on Wednesday, August 26, 2020

Photo by Flavio Gasperini on Unsplash

The full text of this article can be found on Medium

This is the third article in the series described in Develop and Deploy Kubernetes Applications on a Raspberry Pi Cluster. The previous article covered setting up a Raspberry Pi cluster. The next article is How to Install Kubernetes Ingress on a Raspberry Pi Cluster.

This article is where the rubber meets the road, getting a fully operational, multi-node, Kubernetes cluster up and running on a Raspberry Pi cluster. This article assumes basic familiarity with Kubernetes.

Articles in the Series

The full set of articles are:

  • Set up a Raspberry Pi Cluster : Describes how to set up and configure a group of Raspberry Pis into a cluster. This includes defining the networking within the cluster and to an external network.
  • Install Kubernetes on a Raspberry Pi Cluster: This includes installing & configuring Kubernetes as well as building and deploying a simple service. This latter step involves a minimal application that can be used to test the Kubernetes cluster as well as simple external network access to the application.
  • Install Kubernetes Ingress on a Raspberry Pi Cluster: Ingress is a useful way to support external access to services inside the cluster. In this article I’ll be describe how to install, configure, and test Traefik as an Ingress Controller. This article also includes installing and configuring Helm. Helm will be used to deploy Traefik. Helm will also be used in later articles in the series.
  • Kubernetes Application Monitoring on a Raspberry Pi Cluster — Install Prometheus, Grafana, and an EFK (Elasticsearch/Fluentd/Kibana) as a monitoring stack. It also covers installing Telegraf on the cluster to monitor machine level metrics for hosts on the cluster. E.g., CPU load and temperature, disk usage
  • How to Install MariaDB on a Raspberry Pi — The title says it all. One thing to note, MariaDB is a drop-in replacement for MySQL