全部产品
Search
文档中心

Elastic Container Instance:Kelola ImageCaches

更新时间:Jul 06, 2025

Alibaba Cloud menyediakan fitur ImageCache dari Elastic Container Instance melalui CustomResourceDefinition (CRD) ImageCache. Dengan fitur ini, Anda dapat mempercepat pembuatan pod berbasis Elastic Container Instance di Kubernetes. Topik ini menjelaskan tentang ImageCaches serta cara membuat, menanyakan, dan menghapus sebuah ImageCache.

Buat persiapan

Masuk ke kluster Kubernetes Anda dan jalankan perintah berikut untuk memeriksa apakah kluster mendukung ImageCaches:

kubectl get crd/imagecaches.eci.alibabacloud.com
  • Jika terjadi kesalahan, kluster tidak mendukung ImageCaches. Contoh keluaran:

    Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "imagecaches.eci.alibabacloud.com" not found

    Jika kluster Anda tidak mendukung ImageCaches, perbarui komponen ack-virtual-node ke versi yang mendukung ImageCaches.

    Catatan

    Disarankan untuk memperbarui komponen ack-virtual-node ke versi terbaru agar dapat menggunakan fitur baru.

  • Jika informasi tentang imagecaches.eci.alibabacloud.com dikembalikan, kluster Kubernetes Anda mendukung ImageCaches. Contoh keluaran:

    NAME                               CREATED AT
    imagecaches.eci.alibabacloud.com   2024-01-23T05:54:44Z

    Jika CRD ImageCache di kluster Anda bukan versi terbaru, disarankan untuk menjalankan perintah kubectl apply guna memperbarui CRD ImageCache ke versi terbaru.

    kubectl apply -f imagecache-crd-sample.yaml

    Kembangkan untuk melihat imagecache-crd-sample.yaml

    apiVersion: apiextensions.k8s.io/v1beta1
    kind: CustomResourceDefinition
    metadata:
      name: imagecaches.eci.alibabacloud.com
    spec:
      group: eci.alibabacloud.com
      version: v1
      names:
        kind: ImageCache
        plural: imagecaches
        shortNames:
        - ic
        categories:
        - all
      scope: Cluster
      subresources:
        status: {}
      validation:
        openAPIV3Schema:
          required:
          - spec
          properties:
            spec:
              type: object
              required:
              - images
              properties:
                imagePullSecrets:
                  type: array
                  items:
                    type: string
                images:
                  minItems: 1
                  type: array
                  items:
                    type: string
                imageCacheSize:
                  type: integer
                retentionDays:
                  type: integer
      additionalPrinterColumns:
      - name: Age
        type: date
        JSONPath: .metadata.creationTimestamp
      - name: CacheId
        type: string
        JSONPath: .status.imageCacheId
      - name: Phase
        type: string
        JSONPath: .status.phase
      - name: Progress
        type: string
        JSONPath: .status.progress

Konfigurasikan ImageCache

Kode berikut menunjukkan file konfigurasi YAML untuk ImageCache. Untuk informasi lebih lanjut, lihat Kubernetes ImageCache API.

apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
  name: imagecache-sample
  annotations:
    k8s.aliyun.com/imc-enable-reuse: "true" # Mengaktifkan fitur penggunaan ulang ImageCache.
spec:
  images:
  - centos:latest
  - busybox:latest
  imagePullSecrets:
  - default:secret1
  - default:secret2
  - kube-system:secret3
  imageCacheSize:
   25
  retentionDays:
   7

Deskripsi parameter:

Parameter

Tipe

Diperlukan

Deskripsi

spec.images

String[]

Ya

Gambar kontainer yang dapat digunakan untuk membuat ImageCache.

spec.imagePullSecrets

String[]

Tidak

Rahasia repositori gambar pribadi.

  • Jika gambar yang ditentukan oleh parameter spec.images berada di repositori gambar pribadi, Anda harus mengonfigurasi rahasia untuk repositori gambar pribadi dalam format namespace:secretName.

  • Jika semua gambar di spec.images adalah gambar publik, Anda tidak perlu menentukan parameter ini.

spec.imageCacheSize

int

Tidak

Ukuran ImageCache. Satuan: GiB. Nilai default: 20. Nilai valid: 20 hingga 32768.

Tetapkan nilai berdasarkan ukuran gambar. Ukuran ImageCache harus lebih besar atau sama dengan dua kali ukuran gambar.

spec.retentionDays

int

Tidak

Periode retensi ImageCache. Ketika periode retensi yang ditentukan berakhir, ImageCache akan dihapus. Satuan: hari. Parameter ini kosong secara default, yang menunjukkan bahwa ImageCache tidak pernah kedaluwarsa.

Catatan

Anda dapat menambahkan anotasi ke file konfigurasi YAML ImageCache untuk memanfaatkan sepenuhnya fitur ImageCache. Sebagai contoh, dalam file YAML sebelumnya, anotasi k8s.aliyun.com/imc-enable-reuse: "true" ditambahkan untuk mengaktifkan fitur penggunaan ulang ImageCache. Untuk informasi lebih lanjut, lihat Anotasi ImageCache.

Buat ImageCache

  1. Buat ImageCache.

    kubectl create -f imagecache-test.yaml

    Contoh file imagecache-test.yaml:

    apiVersion: eci.alibabacloud.com/v1
    kind: ImageCache
    metadata:
      name: imagecache-sample-test
      annotations:
        k8s.aliyun.com/imc-enable-reuse: "true" # Mengaktifkan fitur penggunaan ulang 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
  2. Lihat status ImageCache.

    kubectl get imagecache imagecache-sample-test

    Kode sampel berikut menunjukkan contoh keluaran. Jika ImageCache berada dalam status Ready, ImageCache telah dibuat dan siap digunakan.

    NAME                     AGE     CACHEID                    PHASE   PROGRESS
    imagecache-sample-test   5m30s   imc-2ze2kbf9l1onf03z****   Ready   100%

Menanyakan ImageCache

Anda dapat menanyakan detail tentang ImageCache atau daftar ImageCache di kluster.

  • Menanyakan daftar ImageCache di kluster

    kubectl get imagecache
  • Menanyakan detail tentang ImageCache

    kubectl get imagecache <imagecache-name> -o yaml

Hapus ImageCache

ImageCache adalah snapshot. Jika Anda ingin mempertahankan ImageCache yang Anda buat secara manual, Anda harus membayar biaya snapshot. Jika Anda tidak lagi menggunakan ImageCache, disarankan untuk menghapusnya secara manual sesegera mungkin.

Untuk menghapus ImageCache, jalankan perintah berikut:

kubectl delete imagecache <imagecache-name>