Building a Kubernetes Development Cloud with Raspberry Pi 4, Synology NAS and OpenWRT – Part 6 – Kubernetes and Traefik Dashboards

This is the sixth article in a series covering detailing building a Raspberry Pi Kubernetes development cluster. In the first 5 parts we covered what was going to be built, the set up of the infrastructure and the deployment of Kubernetes and Network ingress. In this post we will cover the installation of the kubernetes and Traefik dashboards.

Firstly, Traefik is the Ingress controller that comes preinstalled with k3s by default. It is the ingress controller that allows you to route a http traffic to any of your kubernetes nodes, and have that connection routed to the correct pod regardless of which node the pod resides on. Lots of people use Nginx as an ingress controller, but I see little point in deploying it to my cluster when I already have Traefik. In this article we will use Traefik to expose the dashboards we want to see.

Lets start with Traefik. Because it comes pre-installed, all we need to do to get it to expose it’s own dashboard is create an ingress resource. Create a traefik-ingress.yml file and apply it to your cluster.

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: dashboard
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`traefik.radicalgeek.local`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
      kind: Rule
      services:
        - name: api@internal
          kind: TraefikService

Because we are using the internal DNS name radicalgeek.local we will also need to create a host entry on the router.

Login to the router and navigate to Network > Hostnames and create an entry for “traefik” that points to the IP address of the router (192.168.1.1)

Using the router’s IP address will ensure that Nginx forwards the request on in a load balanced way to the cluster.

You should now be able to navigate your browser to your domain name and see the Traefik dashboard

Kubernetes Dashboard

Leave a Reply

Your email address will not be published.