Architecture

Demo app architecture

Right-click -> “Open image in new tab” to view full-size.

The above figure shows the conceptual design of this demo app. For illustrative purposes, we show additional services and database servers in the figure (as opposed to one of each in the actual implemenation). We implement a single-node Kubernetes cluster using kind, which runs within a Docker container on the host machine.

The Kubernetes Services of the demo app are shown in grey, with the Traefik service providing access to the internal services of the app using HTTPRoute objects for configuration. The internal services of the app can communicate with each other directly using the kind node’s built-in DNS service.

Exposing the app

Note that ports 8000 and 9000 are exposed to localhost only by default. For security reasons, do not expose the Traefik dashboard (port 9000) to the internet. To expose the web app, we can use a public reverse proxy service such as ngrok (using these instructions).