Kubernetes
All components of the system are implemented as microservices running in Docker containers. The advantage of using Docker containers is that that components can be written in any language, such as TypeScript, C++, Rust or Python. Also, the components can be run on any system such as a Raspberry PI, Mac, Windows, Linux or Cloud service. Kubernetes and Helm are used to automatically deploy and scale the docker containers and provide connectivity between the containers. No specific knowledge of Kubernetes is needed to setup the environment.
If you already have a running Kubernetes installation you may skip this section.
Install k3s
K3s is a lightweight, certified Kubernetes distribution that runs on small Rasberry Pi and large servers. K3s is packaged as a single < 40MB binary for both x86 and Arm processors. Kubernetes can be installed with a single command:
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
Check the progress of the installation with the following command:
kubectl get pods --all-namespaces
If the installation is ready the output should look similar to below:
kube-system metrics-server-86cbb8457f-9zjnt 1/1 Running 0 100s
kube-system local-path-provisioner-5ff76fc89d-d78wf 1/1 Running 0 100s
kube-system coredns-7448499f4d-22q7w 1/1 Running 0 100s
kube-system helm-install-traefik-crd-nlhng 0/1 Completed 0 101s
kube-system helm-install-traefik-2k7ks 0/1 Completed 1 101s
kube-system traefik-97b44b794-5jp94 0/1 Running 0 24s
kube-system svclb-traefik-r4w7p 2/2 Running 0 24s