Alibaba Cloudは、ImageCache CustomResourceDefinition(CRD)を使用してElastic Container Instanceのイメージキャッシュ機能を提供します。この方法で、Elastic Container Instanceのイメージキャッシュ機能を使用して、KubernetesのElastic Container InstanceベースのPodの作成を高速化できます。このトピックでは、イメージキャッシュと、イメージキャッシュの作成、クエリ、削除の方法について説明します。
準備
Kubernetesクラスターにログオンし、次のコマンドを実行して、Kubernetesクラスターがイメージキャッシュをサポートしているかどうかを確認します。
kubectl get crd/imagecaches.eci.alibabacloud.comエラーが返された場合、クラスターはイメージキャッシュをサポートしていません。出力例:
Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "imagecaches.eci.alibabacloud.com" not foundクラスターがイメージキャッシュをサポートしていない場合は、ack-virtual-nodeコンポーネントをイメージキャッシュをサポートするバージョンに更新します。
説明新機能を使用するには、ack-virtual-nodeコンポーネントを最新バージョンに更新することをお勧めします。
ack-virtual-nodeのバージョンについては、ack-virtual-nodeを参照してください。
ack-virtual-nodeの更新方法については、システムコンポーネントの管理を参照してください。
imagecaches.eci.alibabacloud.comに関する情報が返された場合、Kubernetesクラスターはイメージキャッシュをサポートしています。出力例:
NAME CREATED AT imagecaches.eci.alibabacloud.com 2024-01-23T05:54:44Zクラスター内のImageCache CRDが最新バージョンでない場合は、
kubectl applyコマンドを実行して、ImageCache CRDを最新バージョンに更新することをお勧めします。kubectl apply -f imagecache-crd-sample.yaml
イメージキャッシュの構成
次のコードは、イメージキャッシュのYAML構成ファイルを提供します。詳細については、Kubernetes ImageCache APIを参照してください。
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-reuse: "true" # イメージキャッシュの再利用機能を有効にします。
spec:
images:
- centos:latest
- busybox:latest
imagePullSecrets:
- default:secret1
- default:secret2
- kube-system:secret3
imageCacheSize:
25
retentionDays:
7パラメーターの説明:
パラメーター | タイプ | 必須 | 説明 |
spec.images | String[] | はい | イメージキャッシュの作成に使用できるコンテナーイメージ。 |
spec.imagePullSecrets | String[] | いいえ | プライベートイメージリポジトリのシークレット。
|
spec.imageCacheSize | int | いいえ | イメージキャッシュのサイズ。単位:GiB。デフォルト値:20。有効な値:20~32768。 イメージのサイズに基づいて値を設定します。イメージキャッシュのサイズは、イメージサイズの2倍以上である必要があります。 |
spec.retentionDays | int | いいえ | イメージキャッシュの保持期間。指定された保持期間が終了すると、イメージキャッシュは削除されます。単位:日。このパラメーターはデフォルトでは空のままです。これは、イメージキャッシュが期限切れにならないことを示します。 |
イメージキャッシュのYAML構成ファイルにアノテーションを追加して、イメージキャッシュ機能を最大限に活用できます。たとえば、上記のYAMLファイルでは、k8s.aliyun.com/imc-enable-reuse: "true"アノテーションを追加して、イメージキャッシュの再利用機能を有効にしています。詳細については、イメージキャッシュのアノテーションを参照してください。
イメージキャッシュの作成
イメージキャッシュを作成します。
kubectl create -f imagecache-test.yamlimagecache-test.yamlファイルの例:
apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: imagecache-sample-test annotations: k8s.aliyun.com/imc-enable-reuse: "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イメージキャッシュのステータスを表示します。
kubectl get imagecache imagecache-sample-test次のサンプルコードは、出力例を示しています。イメージキャッシュがReady状態の場合、イメージキャッシュは作成され、使用できます。
NAME AGE CACHEID PHASE PROGRESS imagecache-sample-test 5m30s imc-2ze2kbf9l1onf03z**** Ready 100%
イメージキャッシュのクエリ
クラスター内のイメージキャッシュまたはイメージキャッシュリストに関する詳細をクエリできます。
クラスター内のイメージキャッシュリストをクエリする
kubectl get imagecacheイメージキャッシュの詳細をクエリする
kubectl get imagecache <imagecache-name> -o yaml
イメージキャッシュの削除
イメージキャッシュはスナップショットです。手動で作成したイメージキャッシュを保持する場合、スナップショットのコストを支払う必要があります。イメージキャッシュを使用しなくなった場合は、タイムリーに手動で削除することをお勧めします。
イメージキャッシュを削除するには、次のコマンドを実行します。
kubectl delete imagecache <imagecache-name>