日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在Knative中使用鏡像加速

阿里云以CRD的方式將ECI的鏡像緩存功能提供給Kubernetes用戶,以便Kubernetes用戶也可以使用該功能來加速創(chuàng)建Pod。本文介紹如何在Knative中使用鏡像緩存CRD加速創(chuàng)建Pod。

背景信息

在創(chuàng)建ECI實例(Pod)時,大部分時間消耗在鏡像下載階段。為加速實例創(chuàng)建速度,ECI提供鏡像緩存功能。您可以預先將需要使用的鏡像制作成緩存快照,然后基于該快照來創(chuàng)建ECI實例(Pod),避免或者減少鏡像層的下載,從而提升實例創(chuàng)建速度。經實測,以使用Docker Hub的Flink鏡像(約386.26 MB)創(chuàng)建Pod為例,正常創(chuàng)建ECI實例(Pod)過程中,鏡像準備階段需要耗時50s。使用鏡像緩存后,鏡像準備階段可以縮短至5s,極大節(jié)約實例創(chuàng)建耗時。

說明
  • 創(chuàng)建Pod的具體提升速度由Pod中使用的鏡像個數、鏡像大小和鏡像倉庫網絡因素等決定。為方便Kubernetes用戶也可以使用到ECI的鏡像緩存功能,阿里云以CRD的方式將鏡像緩存功能提供給Kubernetes用戶,對應的CRD為ImageCache。

  • ImageCache CRD在kubernetes集群中為Cluster級別資源,被集群內所有Namespace共享。

關于鏡像緩存的基本功能、使用方式、以及計費說明等詳細信息,請參見鏡像緩存概述。

步驟一:創(chuàng)建ImageCache

  1. 使用以下示例的YAML內容,創(chuàng)建名為imagecache-secrets-test.yaml文件以加速拉取鏡像,減少ECI實例的啟動耗時。

    apiVersion: eci.alibabacloud.com/v1
    kind: ImageCache
    metadata:
      name: imagecache-sample-test
      annotations:
        k8s.aliyun.com/eci-image-cache: "true" # 開啟鏡像緩存復用。
    spec:
      images:
      - registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
      - registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
      imageCacheSize:
       25
      retentionDays:
       7
    說明

    如果您已經創(chuàng)建過鏡像緩存,且新創(chuàng)建的鏡像緩存與已有鏡像緩存中的鏡像層重復,可開啟鏡像緩存復用,加速鏡像緩存的創(chuàng)建。

    關于以上代碼參數和ImageCache的更多信息,請參見管理ImageCache。

  2. 執(zhí)行以下命令,創(chuàng)建ImageCache。

    kubectl create -f imagecache-secrets-test.yaml
  3. 執(zhí)行以下命令,查看ImageCache狀態(tài)。

    kubectl get imagecache imagecache-sample-test

    預期輸出:

    NAME                              AGE   CACHEID                               PHASE   PROGRESS
    imagecache-sample-test            20h   imc-2zeditzeoemfhqor****              Ready    100%

步驟二:使用ImageCache加速創(chuàng)建Pod

ImageCache資源是Cluster級別,因此在不同的Namespace下創(chuàng)建Pod時,均可以使用ImageCache加速創(chuàng)建Pod。

使用ImageCache創(chuàng)建Pod包括明確指定和自動匹配兩種方式,您可以在Pod級別的metadata中添加注解來配置,相關注解如下:

  • k8s.aliyun.com/eci-image-snapshot-id:明確指定使用哪個鏡像緩存創(chuàng)建Pod。

  • k8s.aliyun.com/eci-image-cache:根據匹配策略自動選擇最優(yōu)的ImageCache創(chuàng)建Pod。

說明

如果同時設置k8s.aliyun.com/eci-image-snapshot-idk8s.aliyun.com/eci-image-cache,則明確指定方式的優(yōu)先級高于自動匹配方式。

方式一:明確指定

創(chuàng)建Knative Service時,您可以通過添加k8s.aliyun.com/eci-image-snapshot-id注解的方式,聲明使用指定的ImageCache來加速創(chuàng)建Pod。

重要

請確保指定的ImageCache的狀態(tài)為Ready,其它狀態(tài)的ImageCache會導致Pod創(chuàng)建失敗。

Knative Service示例如下:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      labels:
        app: helloworld-go
      annotations:
        k8s.aliyun.com/eci-image-snapshot-id: imc-2ze5tm5gehgtiiga****  # 明確指定ImageCache。
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56

方式二:自動匹配

創(chuàng)建Knative Service時,您可以通過添加k8s.aliyun.com/eci-image-cache注解的方式,聲明使用自動匹配的ImageCache來加速創(chuàng)建Pod。

ECI將基于您已有的ImageCache列表,按照以下順序進行匹配,選擇最優(yōu)的ImageCache來創(chuàng)建Pod:

  1. 過濾篩選出您在當前地域下的所有鏡像緩存,且鏡像緩存的大小滿足ECI實例臨時存儲空間大小的限制。

  2. 根據匹配策略選擇最優(yōu)的鏡像緩存,匹配策略的優(yōu)先級從高到低依次為:鏡像匹配度、鏡像大小、創(chuàng)建時間。

    • 鏡像匹配度:優(yōu)先選擇匹配度高的鏡像緩存,匹配度指的是ECI實例和鏡像緩存兩者在鏡像倉庫和版本上的匹配情況。

    • 鏡像大?。簝?yōu)先選擇鏡像大小最接近的鏡像緩存。

    • 創(chuàng)建時間:優(yōu)先選擇最新創(chuàng)建的鏡像緩存。

    說明

    如果沒有匹配到鏡像緩存,系統將在創(chuàng)建ECI實例(Pod)的同時自動創(chuàng)建鏡像緩存。創(chuàng)建時將正常拉取鏡像,建議您將容器的鏡像拉取策略配置為按需拉取(IfNotPresent),以避免鏡像層重復下載,影響鏡像緩存的使用效果。

Knative Service示例如下:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      labels:
        app: helloworld-go
      annotations:
        k8s.aliyun.com/eci-image-cache: "true"  #開啟自動匹配ImageCache。
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56