Container Resource Demands Placement Policies Another important requirement for an efficient Pod placement is that containers have their runtime dependencies and resource demands defined. We covered that in more detail in Chapter 2,  Predictable Demands . It boils down to having containers that declare their resource profiles (with request and limit) and environment dependen‐ cies such as storage or ports. Only then are Pods sensibly assigned to nodes and can run without affecting each other during peak times. The last piece of the puzzle is having the right filtering or priority policies for your specific application needs. The scheduler has a default set of predicate and priority policies configured that is good enough for most use cases. It can be overridden dur‐ ing scheduler startup with a different set of policies, as shown in Example 6-2. Scheduler policies and custom schedulers can be defined only by an administrator as part of the cluster configuration. As a regular user you just can refer to predefined schedulers. { "kind"  : "Policy", "apiVersion"  : "v1", "predicates"  : [ { "name"  : "PodFitsHostPorts"}, { "name"  : "PodFitsResources"}, { "name"  : "NoDiskConflict"}, { "name"  : "NoVolumeZoneConflict"}, { "name"  : "MatchNodeSelector"}, { "name"  : "HostName"} ], "priorities"  : [ { "name"  : "LeastRequestedPriority",  "weight"  : 2}, { "name"  : "BalancedResourceAllocation",  "weight"  : 1}, { "name"  : "ServiceSpreadingPriority",  "weight"  : 2}, { "name"  : "EqualPriority",  "weight"  : 1} ] } Predicates are rules that filter out unqualified nodes. For example,  PodFitsHost‐ sPorts  schedules Pods to request certain fixed host ports only on those nodes that have this port still available. Example 6-2. An example scheduler policy Solution  |  49