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

Container Service for Kubernetes:ImageCacheによるPod作成の高速化

最終更新日:Jun 19, 2026

Elastic Container Instance (ECI) が実行される前に、必要なコンテナイメージをプルする必要があります。イメージのプルは、Pod 起動時の主な遅延要因となります。ImageCache は、コンテナイメージのキャッシュスナップショットを事前に作成することで、以降の Pod 作成時にキャッシュを再利用して、仮想ノード上での Pod 起動時間を短縮します。

実際の短縮時間は、イメージの数、サイズ、ネットワーク状況によって異なります。

課金

ImageCache の作成と使用には料金が発生する場合があります。詳細については、「ImageCache の課金」をご参照ください。

前提条件

以下の条件を満たしていることを確認してください。

  • 仮想ノードが有効化された ACK クラスターがあること

  • クラスターへの kubectl アクセス権限があること

ステップ1:ImageCache サポートの有効化

クラスターが ImageCache をサポートしているかどうかを確認します。

kubectl get crd/imagecaches.eci.alibabacloud.com
  • imagecaches.eci.alibabacloud.com に関する情報が返された場合、ImageCache はサポートされています。ステップ2に進んでください。

  • エラーが返された場合は、ACK Virtual Node を最新バージョンに更新してください。

ステップ2:ImageCache の作成

最初の Pod で最大限の速度が必要な場合を除き、自動作成を使用してください。

方法 使用場面 動作原理
自動 ほとんどのケース — コスト削減 一致するキャッシュが存在しない場合、Pod 作成時にシステムがキャッシュを作成します。同じイメージを使用する今後の Pod はそれを再利用します。
手動 初回作成時に最大限の速度が求められる場合 YAML テンプレートを使用して事前に ImageCache を作成して、Pod 作成時にそれを参照します。

手動作成については、「ImageCache の管理」および「ImageCache のアノテーション」をご参照ください。各方法の比較については、「ImageCache の作成方法」をご参照ください。

ステップ3:ImageCache を使用した Pod の作成

Pod 仕様の metadata セクション (Deployment の場合は spec.template.metadata) にアノテーションを追加して、ImageCache を選択します。

重要

アノテーションは Pod 作成時にのみ有効です。既存の Pod のアノテーションを変更しても効果はありません。

アノテーションリファレンス

ImageCache は、名前空間をまたいで使用できるクラスターレベルのリソースです。

重要
  • イメージマッチング: マッチ度を最大化するため、Pod 仕様では ImageCache と同じイメージ参照を使用してください。

  • プルポリシー: imagePullPolicyIfNotPresent に設定することで、キャッシュされたレイヤーの再ダウンロードをスキップできます。

アノテーション 設定例 デフォルト値 説明
k8s.aliyun.com/eci-auto-imc "true" true ImageCache の自動マッチングを有効にします。イメージのマッチ度、サイズ、作成時刻に基づいて最適なキャッシュを選択します。一致するキャッシュが存在しない場合は、新しいキャッシュを作成します。
k8s.aliyun.com/imc-perfect-match "true" false Pod 内のすべてのイメージが ImageCache と完全に一致することを要求します。imc-match-count-request より優先されます。
k8s.aliyun.com/imc-match-count-request "2" ImageCache と一致する必要がある Pod イメージの数を指定します。
k8s.aliyun.com/eci-imc-id imc-2zebxkiifuyzzlhl**** Pod を特定の ImageCache ID に固定します。自動マッチングより優先されます。

アノテーションの優先順位: imc-perfect-matchimc-match-count-request の両方が設定されている場合、imc-perfect-match が優先されます。eci-imc-id が指定されている場合は、自動マッチングより優先されます。

ImageCache の自動マッチング (推奨)

eci-auto-imc を有効にして、必要に応じて imc-perfect-match を追加することで、より厳格なマッチングが可能になります。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true"
      annotations:
        k8s.aliyun.com/eci-auto-imc: "true"          # ImageCache の自動マッチングを有効化します
        k8s.aliyun.com/imc-perfect-match: "true"      # Pod 内のすべてのイメージがキャッシュと完全に一致する必要があります
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        imagePullPolicy: IfNotPresent
      - name: busybox
        image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
        command: ["sleep"]
        args: ["999999"]
        imagePullPolicy: IfNotPresent

ImageCache の指定

重要

指定する ImageCache はReady 状態である必要があります。そうでない場合、Pod の作成は失敗します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true"
      annotations:
        k8s.aliyun.com/eci-imc-id: imc-2ze5tm5gehgtiiga****  # 特定の ImageCache に固定します
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        imagePullPolicy: IfNotPresent

アノテーションの一括適用

eci-profile の Elastic Container Instance Effect 機能を使用すると、一致するすべての Pod に ImageCache アノテーションを適用できます。詳細については、「eci-profile を設定して ImageCache 機能を自動的に使用する」をご参照ください。

次のステップ