"OpenKruise中ImagePullJob 里面设置了一个pod的镜像 如果某一次pod从这个节点调度走了 过了一段时间 k8s清理了这个节点上的这个pod残留的镜像 ImagePullJob还会去拉取这个镜像下来吗?另外如果Job被删除了 底层的NodeImage CRD上的images也会跟着联动清理吗?"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在OpenKruise的ImagePullJob中,镜像拉取的行为是高度依赖于特定因素的。当新的Pod实例被创建时,它会触发一个镜像拉取操作。因此,如果有一个Pod被调度到某节点上,然后过了一段时间,这个节点上的镜像被Kubernetes清理了,那么在下次同一个Pod再次调度到该节点时,会重新拉取镜像。
然而,OpenKruise ImagePullJob也支持设置缓存策略(例如AlwaysCache)。如果设置了这种策略,即使之前的Pod被销毁,节点上的镜像也被清理,只要缓存还在,就可能会复用之前下载的镜像,而不是每次都重新拉取。
此外,您还可以通过podSelector字段来指定需要在哪些Pod所在的节点上拉取镜像。这样的灵活性使得ImagePullJob能够更好地适应各种应用场景和需求。
在 OpenKruise ImagePullJob 中,镜像拉取的操作是基于具体的 Pod 执行的。每次创建一个新的 Pod 实例时,都会触发一次镜像拉取操作。
因此,如果您有一个 Pod 在某个节点上调度出去,然后过了一段时间后 K8s 清理了该节点上的镜像,那么下次在同一个节点上再次调度此 Pod 时,会重新拉取镜像。
但是,如果 OpenKruise ImagePullJob 中设置了缓存策略(例如 AlwaysCache),则可能会使用之前下载的镜像,而不是每次都重新拉取。在这种情况下,即使之前的 Pod 被销毁并且节点上的镜像也被清理,只要缓存还在,就可以避免重新拉取镜像。
总之,ImagePullJob 的行为取决于它的具体配置和 Pod 的调度情况,以及缓存策略等因素。您可以根据实际情况调整这些参数,以满足自己的需求。
需要看你的 CompletionPolicy,如果是 Never 的话,每隔 24h 会重新尝试拉一次,Always 的话就不会再拉了;这个会的。此答案整理至钉群“OpenKruise 社区交流群“