Install Kubernetes Ingress on a Raspberry Pi Cluster

Posted on Wednesday, August 26, 2020

Photo by Tianshu Liu on Unsplash

The full text of this article can be found on Medium


This is the fourth article in the series described in Develop and Deploy Kubernetes Applications on a Raspberry Pi Cluster. The previous article described how to install Kubernetes on a Raspberry Pi cluster. This article is about Kubernetes Ingress. The next article, Kubernetes Application Monitoring on a Raspberry Pi Cluster, covers setting up Prometheus, Grafana, and a Elasticsearch, Fluentd, and Kibana (EFK) stack on the cluster.

Overview

Ingress is a mechanism that allows clients in an external network to invoke services running in our Kubernetes cluster. There are other ways of accomplishing this in Kubernetes — e.g., kubectl expose…— NodePorts and load balancers. They each have pros and cons, but suffice it to say that Kubernetes Ingress provides additional capabilities that make it more attractive. These include:

  • Service discovery
  • Canary-release routing
  • Rate limiting
  • Circuit breaking
  • And much more …

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