Méndez | Edge Computing Systems with Kubernetes | E-Book | www.sack.de
E-Book

E-Book, Englisch, 458 Seiten

Méndez Edge Computing Systems with Kubernetes

A use case guide for building edge systems using K3s, k3OS, and open source cloud native technologies
1. Auflage 2024
ISBN: 978-1-80056-698-9
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection

A use case guide for building edge systems using K3s, k3OS, and open source cloud native technologies

E-Book, Englisch, 458 Seiten

ISBN: 978-1-80056-698-9
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection



Edge computing is a way of processing information near the source of data instead of processing it on data centers in the cloud. In this way, edge computing can reduce latency when data is processed, improving the user experience on real-time data visualization for your applications. Using K3s, a light-weight Kubernetes and k3OS, a K3s-based Linux distribution along with other open source cloud native technologies, you can build reliable edge computing systems without spending a lot of money.
In this book, you will learn how to design edge computing systems with containers and edge devices using sensors, GPS modules, WiFi, LoRa communication and so on. You will also get to grips with different use cases and examples covered in this book, how to solve common use cases for edge computing such as updating your applications using GitOps, reading data from sensors and storing it on SQL and NoSQL databases. Later chapters will show you how to connect hardware to your edge clusters, predict using machine learning, and analyze images with computer vision. All the examples and use cases in this book are designed to run on devices using 64-bit ARM processors, using Raspberry Pi devices as an example.
By the end of this book, you will be able to use the content of these chapters as small pieces to create your own edge computing system.

Méndez Edge Computing Systems with Kubernetes jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


Table of Contents - Edge Computing with Kubernetes
- K3s Installation and Configuration
- K3s Advanced Configurations and Management
- k3OS Installation and Configurations
- K3s Homelab for Edge Computing Experiments
- Exposing Your Applications Using Ingress Controllers and Certificates
- GitOps with Flux for Edge Applications
- Observability and Traffic Splitting Using Linkerd
- Edge Serverless and Event-Driven Architectures with Knative and Cloud Events
- SQL and NoSQL Databases at the Edge
- Monitoring the Edge with Prometheus and Grafana
- Communicating with Edge Devices across Long Distances Using LoRa
- Geolocalization Applications Using GPS, NoSQL, and K3s Clusters
- Computer Vision with Python and K3s Clusters
- Designing Your Own Edge Computing System


Preface


Edge computing consists of processing data near to the source where this data is generated. In order to build an edge computing system, you must understand the different layers and components that an edge system uses to process the information. Using K3s a lightweight Kubernetes, you can take advantage of the use of containers to design distributed system and automate the way that your applications are updated. This book will gives you all the necessary tools to create your own edge system across learning the basics and different use cases of edge computing. By the end of this book, you will understand how to implement your own edge computing system that uses containers with K3s for your Kubernetes clusters and cloud native open source software.

Who this book is for


This book is for operations or DevOps engineers looking to move their data processing tasks to the edge or for those engineers looking to implement an edge computing system, but they don’t have the technology background to do so. It can also be used for enthusiast and entrepreneurs looking to implement or experiment with edge computing for different or potential use case scenarios.

What this book covers


, , 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.

, , 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.

, , 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.

, , 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.

, , 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.

, , 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.

, , explores how to automate edge applications updates when source code changes are detected using a GitOps strategy together with Flux and GitHub Actions.

, , 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.

, , 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.

, , 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.

, , 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.

, , 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.

, , 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.

, , 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.

, , 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.

To get the most out of this book


To feel more comfortable with this book, you need some previous experience using Linux command line, and some basic programming knowledge. When reading a chapter, pay attention to download the source code, that will simplify the use of all the examples in this book.

This book mainly uses MacOS to perform local configurations. For the Raspberry Pi implementations Linux is used. Finally, there is a chapter that uses Windows to update the ESP32 firmware.

All the requirements need it to run the examples in this book are described in the Technical requirements section of each chapter.

If you are using the digital version of this book, we advise you to type the code yourself or access the code from the book’s GitHub repository (a link is available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.

Download the example code files


You can download the example code files for this book from GitHub at https://github.com/PacktPublishing/Edge-Computing-Systems-with-Kubernetes. If there’s an update to the code, it will be updated in the GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images


We also provide a PDF file that has color images of the screenshots and diagrams used in this book. You can download it here: https://packt.link/gZ68B.

Conventions used


There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, functions, service name, deployment names, variables, pathnames, and URLs. Here is an example: “WIFISetUp(void): we configure the Wi-Fi connection, here you have to replace NET_NAME with your network name and PASSWORD with the password to access your connection.”

A block of code is set as follows:

@app.route('/') def hello_world():     return 'It works'

Any command-line input or output is written as follows:

$ mkdir code

$ kubectl apply -f example.yaml

Bold: Indicates a new term, an important word, or words that you see onscreen. For instance, words in menus or dialog boxes appear in bold. Here is an example: “Now create another file by clicking in File | New”

Tips or important notes

Appear like this.

Get in touch


Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, email us at customercare@packtpub.com and mention the book title in the subject of your message.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit...


Méndez Sergio :

Sergio Méndez is a systems engineer and professor of operating systems at San Carlos of Guatemala university. His work at the university is related to teaching and researching cloud native technologies with his students. He has experience working on DevOps, and MLOps using open source technologies at work. About open source communities, he is involved in the CNCF Community, promoting students into the CNCF Ecosystem and hosting a Cloud Native meetup in Guatemala. He has been a speaker at several conferences such as KubeCon, WTFisCloudNative, and Kubernetes Community Days. He is also a Linkerd Ambassador.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.