Book Image

Hands-On Linux for Architects

By : Denis Salamanca, Esteban Flores
Book Image

Hands-On Linux for Architects

By: Denis Salamanca, Esteban Flores

Overview of this book

It is very important to understand the ?exibility of an infrastructure when designing an efficient environment. In this book, you will cover everything from Linux components and functionalities through to hardware and software support, which will help you to implement and tune effective Linux-based solutions. This book gets started with an overview of Linux design methodology. Next, you will focus on the core concepts of designing a solution. As you progress, you will gain insights into the kinds of decisions you need to make when deploying a high-performance solution using Gluster File System (GlusterFS). In the next set of chapters, the book will guide you through the technique of using Kubernetes as an orchestrator for deploying and managing containerized applications. In addition to this, you will learn how to apply and configure Kubernetes for your NGINX application. You’ll then learn how to implement an ELK stack, which is composed of Elasticsearch, Logstash, and Kibana. In the concluding chapters, you will focus on installing and configuring a Saltstack solution to manage different Linux distributions, and explore a variety of design best practices. By the end of this book, you will be well-versed with designing a high-performing computing environment for complex applications to run on. By the end of the book, you will have delved inside the most detailed technical conditions of designing a solution, and you will have also dissected every aspect in detail in order to implement and tune open source Linux-based solutions
Table of Contents (22 chapters)
Free Chapter
1
Section 1: High-Performance Storage Solutions with GlusterFS
7
Section 2: High-Availablility Nginx Web Application Using Kubernetes
12
Section 3: Elastic Stack
16
Section 4: System Management Using Saltstack

Summary

In this chapter, we learned how to determine the compute and network requirements of a Kubernetes cluster. We also touched upon the software requirements that come along with it, such as etcd, and how odd-numbered clusters are preferred (due to the census algorithm) as the cluster needs to achieve more than 50% of votes for consensus.

The etcd cluster can either run on the kube-apiserver or have a separate set of clusters dedicated just for etcd. When it comes to resources, 2 CPUs and 8 GB of RAM should be enough. When deciding on the storage system for etcd, opt for lower latency and higher IOPS storage such as SSD. We then jumped into sizing the kube-apiserver, which can be run alongside etcd. Given that both components can coexist, resources should be bumped to anything between 8 and 16 GB of RAM and between 2 and 4 CPUs per node.

In order to properly size the worker...