kubernetes PodEvict API在DeleteOptions设置为metav1.NewDeleteOptions(0)时不会触发Pod删除回调,

jv2fixgn  于 10个月前  发布在  Kubernetes
关注(0)|答案(7)|浏览(89)

发生了什么?

当我使用client-go组件的Evict API时,发现当设置了 DeleteOptions 为 metav1.NewDeleteOptions(0) 时,无法触发mutating webhook的Pod 删除回调, 当我不设置 DeleteOptions 时,可以正常触发。
代码如下:

  1. mutatingwebhookconfiguration:

你期望发生什么?

我期望Evict API在设置了 DeleteOptions 为 metav1.NewDeleteOptions(0) 时,能够正常触发mutatingwebhook的Pod删除回调。

我们如何尽可能精确地重现它?

  1. 使用 k8s.io/client-go v0.21.2 创建一个客户端。
  2. 使用 Evict API 并设置 DeleteOptions 为 metav1.NewDeleteOptions(0)。
  3. 观察到mutatingwebhook的Pod删除回调没有被触发。

我们还需要了解什么?

  • 无响应*

Kubernetes版本

  1. $ cluster version
  2. # v1.20.6
  3. $ client-go version
  4. # v0.21.2

云提供商

Tencent Kubernetes Engine (TKE)

OS版本

  • 无响应*

安装工具

  • 无响应*

容器运行时(CRI)和版本(如适用)

  • 无响应*

相关插件(CNI,CSI,...)和版本(如适用)

  • 无响应*
a2mppw5e

a2mppw5e1#

$ cluster version

v1.20.6

kubernetes v1.20 is not a support version, and a better place to ask would be on the support channels. please see:
https://git.k8s.io/kubernetes/SUPPORT.md
/kind support

gdrx4gfi

gdrx4gfi2#

/sig api-machinery

7nbnzgx9

7nbnzgx93#

如果要观察这个操作,webhook必须拦截pods/eviction CREATE操作。
Eviction可以使用gracePeriodSeconds: 0触发强制删除,这将立即删除pod,除非它有一个终结器存在。

qeeaahzv

qeeaahzv4#

如果要观察这个情况,webhook必须拦截pods/eviction CREATE操作。
Eviction可以使用gracePeriodSeconds: 0触发强制删除,这将立即删除pod,除非它有一个终结器存在。
谢谢~顺便问一下,哪里有请求资源的场景来提及这个情况?

oknrviil

oknrviil5#

如果要观察这个操作,webhook必须拦截pods/eviction CREATE操作。
Eviction可以使用gracePeriodSeconds: 0触发强制删除,这将立即删除pod,除非它有一个终结器存在。
此外,我还发现在调用pod delete API时设置相同的选项可以触发pod delete webhook。

t1rydlwq

t1rydlwq6#

我发现在调用pod删除API时,设置相同的选项可以触发pod删除webhook。
admission webhook正在拦截发出的请求。在这种情况下,会向pods资源发出删除请求,因此为该端点+操作注册的admission被调用。
当向eviction子资源发出立即删除pod对象的驱逐请求时,不会向pods端点发出显式的删除API调用。

cuxqih21

cuxqih217#

/triage accepted

相关问题