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.imageCacheSize | int | 任意 | ImageCacheのサイズ。 単位 : GB。 デフォルト値は 20 です。 有効な値: 20 ~ 32768 |
spec.retentionDays | int | 任意 | ImageCacheの保持期間。 指定された保存期間が終了すると、イメージキャッシュは期限切れになり、削除されます。 単位は日です。 このパラメーターはデフォルトでは空のままです。これは、ImageCacheの有効期限が切れないことを示します。 |
ImageCacheのYAML構成ファイルにアノテーションを追加して、イメージキャッシュ機能を最大限に活用できます。 たとえば、上記のYAMLファイルでは、k8s.aliyun.com/imc-enable-reuse: "true"
アノテーションが追加され、イメージキャッシュの再利用が可能になります。 詳細については、「ImageCacheでサポートされている注釈」をご参照ください。
ImageCacheの作成
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
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