Book Image

Cloud Native with Kubernetes

By : Alexander Raul
Book Image

Cloud Native with Kubernetes

By: Alexander Raul

Overview of this book

Kubernetes is a modern cloud native container orchestration tool and one of the most popular open source projects worldwide. In addition to the technology being powerful and highly flexible, Kubernetes engineers are in high demand across the industry. This book is a comprehensive guide to deploying, securing, and operating modern cloud native applications on Kubernetes. From the fundamentals to Kubernetes best practices, the book covers essential aspects of configuring applications. You’ll even explore real-world techniques for running clusters in production, tips for setting up observability for cluster resources, and valuable troubleshooting techniques. Finally, you’ll learn how to extend and customize Kubernetes, as well as gaining tips for deploying service meshes, serverless tooling, and more on your cluster. By the end of this Kubernetes book, you’ll be equipped with the tools you need to confidently run and extend modern applications on Kubernetes.
Table of Contents (22 chapters)
1
Section 1: Setting Up Kubernetes
5
Section 2: Configuring and Deploying Applications on Kubernetes
11
Section 3: Running Kubernetes in Production
16
Section 4: Extending Kubernetes

Chapter 8 – Pod Placement Controls

  1. Node Selectors can be used to match against Node labels and multiple Nodes can fulfill the requirements. Using a Node name means that you specify the single Node where the Pod must be placed.
  2. Kubernetes implements some default taints to ensure that Pods do not get scheduled on Nodes that are malfunctioning or lack resources. In addition, Kubernetes taints the master Nodes to prevent scheduling of user applications on the masters.
  3. Too many affinities and anti-affinities can slow down the scheduler or cause it to become unresponsive. Determining Pod placement in cases with a lot of affinities or anti-affinities is very compute-heavy.
  4. Using anti-affinities, you could prevent Pods from co-existing with like Pods in the same failure domain. Nodes in the same failure domain would be labeled with a failure domain or zone identifier. Anti-affinity would look for Pods matching the specific tier of the application level in the same failure...