What this book covers
Chapter 1, Edge Computing with Kubernetes, explains basic concepts of Edge Computing including its components, layers, example architectures to build these kind of systems, and showing how to use cross compiling techniques for Go, Rust, Python and Java to run software at the edge that runs on devices with ARM processors.
Chapter 2, K3s Installation and Configuration, describes what K3s is, its components, and how to install K3s using different configurations such as single and multi-node, and finally explains advanced configurations for K3s clusters to use external storages to replace the use of etcd instead, expose applications outside the cluster installing and using an ingress controller, uninstalling the cluster and some useful commands to troubleshoot cluster installations.
Chapter 3, K3s Advanced Configurations and Management, introduce the reader to advanced configurations for its K3s cluster, including the installation of MetalLB a bare metal load balancer, the installation of Longhorn for storage at the edge, upgrades in the cluster and finally backing up and restoring K3s cluster configurations.
Chapter 4, k3OS Installation and Configurations, focuses on how to use k3OS a Kubernetes distribution packaged in an ISO image that could be used to be installed on edge devices. It also covers how to use overlay on ARM devices and perform installations using config files to configure a single or multi-node K3s clusters.
Chapter 5, K3s Homelab for Edge Computing Experiments, describes how to configure your own Homelab using all the previous configurations described in the previous chapters to produce a basic production ready environment to run your edge computing applications. Starting with cluster configurations, including configurations for ingress controller, persistence for applications and how to deploy a Kubernetes dashboard for your cluster at the edge.
Chapter 6, Exposing Your Applications Using Ingress Controllers and Certificates, gives an introduction about how to configure and use the ingress controllers NGINX, Traefik and Contour together with cert-manager to expose applications running on bare metal using TLS certificates.
Chapter 7, GitOps with Flux for Edge Applications, explores how to automate edge applications updates when source code changes are detected using a GitOps strategy together with Flux and GitHub Actions.
Chapter 8, Observability and Traffic Splitting Using Linkerd, describes how to use a Service Mesh to implement simple monitoring, observability, traffic splitting, and faulty traffic to improve services availability using Linkerd running at the edge.
Chapter 9, Edge Serverless and Event-Driven Architectures with Knative and Cloud Events, gives an introduction about how to implement your own serverless functions using Knative Serving. It also shows how to implement simple event-driven architectures using Knative Eventing together with Cloud Event to define and run events in your edge systems.
Chapter 10, SQL and NoSQL Databases at the Edge, explores different type of databases that can be used to record data at the edge. This chapter covers in specific the configuration and use of MySQL, Redis, MongoDB, PostgreSQL and Neo4j to cover different use cases for SQL and NoSQL databases running at the edge.
Chapter 11, Monitoring the Edge with Prometheus and Grafana, focuses on monitoring edge environments and devices using the time series database Prometheus and Grafana. In specific, this chapter focuses on creating custom real-time graphs for data coming from edge sensors that capture temperature and humidity.
Chapter 12, Communicating with Edge Devices across Long Distances Using LoRa, describes how to communicate edge devices in long distances using LoRa wireless protocol and how to visualize captured sensors edge data using MySQL and Grafana.
Chapter 13, Geolocalization Applications Using GPS, NoSQL, and K3s Clusters, describes how to implement a simple geolocalization or geo-tracking system using GPS modules and ARM devices showing vehicles moving in real-time, and reports of their tracking logs between a date range.
Chapter 14, Computer Vision with Python and K3s Clusters, describes how to create a smart traffic system to detect potential obstacles for drivers when driving in the city and give intelligent alerts and reports of the live state of traffic during rush hours. It is also described step by step how to implement this system using Redis, OpenCV, TensorFlow Lite, Scikit Learn and GPS modules running at the edge.
Chapter 15, Designing Your Own Edge Computing System, describes a basic methodology to create your own edge computing system and how you can use cloud provider managed services, complementary hardware and software and some useful recommendations while implementing your system. Finalizing with other use cases to explore for edge computing.