Book Image

Mastering Kubernetes - Second Edition

By : Gigi Sayfan
Book Image

Mastering Kubernetes - Second Edition

By: Gigi Sayfan

Overview of this book

Kubernetes is an open source system that is used to automate the deployment, scaling, and management of containerized applications. If you are running more containers or want automated management of your containers, you need Kubernetes at your disposal. To put things into perspective, Mastering Kubernetes walks you through the advanced management of Kubernetes clusters. To start with, you will learn the fundamentals of both Kubernetes architecture and Kubernetes design in detail. You will discover how to run complex stateful microservices on Kubernetes including advanced features such as horizontal pod autoscaling, rolling updates, resource quotas, and persistent storage backend. Using real-world use cases, you will explore the options for network configuration, and understand how to set up, operate, and troubleshoot various Kubernetes networking plugins. In addition to this, you will get to grips with custom resource development and utilization in automation and maintenance workflows. To scale up your knowledge of Kubernetes, you will encounter some additional concepts based on the Kubernetes 1.10 release, such as Promethus, Role-based access control, API aggregation, and more. By the end of this book, you’ll know everything you need to graduate from intermediate to advanced level of understanding Kubernetes.
Table of Contents (16 chapters)

What this book covers

Chapter 1, Understanding Kubernetes Architecture, will help you understand the design of the Kubernetes systems and appreciate why some of these design choices have been made.

Chapter 2, Creating Kubernetes Clusters, will make you understand the different options for creating kubernetes clusters. You will create several clusters using the tools and examine the clusters.

Chapter 3, Monitoring, Logging, and Troubleshooting, will help you set up and understand monitoring and metering in Kubernetes clusters, and will enable you to identify and troubleshoot typical problems that administrators encounter during day-to-day operations.

Chapter 4, High Availability and Reliability, will help you design Kubernetes in HA, and perform live cluster upgrades. You will learn how to design a Kubernetes architecture for production environments on a large scale.

Chapter 5, Configuring Kubernetes Security, Limits, and Accounts, will make you familiar with configuring Kubernetes security and limits, AAA integration, namespaces, service account configuration, and practice.

Chapter 6, Using Critical Kubernetes Resources, will help you use almost all the latest Kubernetes resources for appropriate use cases in production. You will also learn how to define, version, and deliver them.

Chapter 7, Handling Kubernetes Storage, will make you understand and use Kubernetes storage drivers for persistent volumes. You will learn how Flocker works and how to integrate existing enterprise storages (iSCSI/NFS/FC) into Kubernetes.

Chapter 8, Running Stateful Applications with Kubernetes, will teach you how to transform monolithic stateful applications to microservices running on Kubernetes, suitable for production workload. They will also learn several ways that this can be done with or without the PetSet resource prior to Kubernetes release 1.3. You will be able to fill in the gaps in the available documentation resources.

Chapter 9, Rolling Updates, Scalability, and Quotas, will teach you how rolling updates and horizontal pod autoscaling behave. You will learn how to customize and run scaling testing at production environment. You will be able to use resource quotas for CPU and memory.

Chapter 10, Advanced Kubernetes Networking, will help you determine which networking plugin is suitable in different deployments, and you will learn how to deploy Kubernetes with different network plugins. You will be able to understand iptables load balancing and how to extend them.

Chapter 11, Running Kubernetes on Multiple Clouds and Cluster Federation, will make you understand different options for deploying Kubernetes clusters in production. You will be given instruction on how to provision, run, and automate clusters on Amazon and Google Cloud Engine. You will also deploy geographically federated Kubernetes cluster, and you will be given instruction on how to provision, run, and automate cluster-federated workloads.

Chapter 12, Customizing Kubernetes – API and Plugins, will help you implement third-party resources, understand concepts of enhancing the Kubernetes API, and show you how integrate resources with existing environments. You will learn how schedulers work and how to implement your own scheduling engine. Finally, you will also learn how to implement custom external load balancing for on-premise deployments based on common services such as haproxy or nginx.

Chapter 13, Handling the Kubernetes Package Manager, explains how to handle Kubernetes applications as packages. The chapter starts with Helm Classic and goes through Helm for Kubernetes, and finally covers real-world examples of how to create and update packages in a Helm repository in order to be able to maintain them for production application deployments.

Chapter 14, The Future of Kubernetes, will help you create your own Kubernetes packages and store them in Helm repository. You will get an understanding of delivery pipelines for Kubernetes packages, from repositories to clusters.