すべてのプロダクト
Search
ドキュメントセンター

:ImageCacheを使用してポッドの作成を高速化する

最終更新日:Mar 28, 2022

Alibaba Cloudは、ImageCache CustomResourceDefinition (CRD) の方法でElastic Container Instanceのイメージキャッシュ機能を提供します。 これにより、Elastic Container Instanceのイメージキャッシュ機能を使用して、Kubernetesでのポッドの作成を高速化できます。 このトピックでは、ImageCacheを使用してポッドの作成を高速化する方法について説明します。

説明

ImageCacheはクラスターレベルのリソースです。 ImageCacheを使用すると、クラスター内の異なる名前空間でのポッドの作成を高速化できます。

ImageCacheに基づいてポッドを作成する場合、ポッド構成ファイルのメタデータにアノテーションを追加して、ImageCacheの自動一致を有効にするか、使用するImageCacheを指定できます。 次の注釈に注意してください。

  • k8s.aliyun.com/eci-image-cache: ImageCacheの自動一致を有効にし、一致ポリシーに基づいて最適なImageCacheを選択してポッドを作成します。 一致するImageCacheがない場合、システムはポッドを作成するときに自動的にImageCacheを作成します。

  • k8s.aliyun.com/eci-image-snapshot-id: は、ポッドを作成するImageCacheを指定します。

説明

k8s.aliyun.com/eci-image-cachek8s.aliyun.com/eci-image-snapshot-idの両方が設定されている場合、k8s.aliyun.com/eci-image-snapshot-idが使用されます。 詳細については、「イメージキャッシュ機能の概要」をご参照ください。

ImageCacheを使用してポッドを作成する場合は、次の対策を講じることをお勧めします。

  • 一致度を向上させるには、コンテナのImageCacheでイメージを指定します。

  • コンテナのイメージプルポリシー (ImagePullPolicy) をIfNotPresentに設定して、イメージレイヤーが繰り返しダウンロードされないようにします。

ImageCacheに自動的に一致

ポッドを作成するときに、アノテーションを追加してImageCacheの自動一致を有効にし、ポッドの作成を高速化できます。 次に、Elastic Container Instanceは、一致ポリシーに基づいてImageCacheリストから最適なImageCacheを選択します。 ImageCacheは、ImageCacheの一致度、ImageCacheのサイズ、ImageCacheが作成された時点の要素に基づいて優先度の高い順に一致します。

説明

一致するImageCacheがない場合、システムはポッドを作成するときに自動的にImageCacheを作成します。

  • サンプル配置

    apiVersion: apps/v1
    kind: 配置
    メタデータ:
      name: nginx-deployment
      labels:
        アプリ: 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 
  • サンプルポッド

    apiVersion: v1
    種類: ポッド
    メタデータ:
      annotations:
        k8s.aliyun.com/eci-image-cache: "true"# ImageCacheの自動一致を有効にします。
      名前: nginx-auto-match
    spec:
      containers:
      -画像: nginx:1.7.9
        imagePullPolicy: IfNotPresent
        name: nginx
        resources:
          limits:
            cpu: 300m
            memory: 200Mi
          requests:
            cpu: 200m
            メモリ: 100Mi
      nodeName: virtual-kubelet 

ポッドの作成に使用するImageCacheの指定

ポッドを作成するときに、ポッドの作成を高速化するために使用するImageCacheを指定する注釈を追加できます。

注意

指定されたImageCacheが準備状態であることを確認します。 ImageCacheが別の状態の場合、ポッドは作成できません。

  • サンプル配置

    apiVersion: apps/v1
    kind: 配置
    メタデータ:
      name: nginx-deployment
      labels:
        アプリ: 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 
  • サンプルポッド

    apiVersion: v1
    種類: ポッド
    メタデータ:
      annotations:
        k8s.aliyun.com/eci-image-snapshot-id: imc-2ze5tm5gehgtiiga ****# ImageCacheを指定します。
      名前: nginx-imagecache-id
    spec:
      containers:
      -画像: nginx:1.7.9
        imagePullPolicy: IfNotPresent
        name: nginx
        resources:
          limits:
            cpu: 300m
            memory: 200Mi
          requests:
            cpu: 200m
            メモリ: 100Mi
      nodeName: virtual-kubelet