From b0ddb47974ae6b75263e01e4bef0ec04e0e52b6e Mon Sep 17 00:00:00 2001 From: Marco Voelz Date: Wed, 26 Jul 2023 15:42:38 +0200 Subject: [PATCH] Clarify Eviction Control for Pods with multiple Containers --- .../enhancements/4831-control-eviction-behavior/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vertical-pod-autoscaler/enhancements/4831-control-eviction-behavior/README.md b/vertical-pod-autoscaler/enhancements/4831-control-eviction-behavior/README.md index 29c0c4f9501b..205eba82dd89 100644 --- a/vertical-pod-autoscaler/enhancements/4831-control-eviction-behavior/README.md +++ b/vertical-pod-autoscaler/enhancements/4831-control-eviction-behavior/README.md @@ -21,7 +21,7 @@ For some workloads, each eviction introduces disruptions for users. Examples inc * Allow for resource-specific decisions: The desired policy may be different for CPU and Memory ## Proposal -Add a new field `EvictionRequirements` to [`PodUpdatePolicy`](https://github.com/kubernetes/autoscaler/blob/2f4385b72e304216cf745893747da45ef314898f/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go#L109) of type `[]*EvictionRequirement`. A single `EvictionRequirement` defines a condition which must be `true` to allow eviction for the corresponding `Pod`. When multiple `EvictionRequirements` are specified for a `Pod`, all of them must evaluate to `true` to allow eviction. +Add a new field `EvictionRequirements` to [`PodUpdatePolicy`](https://github.com/kubernetes/autoscaler/blob/2f4385b72e304216cf745893747da45ef314898f/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go#L109) of type `[]*EvictionRequirement`. A single `EvictionRequirement` defines a condition which must be `true` to allow eviction for the corresponding `Pod`. When multiple `EvictionRequirements` are specified for a `Pod`, all of them must evaluate to `true` to allow eviction. For Pods with multiple Containers, an `EvictionRequirement` evaluates to `true` when _at least one Container that is under VPA control_ fulfills the `EvictionRequirement`. A single `EvictionRequirement` specifies `Resources` and a `ChangeRequirement` comparing the new recommendation (`Target`) with the existing requests on a Pod (`Requests`). Possible values for `Resources` are `[CPU]` and `[Memory]` or both `[CPU,Memory]`. If `Resources: [CPU, Memory]`, the condition must be true for either of the two resources to allow for eviction. Possible values for `ChangeRequirement` are `TargetHigherThanRequests`, `TargetHigherThanOrEqualToRequests`, `TargetLowerThanRequests` and `TargetLowerThanOrEqualToRequests`.