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

:ImageCacheの管理

最終更新日:Mar 28, 2022

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

準備

KubernetesクラスターがImageCacheをサポートしていることを確認します。 KubernetesクラスターがImageCacheをサポートしているかどうかを確認するには、クラスターにログインして次のコマンドを実行します。

kubectl get crd/imagecaches.eci.alibabacloud.com
  • エラーが返された場合、クラスターはImageCacheをサポートしていません。 サンプル出力:

    サーバーからのエラー (NotFound): customresourcedefinitions.apiextensions.k8s.io "imagecaches.eci.alibabacloud.com" not found

    クラスターがImageCacheをサポートしていない場合は、Virtual KubeletをImageCacheをサポートするバージョンに更新します。

    説明

    新しい機能を使用するには、Virtual Kubeletを最新バージョンに更新することを推奨します。 Virtual Kubeletのバージョンの詳細については、「ack-virtual-node」をご参照ください。

  • imagecaches.eci.alibabacloud.comが返された場合、クラスターはImageCacheをサポートします。 サンプル出力:

    で作成された
    名
    imagecaches.eci.alibabacloud.com 2019-09-27T01:15:07Z 

    クラスターのImageCache CRDが最新バージョンでない場合は、kubectl applyコマンドを実行してImageCache CRDを最新バージョンに更新することを推奨します。

    kubectl apply -f imagecache-crd-sample.yaml

    サンプルimagecache-crd-sample.yamlファイル:

    apiVersion: apiextensions.k8s.io/v1beta1
    kind: CustomResourceDefinition
    メタデータ:
      名前: imagecaches.eci.alibabacloud.com
    spec:
      グループ: eci.alibabacloud.com
      バージョン: v1
      名前:
        kind: ImageCache
        複数: imagecaches
        shortNames:
        -ic
        カテゴリ:
        -すべて
      scope: クラスター
      サブリソース:
        status: {}
      検証:
        openAPIV3Schema:
          required:
          -spec
          プロパティ:
            spec:
              type: object
              required:
              -画像
              プロパティ:
                imagePullSecrets:
                  タイプ: 配列
                  items:
                    タイプ: string
                画像:
                  minItems: 1
                  タイプ: 配列
                  items:
                    タイプ: string
                imageCacheSize:
                  タイプ: integer
                retentionDays:
                  タイプ: integer
      additionalPrinterColumns:
      -name: Age
        タイプ: 日付
        JSONPath: 。metadata.creationTimestamp
      -name: CacheId
        タイプ: string
        JSONPath: 。status.imageCacheId
      -name: フェーズ
        タイプ: string
        JSONPath: 。status.phase
      -name: Progress
        タイプ: string
        JSONPath: 。status.progress 

ImageCacheの設定

ImageCache CRDを作成したら、それを使用してImageCacheを管理できます。 詳細については、「Kubernetes ImageCacheのAPI操作」をご参照ください。

ImageCacheのサンプルYAML設定ファイル:

apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
メタデータ:
  名前: imagecache-sample
  annotations:
    k8s.aliyun.com/imc-enable-reuse: "true"# イメージキャッシュの再利用を可能にする
spec:
  画像:
  -centos: 最新
  -busybox: 最新
  imagePullSecrets:
  - default:secret1
  - default:secret2
  - kube-system:secret3
  imageCacheSize:
   25
  retentionDays:
   7

下表にパラメーターを示します。

パラメーター

タイプ

必須/任意

説明

spec.images

String[]

必須

ImageCacheの作成に使用されるコンテナーイメージ。

spec.imagePullSecrets

String[]

任意

プライベートイメージリポジトリの秘密。

  • spec.imagesのイメージがプライベートイメージリポジトリから指定されている場合は、namespace:secretName形式でプライベートイメージリポジトリのシークレットを設定する必要があります。

  • spec.images内のすべてのイメージがパブリックイメージの場合、このパラメーターを指定する必要はありません。

spec.imageCacheSize

int

任意

ImageCacheのサイズ。 単位 : GB。 デフォルト値は 20 です。 有効な値: 20 ~ 32768

spec.retentionDays

int

任意

ImageCacheの保持期間。 指定された保存期間が終了すると、イメージキャッシュは期限切れになり、削除されます。 単位は日です。 このパラメーターはデフォルトでは空のままです。これは、ImageCacheの有効期限が切れないことを示します。

説明

ImageCacheのYAML構成ファイルにアノテーションを追加して、イメージキャッシュ機能を最大限に活用できます。 たとえば、上記のYAMLファイルでは、k8s.aliyun.com/imc-enable-reuse: "true" アノテーションが追加され、イメージキャッシュの再利用が可能になります。 詳細については、「ImageCacheでサポートされている注釈」をご参照ください。

ImageCacheの作成

  1. ImageCacheを作成します。

    kubectl create -f imagecache-secrets-test.yaml

    サンプルimagecache-secrets-test.yamlファイル:

    apiVersion: eci.alibabacloud.com/v1
    kind: ImageCache
    メタデータ:
      名前: imagecache-sample
      annotations:
        k8s.aliyun.com/imc-enable-reuse: "true"# イメージキャッシュの再利用を可能にする
    spec:
      画像:
      -centos: 最新
      -busybox: 最新
      imagePullSecrets:
      - default:secret1
      - default:secret2
      - kube-system:secret3
      imageCacheSize:
       25
      retentionDays:
       7
  2. ImageCacheのステータスを表示します。

    kubectl get imagecache imagecache-sample-test

    サンプル出力:

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

ImageCacheのクエリ

クラスター内のImageCacheまたはImageCacheリストに関する詳細を照会できます。

  • クラスター内のImageCacheリストに関する詳細の照会

    kubectl get imagecache
  • ImageCacheに関する詳細の照会

    kubectl get imagecache/imagecache-sample-test -o yaml

ImageCacheの削除

Alibaba Cloudは、各ImageCacheのスナップショットを自動的に作成します。 保持された各ImageCacheのスナップショットに対して課金されます。 ImageCacheの作成時に保持期間を設定しなかった場合は、不要になったImageCacheをタイムリーに手動で削除することをお勧めします。

ImageCacheを削除するには、次のコマンドを実行します。

kubectl delete imagecache/imagecache-sample-test