开发者社区 > 云原生 > 正文

例如创建cloneset,是在创建deploy 之前先通过nodeimage拉取镜像,然后创建po吗

问题1:OpenKruise 中镜像预热能力这块;例如创建cloneset,是在创建deploy 之前先通过nodeimage拉取镜像,然后创建po吗?
问题2:那如果我要发布一个deploy,我是不是只能通过创建ImagePullJob来进行镜像预热?

展开
收起
小易01 2023-07-19 21:28:53 63 0
2 条回答
写回答
取消 提交回答
  • 问题1:在 OpenKruise 中,镜像预热的能力是通过 ClonesetDeployment 的两种方式来实现的。

    • 对于 Cloneset,在创建 Cloneset 前,会先通过 NodeImage 来拉取镜像并缓存在节点上。然后,在创建 Pod 时,会使用节点上已经缓存好的镜像,避免了网络传输和拉取镜像的时间消耗。

    • 对于 Deployment,目前 OpenKruise 还没有内置的镜像预热功能。在创建 Deployment 时,镜像将会按需从镜像仓库中拉取,并不会提前进行镜像预热。

    问题2:如果您想针对 Deployment 实现镜像预热,一种常见的做法是使用 ImagePullJob

    • 首先,您可以创建一个 ImagePullJob 对象,指定要拉取的镜像和其他相关配置,例如超时时间、镜像拉取策略等。

    • 然后,您可以在部署 Deployment 之前,先执行这个 ImagePullJob。这个 Job 将会在集群中创建一个 Pod 来执行镜像拉取任务,并确保镜像缓存到各个节点上。

    • ImagePullJob 成功完成后,您就可以部署相应的 Deployment,并且在 Pod 创建过程中直接使用节点上已经缓存好的镜像。

    需要注意的是,这种方式需要自己手动创建和管理 ImagePullJob。在 OpenKruise 中,目前还没有内置的自动化或集成方案来处理 Deployment 的镜像预热。

    2023-07-28 11:37:46
    赞同 展开评论 打赏
  • 意中人就是我呀!

    "回答1:cloneset 在原地升级的时候,能自动进行镜像预热,比如你的发布分三批,发完第一批的时候,帮你预热第二第三的批pod的镜像这样。
    回答2:是的,不建议所有镜像都预热,预热一些base镜像和比较关键和通用的就好了。此回答整理至钉群“OpenKruise 社区交流群”。"

    2023-07-20 08:06:33
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载