阿里云以ImageCache CRD的方式将ECI的镜像缓存功能提供给Kubernetes用户,以便Kubernetes用户也可以使用该功能来加速创建Pod。本文介绍如何使用ImageCache加速创建Pod。
配置说明
ImageCache资源是Cluster级别,因此在不同的Namespace下创建Pod时均可以使用ImageCache来实现加速创建Pod。
使用ImageCache创建Pod包括自动匹配和明确指定两种方式,您可以在Pod级别的metadata中添加Annotation来配置,相关配置项如下:
-
k8s.aliyun.com/eci-image-cache:根据匹配策略自动匹配最优的ImageCache创建Pod。如果没有匹配到,系统将在创建Pod的同时自动创建一个ImageCache。
-
k8s.aliyun.com/eci-image-snapshot-id:明确指定使用哪个镜像缓存创建Pod。
说明
如果同时设置k8s.aliyun.com/eci-image-cache
和k8s.aliyun.com/eci-image-snapshot-id
,则明确指定方式的优先级高于自动匹配方式。更多信息,请参见镜像缓存概述。
使用ImageCache创建Pod时,请注意以下事项:
-
Pod中容器的镜像建议采用ImageCache中的镜像,以提高匹配度。
-
Pod中容器的镜像拉取策略(ImagePullPolicy)建议设置为按需拉取(IfNotPresent),以避免镜像层重复下载。
自动匹配ImageCache
创建Pod时,您可以通过添加Annotation的方式,声明使用自动匹配的ImageCache来加速创建Pod。ECI将基于您已有的ImageCache列表,根据匹配策略选择最优的ImageCache来创建Pod。匹配策略的优先级从高到低依次为:镜像匹配度、匹配的镜像大小、创建时间。
说明
如果没有匹配到合适的ImageCache,系统将在创建Pod的同时自动创建一个ImageCache。
-
Deployment示例
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: k8s.aliyun.com/eci-image-cache: "true" #开启自动匹配ImageCache spec: nodeName: virtual-kubelet containers: - name: nginx image: nginx:1.7.9 imagePullPolicy: IfNotPresent
-
Pod示例
apiVersion: v1 kind: Pod metadata: annotations: k8s.aliyun.com/eci-image-cache: "true" #开启自动匹配ImageCache name: nginx-auto-match spec: containers: - image: nginx:1.7.9 imagePullPolicy: IfNotPresent name: nginx resources: limits: cpu: 300m memory: 200Mi requests: cpu: 200m memory: 100Mi nodeName: virtual-kubelet
明确指定ImageCache
创建Pod时,您可以通过添加Annotation的方式,声明使用指定的ImageCache来加速创建Pod。
重要
请确保指定的ImageCache的状态为Ready,其它状态的ImageCache会导致Pod创建失败。
-
Deployment示例
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: k8s.aliyun.com/eci-image-snapshot-id: imc-2ze5tm5gehgtiiga**** #明确指定ImageCache spec: nodeName: virtual-kubelet containers: - name: nginx image: nginx:1.7.9 imagePullPolicy: IfNotPresent
-
Pod示例
apiVersion: v1 kind: Pod metadata: annotations: k8s.aliyun.com/eci-image-snapshot-id: imc-2ze5tm5gehgtiiga**** #明确指定ImageCache name: nginx-imagecache-id spec: containers: - image: nginx:1.7.9 imagePullPolicy: IfNotPresent name: nginx resources: limits: cpu: 300m memory: 200Mi requests: cpu: 200m memory: 100Mi nodeName: virtual-kubelet
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/171659.html