Chapter 3. Advanced Resource Management

Managing available resources is a critical aspect of effectively running Kubernetes workloads in production. Without the proper sizing of workloads and management of CPU, memory, disk, graphics processing units (GPUs), pods, containers, and other resources, it is impossible for engineers and operations teams to control the service-level agreement (SLA) of applications and services between a client and provider. This SLA is the defining contract that determines the level of availability and performance that the client can expect from the system and is often backed by financial penalties.

We’ll discuss a variety of tools and techniques available to the Kubernetes engineer for controlling the allocation of these resources. In this chapter, we begin with a discussion of proper scheduling of pod resources, where we cover topics like priority scheduling, quality of service, and the impact resource limits can have on scheduling pods. Next, we provide an overview of capacity planning and management approaches for ensuring the scalability of your Kubernetes platform. We then conclude this chapter with a discussion of admission controllers and how they can be used to enforce additional constraints on resources.

Pod Resources and Scheduling

Proper scheduling of workload is critical to maintaining the availability and performance of your applications. Without effective scheduling, you can end up with an overloaded worker node with insufficient memory ...

Get Hybrid Cloud Apps with OpenShift and Kubernetes now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.