OpenKruise中如果Job被删除了 底层的这些也会跟着联动清理吗?

"OpenKruise中如果Job被删除了 底层的NodeImage CRD上的images也会跟着联动清理吗?
cefebfe6b01c77486b060c8722c86f92.png
如果是直接操作的NodeImage CRD 上面这个情况 这个images就不会被自动清理了吧?
就是监听的修改动作是吧 虽然没有清理images字段 但是也不会重新拉取了 是这个意思吧?特殊字段是指哪些?
之前反馈的1.3.0使用原地升级镜像预热的注解会导致kruise-controller重启的那个BUG 和ImagePullJob自身有关系吗? 因为那个注解用不了了 所以准备自己实现镜像预热 但是又担心那个BUG会影响到ImagePullJob特性。裸用ImagePullJob会触发这个BUG吗?"

展开
收起
十一0204 2023-11-21 18:15:51 132 分享 版权
3 条回答
写回答
取消 提交回答
  • 在OpenKruise中,当一个Job被删除后,其底层的NodeImage CRD上的images是否会联动清理,取决于NodeImage的创建和删除机制。OpenKruise会自动为每个Node创建一个同名的NodeImage,这个NodeImage包含了哪些镜像需要在这个Node上做预热。当Node发生伸缩时,nodeimage-controller也会对应的创建或删除NodeImage。因此,如果Job所关联的Node发生缩放或删除,那么与该Node相关联的NodeImage以及其中的镜像可能也会被相应的清理。然而,如果仅仅是直接操作了NodeImage CRD而没有触发Node的伸缩或删除,那么NodeImage中的镜像则不会被自动清理。

    至于你提到的特殊字段,我认为你可能是在询问关于"feature-gate"的内容。在OpenKruise中,从v1.5.0版本开始,ImagePullJob/ImageListPullJob功能默认是关闭的,以降低默认安装的权限。你需要通过设置"feature-gate ImagePullJobGate=true"来开启这个功能。

    2023-11-22 11:59:30
    赞同 展开评论
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    OpenKruise 中,当 Job 被删除时,底层的资源也会自动进行清理。
    具体来说,当您删除一个 OpenKruise Job 时,它会触发一个垃圾回收机制,这个机制会删除与该 Job 相关的所有 Kubernetes 资源,包括但不限于 Deployment、StatefulSet、Pod 和 PVC 等。
    需要注意的是,OpenKruise 的清理行为并不是实时的,而是存在一定延迟。这是因为 OpenKruise 需要等待所有正在运行的任务完成之后才会开始清理工作,以避免造成数据丢失等问题。
    因此,如果您在删除 OpenKruise Job 后发现仍有相关资源未被清理,请耐心等待一段时间,或者手动检查资源状态并进行清理。

    2023-11-21 21:59:01
    赞同 展开评论
  • 意中人就是我呀!

    "会的。
    NodeImage 这个也是一次性的行为,如果你只是 patch 上去,不再动的话,也会只拉一次,每次触发拉镜像这个行为的话,其实是需要更新一下 NodeImage 的一些特殊字段,不然的话也是拉一次就拉倒了。

    50cf3a7fa5b9675f8683c3b5358b3f69.png
    不过建议你还是不要直接操作 nodeimage,还是走 ImagePullJob 吧。
    去掉我说的那个 env 就不会出现重启的 bug 了; 裸用 job 也不会。此答案整理至钉群“OpenKruise 社区交流群“"

    2023-11-21 19:37:20
    赞同 展开评论