Skip to content

Commit 5635ffb

Browse files
committed
adress review remarks
1 parent 7772213 commit 5635ffb

File tree

1 file changed

+11
-14
lines changed
  • keps/sig-apps/4563-eviction-request-api

1 file changed

+11
-14
lines changed

keps/sig-apps/4563-eviction-request-api/README.md

+11-14
Original file line numberDiff line numberDiff line change
@@ -185,24 +185,20 @@ The major issues are:
185185
immediately. This can result in descheduling of incorrect set of pods. This is outlined in the
186186
decheduler [KEP-1397](https://github.com/kubernetes-sigs/descheduler/blob/master/keps/1397-evictions-in-background/README.md)
187187
and [kubernetes-sigs/descheduler#1466](https://github.com/kubernetes-sigs/descheduler/pull/1466).
188-
5. Graceful deletion of DaemonSet pods is currently only supported as part of (Linux) graceful node
188+
5. Kubernetes does not offer resource reservation during a pod migration. We would like to make sure
189+
that we have guaranteed resources for the workload before terminating the pod. This is discussed
190+
in the [kubernetes/kubernetes#129038](https://github.com/kubernetes/kubernetes/issues/129038).
191+
6. Graceful deletion of DaemonSet pods is currently only supported as part of (Linux) graceful node
189192
shutdown. The length of the shutdown is again not application specific and is set cluster-wide
190193
(optionally by priority) by the cluster admin. This does not take into account
191194
`.spec.terminationGracePeriodSeconds` of each pod and may cause premature termination of
192195
the application. This has been discussed in issue [kubernetes/kubernetes#75482](https://github.com/kubernetes/kubernetes/issues/75482)
193196
and in issue [kubernetes-sigs/cluster-api#6158](https://github.com/kubernetes-sigs/cluster-api/issues/6158).
194-
6. Different pod termination mechanisms are not synchronized with each other. So for example, the
197+
7. Different pod termination mechanisms are not synchronized with each other. So for example, the
195198
taint manager may prematurely terminate pods that are currently under Node Graceful Shutdown.
196199
This can also happen with other mechanism (e.g., different types of evictions). This has been
197200
discussed in the issue [kubernetes/kubernetes#124448](https://github.com/kubernetes/kubernetes/issues/124448)
198201
and in the issue [kubernetes/kubernetes#72129](https://github.com/kubernetes/kubernetes/issues/72129).
199-
7. [Affinity Based Eviction](https://github.com/kubernetes/enhancements/issues/4328) is an upcoming
200-
feature that would like to introduce the `RequiredDuringSchedulingRequiredDuringExecution`
201-
nodeAffinity option to remove pods from nodes that do not match this affinity. The controller
202-
proposed by this feature would like to use the EvictionRequest API for the disruption safety and
203-
observability reasons. It can also leave the eviction logic and reconciliation to the eviction
204-
request controller and reducing the maintenance burden. Discussed in the KEP
205-
[kubernetes/enhancements#4329](https://github.com/kubernetes/enhancements/pull/4329).
206202

207203
This KEP is a prerequisite for the [Declarative Node Maintenance KEP](https://github.com/kubernetes/enhancements/pull/4213),
208204
which describes other issues and consequences that would be solved by the EvictionRequest API.
@@ -223,7 +219,7 @@ the application supports this.
223219

224220
### PodDisruptionBudget Standing Issues
225221

226-
For completeness here is a complete list of upstream open PDB issues. Most are relevant to this KEP.
222+
For completeness here is a complete list of open PDB issues. Most are relevant to this KEP.
227223

228224
- [Mandatorliy specify how the application handle disruptions in the pod spec.](https://github.com/kubernetes/kubernetes/issues/124390)
229225
- [Treat liveness probe-based restarts as voluntary disruptions gated by PodDisruptionBudgets](https://github.com/kubernetes/kubernetes/issues/123204)
@@ -240,6 +236,7 @@ For completeness here is a complete list of upstream open PDB issues. Most are r
240236
- [New FailedEviction PodDisruptionCondition](https://github.com/kubernetes/kubernetes/issues/128815)
241237
- [Distinguish PDB error separately in eviction API](https://github.com/kubernetes/kubernetes/issues/125500)
242238
- [Confusing use of TooManyRequests error for eviction](https://github.com/kubernetes/kubernetes/issues/106286)
239+
- [New EvictionBlocked PodDisruptionCondition](https://github.com/kubernetes/kubernetes/issues/128815)
243240

244241
### Goals
245242

@@ -1780,10 +1777,10 @@ also not possible to change the default eviction behavior for safety reasons. So
17801777
would not be sufficient, as we need to solve this for all pods.
17811778

17821779
We could track these requests in the PDB object itself. A PDB can track multiple pods with its
1783-
selector. The pods do not have to be from the same application, even though they usually are. These
1784-
pods may run in various locations and may have various reasons for their disruption. It would be
1785-
difficult to synchronize the PDB object for applications with a large number of pods. This could
1786-
result in inconsistent updates and conflicts as many components would race for the PDB updates.
1780+
selector. These pods may run in various locations and may have various reasons for their disruption.
1781+
It would be difficult to synchronize the PDB object for applications with a large number of pods.
1782+
This could result in inconsistent updates and conflicts as many components would race for the PDB
1783+
updates.
17871784

17881785
The updates to the PDB could be done solely by the eviction endpoint, but this is disqualified
17891786
because many components override this endpoint with validating admission webhooks. And so we would

0 commit comments

Comments
 (0)