Book Image

Kubernetes Design Patterns and Extensions

By : Onur Yılmaz
Book Image

Kubernetes Design Patterns and Extensions

By: Onur Yılmaz

Overview of this book

Before plunging into how Kubernetes works, this book introduces you to the world of container orchestration and describes the recent changes in application development. You'll understand problems that Kubernetes solves and get to grips with using Kubernetes resources to deploy applications. In addition to this, you'll learn to apply the security model of Kubernetes clusters. Kubernetes Design Patterns and Extensions describes how services running in Kubernetes can leverage the platform's security features. Once you've grasped all this, you'll explore how to troubleshoot Kubernetes clusters and debug Kubernetes applications. You also discover how to analyze the networking model and its alternatives in Kubernetes, and apply best practices with design patterns. By the end of this book, you'll have studied all about using the power of Kubernetes for managing your containers.
Table of Contents (6 chapters)

Extending the Kubernetes Scheduler

Pods are the basic unit of work that are scheduled by Kubernetes to run on nodes. By default, Kubernetes has a built-in scheduler, and it tries to assign pods to the nodes evenly by ensuring that there are sufficient free resources. There are some use cases to configure and extend the scheduler behavior of Kubernetes considering the custom requirements of scalable and reliable cloud-native applications:

  • Running certain pods on specialized hardware
  • Co-locating some pods that include interacting services
  • Dedicating some nodes to some users

Scheduler customization and extension patterns, starting from the basics to the complex, are listed as follows:

  • Assigning node labels and using node selectors
  • Using affinity and anti-affinity rules
  • Marking nodes with taints, and pods with tolerations
  • Creating and deploying custom scheduler algorithms