发生了什么?
当我使用client-go组件的Evict API时,发现当设置了 DeleteOptions 为 metav1.NewDeleteOptions(0) 时,无法触发mutating webhook的Pod 删除回调, 当我不设置 DeleteOptions 时,可以正常触发。
代码如下:
mutatingwebhookconfiguration:
你期望发生什么?
我期望Evict API在设置了 DeleteOptions 为 metav1.NewDeleteOptions(0) 时,能够正常触发mutatingwebhook的Pod删除回调。
我们如何尽可能精确地重现它?
- 使用 k8s.io/client-go v0.21.2 创建一个客户端。
- 使用 Evict API 并设置 DeleteOptions 为 metav1.NewDeleteOptions(0)。
- 观察到mutatingwebhook的Pod删除回调没有被触发。
我们还需要了解什么?
- 无响应*
Kubernetes版本
$ cluster version
# v1.20.6
$ client-go version
# v0.21.2
云提供商
Tencent Kubernetes Engine (TKE)
OS版本
- 无响应*
安装工具
- 无响应*
容器运行时(CRI)和版本(如适用)
- 无响应*
相关插件(CNI,CSI,...)和版本(如适用)
- 无响应*
7条答案
按热度按时间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
gdrx4gfi2#
/sig api-machinery
7nbnzgx93#
如果要观察这个操作,webhook必须拦截pods/eviction CREATE操作。
Eviction可以使用
gracePeriodSeconds: 0
触发强制删除,这将立即删除pod,除非它有一个终结器存在。qeeaahzv4#
如果要观察这个情况,webhook必须拦截pods/eviction CREATE操作。
Eviction可以使用
gracePeriodSeconds: 0
触发强制删除,这将立即删除pod,除非它有一个终结器存在。谢谢~顺便问一下,哪里有请求资源的场景来提及这个情况?
oknrviil5#
如果要观察这个操作,webhook必须拦截pods/eviction CREATE操作。
Eviction可以使用
gracePeriodSeconds: 0
触发强制删除,这将立即删除pod,除非它有一个终结器存在。此外,我还发现在调用pod delete API时设置相同的选项可以触发pod delete webhook。
t1rydlwq6#
我发现在调用pod删除API时,设置相同的选项可以触发pod删除webhook。
admission webhook正在拦截发出的请求。在这种情况下,会向pods资源发出删除请求,因此为该端点+操作注册的admission被调用。
当向eviction子资源发出立即删除pod对象的驱逐请求时,不会向pods端点发出显式的删除API调用。
cuxqih217#
/triage accepted