【OpenKruise】镜像预热

举报
可以交个朋友 发表于 2025/12/22 19:40:09 2025/12/22
【摘要】 1. 背景OpenKruise 是一个基于 Kubernetes 的扩展项目,旨在增强和扩展 Kubernetes 的原生能力,以更好地支持大规模应用的管理和运维。它通过提供一系列自定义 控制器 和自定义资源(CRD),帮助用户在 Kubernetes 集群中更加灵活、高效地管理容器化应用。 2. 简介OpenKruise实现镜像预热,通过运行架构中的kruise-manager与krui...

1. 背景

OpenKruise 是一个基于 Kubernetes 的扩展项目,旨在增强和扩展 Kubernetes 的原生能力,以更好地支持大规模应用的管理和运维。它通过提供一系列自定义 控制器 和自定义资源(CRD),帮助用户在 Kubernetes 集群中更加灵活、高效地管理容器化应用。

2. 简介

OpenKruise实现镜像预热,通过运行架构中的kruise-manager与kruise-daemon组件实现。kruise-manager为集群中心,负责管理多个控制器和webhook,kruise-daemon部署于集群节点,通过与容器运行时交互执行镜像拉取任务。NodeImage自定义资源定义节点需要预热的镜像,kruise-daemon据此执行镜像拉取。
为适应大规模场景,OpenKruise引入ImagePullJob自定义资源,定义镜像在集群特定范围内的批量预热策略。镜像预热应用于集群基础镜像预热、sidecar镜像预热及特殊业务镜像资源池预热。

image.png

3. 前提条件

1.已创建cce集群
2.集群已安装openkruise

4. 实操

创建cce集群

image.png

创建ImagePullJob
apiVersion: apps.kruise.io/v1alpha1
kind: ImagePullJob
metadata:
  name: job-nginx
spec:
  image: nginx:1.9.1   # [required] 完整的镜像名 name:tag
  parallelism: 10      # [optional] 最大并发拉取的节点梳理, 默认为 1
  selector:            # [optional] 指定节点的 名字列表 或 标签选择器 (只能设置其中一种),不设置表示全部节点
    names:
    - node-1
    - node-2
    matchLabels:
      node-type: xxx
  completionPolicy:
    type: Always                  # [optional] 默认为 Always
    activeDeadlineSeconds: 1200   # [optional] 无默认值, 只对 Alway 类型生效
    ttlSecondsAfterFinished: 300  # [optional] 无默认值, 只对 Alway 类型生效
  pullPolicy:                     # [optional] 每个节点上拉镜像的侧脸,默认 backoffLimit=3, timeoutSeconds=600
    backoffLimit: 3
    timeoutSeconds: 300

ImagePullJob 有两种 completionPolicy 类型:

  • Always 表示这个 job 是一次性预热,不管成功、失败都会结束
    1.activeDeadlineSeconds:整个 job 的 deadline 结束时间
    2.ttlSecondsAfterFinished:结束后超过这个时间,自动清理删除 job
  • Never 表示这个 job 是长期运行、不会结束,并且会每天都会在匹配的节点上重新预热一次指定的镜像

5. 验证

查看 ImagePullJob 执行状态:

kubectl get imagepulljob -n kruise-system

关键状态: succeeded(成功节点数)、failed(失败节点数)、active(运行中节点数)

查看节点镜像预热状态

kubectl get nodeimage kruise-system -o yaml

查看 spec.images 确认目标镜像,status 查看拉取结果

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。