镜像预热用于将镜像提前拉取到边缘节点,以便部署应用时可以快速拉取镜像。当镜像更新后,如果您希望进行镜像预热,需要编写预热任务的 YAML 文件并提交,以发起一个镜像预热任务。本文介绍了如何进行镜像预热。
为确保预热镜像成功,需要满足以下条件:
镜像预热功能支持用户对单个镜像进行预热,也支持通过列表的方式指定多个镜像批量预热。您可以根据实际需求选择相应的预热方式。
apiVersion: apps.phosphor.io/v1alpha1 kind: ImagePullJob metadata: name: job1-with-always namespace: test-namespace # 可以指定,也可以使用默认的default,主要与pullSecrets的配置相关 spec: image: nginx:1.9.1 # [required] 完整的镜像名 name:tag serviceAccountName: test # [optional]指定用于pullSecrets获取的sevice account,如果通过免密形式提供密钥,可以不配置 # pullSecrets: # [optional]如果拉取私有镜像,可配置PullSecret,优先级高于service account # - secret-name1 # - secret-name2 parallelism: 5 # [optional] 最大并发拉取的节点数量, 默认为 1 selector: # [optional] 指定节点的 名字列表 或 标签选择器 (只能设置其中一种) names: # [optional] 通过名字列表匹配节点 - node-1 - node-2 matchLabels: # [optional] 通过名Label匹配节点 node-type: xxx # podSelector: # [optional] 通过 podSelector 匹配Pod,在这些 Pod 所在节点上拉取镜像, 与 selector 不能同时设置. # matchLabels: # pod-label: xxx # matchExpressions: # - key: pod-label # operator: In # values: # - xxx completionPolicy: # 任务执行完成策略,默认采用Always策略 type: Always # [optional] 删除执行完成后删除任务,Never表示不删除任务 activeDeadlineSeconds: 3600 # [optional] 任务开始执行到结束的时间, 只对 Always 类型生效,为空表示不限制 ttlSecondsAfterFinished: 300 # [optional] 拉取完成(成功或失败)超过 300s 后,将任务中清除, 只对 Always类型生效 pullPolicy: # [optional] 默认 backoffLimit=3, timeoutSeconds=600 backoffLimit: 3 # [optional] 镜像拉取重试次数,默认3次 timeoutSeconds: 600 # [optional] 镜像拉取的超时时间,默认600秒
apiVersion: apps.phosphor.io/v1alpha1 kind: ImageListPullJob metadata: name: golang spec: images: - nginx:1.10.3 # [required] 完整的镜像名 name:tag - nginx:1.25.3 # ... # 其余配置与ImagePullJob保持相同
上述YAML中涉及参数解释如下:
配置项
| 是否必填
| 说明
|
---|---|---|
metadata | ||
spec |