Alibaba Cloud は、ImageCache CustomResourceDefinition (CRD) の形式で Elastic Container Instance のイメージキャッシュ機能を提供しています。この方法で、Elastic Container Instance のイメージキャッシュ機能を使用して、Kubernetes でのポッドの作成を高速化できます。このトピックでは、イメージキャッシュリソースと、イメージキャッシュの作成、クエリ、および削除の方法について説明します。
前提条件
ImageCache CRD は、セルフマネージド Kubernetes クラスターにデプロイされています。詳細については、ImageCache CRD のデプロイを参照してください。
説明
次のコードは、イメージキャッシュの YAML 設定ファイルを提供します。詳細については、kubernetes ImageCache の API 操作を参照してください。
次の表で、パラメーターについて説明します。
パラメーター | タイプ | 必須 | 説明 |
spec.images | String[] | はい | ImageCache の作成に使用できるコンテナーイメージ。 |
spec.imagePullSecrets | String[] | いいえ | プライベートイメージリポジトリのシークレット。
|
spec.imageCacheSize | int | いいえ | ImageCache のサイズ。単位:GiB。デフォルト値:20。有効な値:20~32768。 イメージのサイズに基づいて値を設定します。 ImageCache のサイズは、イメージサイズの 2 倍以上である必要があります。 |
spec.retentionDays | int | いいえ | ImageCache の保持期間。指定された保持期間が終了すると、ImageCache は削除されます。単位:日。このパラメーターはデフォルトで空のままです。これは、ImageCache が期限切れにならないことを示します。 |
イメージキャッシュの YAML 設定ファイルにアノテーションを追加して、イメージキャッシュ機能を最大限に活用できます。たとえば、上記の YAML ファイルでは、k8s.aliyun.com/imc-enable-reuse: "true"
アノテーションを追加して、イメージキャッシュの再利用を有効にしています。詳細については、ImageCache でサポートされているアノテーションを参照してください。
ImageCache の作成
ImageCache を作成します。
kubectl create -f imagecache-test.yaml
imagecache-test.yaml ファイルの例:
apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: imagecache-sample-test annotations: k8s.aliyun.com/imc-enable-reuse: "true" # ImageCache の再利用機能を有効にします。 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
ImageCache のステータスを表示します。
kubectl get imagecache imagecache-sample-test
次のサンプルコードは、サンプル出力を提供します。 ImageCache が Ready 状態の場合、ImageCache は作成され、使用できます。
NAME AGE CACHEID PHASE PROGRESS imagecache-sample-test 5m30s imc-2ze2kbf9l1onf03z**** Ready 100%
ImageCache のクエリ
クラスター内の ImageCache の詳細または ImageCache リストをクエリできます。
クラスター内の ImageCache リストをクエリする
kubectl get imagecache
ImageCache の詳細をクエリする
kubectl get imagecache <imagecache-name> -o yaml
ImageCache の削除
ImageCache はスナップショットです。手動で作成した ImageCache を保持する場合は、スナップショットのコストを支払う必要があります。 ImageCache を使用しなくなった場合は、タイムリーに手動で削除することをお勧めします。
ImageCache を削除するには、次のコマンドを実行します。
kubectl delete imagecache <imagecache-name>