Untuk mempercepat pembuatan pod dalam klaster Kubernetes, Anda dapat menggunakan fitur ImageCache dari Elastic Container Instance melalui Custom Resource Definition (CRD) ImageCache. Saat membuat cache gambar, Anda dapat menambahkan anotasi sesuai kebutuhan bisnis. Artikel ini menjelaskan anotasi yang dapat ditambahkan dan memberikan contoh konfigurasinya.
Anotasi yang dapat ditambahkan saat Anda membuat cache gambar
Tabel berikut menjelaskan anotasi yang dapat ditambahkan saat membuat cache gambar.
Anotasi | Contoh | Deskripsi | Referensi |
k8s.aliyun.com/vswitch-ids | "vsw-bp1dktddjsg5nktv****,vsw-bp1xpiowfm5vo8o3c****" | Menentukan ID vSwitches. Anda dapat menentukan beberapa vSwitches untuk beberapa zona. Jika Anda tidak menentukan parameter ini, ID vSwitch yang dikonfigurasikan di eci-profile digunakan. | |
k8s.aliyun.com/imc-cpu-arch | "arm64" | Menentukan arsitektur CPU. Nilai yang valid:
| |
k8s.aliyun.com/imc-os-type | "windows" | Menentukan sistem operasi. Nilai yang valid:
| |
k8s.aliyun.com/security-group-id | "sg-bp1dktddjsg5nktv****" | Menentukan ID grup keamanan. Jika Anda meninggalkan anotasi ini kosong, ID grup keamanan yang dikonfigurasikan di eci-profile digunakan. | |
k8s.aliyun.com/resource-group-id | "rg-aek2z3elfs4****" | Menentukan ID grup sumber daya. Jika Anda meninggalkan anotasi ini kosong, ID grup sumber daya yang dikonfigurasikan di eci-profile digunakan. | |
k8s.aliyun.com/acr-instance-ids | "cri-j36zhodptmyq****" | Menentukan ID instance Enterprise Edition Alibaba Cloud Container Registry. Instance ini digunakan untuk menarik gambar tanpa perlu menggunakan kata sandi. Anda dapat menentukan instance Container Registry Enterprise Edition yang berada di wilayah berbeda dari wilayah pod. Untuk melakukannya, Anda harus menambahkan awalan ID wilayah instance Container Registry Enterprise Edition ke ID instance Container Registry Enterprise Edition. Contoh: | Tarik gambar dari instance Container Registry tanpa menggunakan secrets |
k8s.aliyun.com/acr-service-arns | acs:ram::1609982529******:role/role-assume | Menentukan Nama Sumber Daya Alibaba Cloud (ARN) dari Peran RAM dalam akun Alibaba Cloud tempat sumber daya Elastic Container Instance berada. Anotasi ini diperlukan saat Anda menggunakan Peran RAM untuk membuat sumber daya. | |
k8s.aliyun.com/acr-user-arns | acs:ram::1298452580******:role/role-acr | Menentukan ARN dari Peran RAM dalam akun Alibaba Cloud tempat instance Container Registry berada. Anotasi ini diperlukan saat Anda menarik gambar dari instance Container Registry yang dimiliki oleh akun Alibaba Cloud berbeda dari akun Alibaba Cloud sumber daya Elastic Container Instance. | |
k8s.aliyun.com/plain-http-registry | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | Menentukan alamat repositori gambar yang dikelola sendiri. Saat Anda membuat instance kontainer elastis menggunakan gambar dalam repositori gambar yang dikelola sendiri yang menggunakan protokol HTTP, Anda harus menambahkan anotasi ini. Dengan cara ini, Elastic Container Instance menggunakan protokol HTTP untuk menarik gambar. Ini mencegah kegagalan menarik gambar karena perbedaan protokol. | |
k8s.aliyun.com/insecure-registry | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | Menentukan alamat repositori gambar yang dikelola sendiri. Saat Anda membuat instance kontainer elastis menggunakan gambar dalam repositori gambar yang dikelola sendiri yang menggunakan sertifikat tanda tangan sendiri, Anda harus menambahkan anotasi ini untuk melewati otentikasi sertifikat. Ini mencegah kegagalan menarik gambar karena kegagalan otentikasi sertifikat. | |
k8s.aliyun.com/imc-enable-reuse | "true" | Menentukan apakah akan mengaktifkan penggunaan kembali lapisan cache gambar. Jika Anda mengaktifkan fitur ini dan cache gambar yang ingin Anda buat berisi lapisan yang sama dengan cache gambar yang ada, sistem menggunakan kembali lapisan gambar dari cache gambar yang ada untuk membuat cache gambar baru. Ini mempercepat pembuatan cache gambar. | |
k8s.aliyun.com/imc-enable-flash | "true" | Menentukan apakah akan mengaktifkan fitur cache gambar instan. Jika Anda mengaktifkan fitur ini, sistem membuat snapshot lokal sementara. Ini mengurangi waktu yang diperlukan untuk membuat cache gambar. | |
k8s.aliyun.com/imc-retention-days | "7" | Menentukan periode retensi cache gambar. Unit: hari. Cache gambar yang kedaluwarsa dihapus secara otomatis. Anotasi ini dikosongkan secara default, yang menunjukkan bahwa cache gambar tidak pernah kedaluwarsa. | |
k8s.aliyun.com/imc-size | "25" | Menentukan ukuran cache gambar. Unit: GiB. Nilai default: 20. Nilai valid: 20 hingga 32768. | |
k8s.aliyun.com/eip-instance-id | "eip-bp1q5n8cq4p7f6dzu****" | Menentukan ID alamat IP elastis (EIP) yang terkait dengan pod. Jika tidak ada gateway NAT yang dikonfigurasikan, Anda dapat mengaitkan EIP yang ada dengan pod untuk menarik gambar melalui Internet. | |
k8s.aliyun.com/auto-create-eip | "true" | Menentukan apakah akan secara otomatis membuat EIP dan mengaitkan EIP dengan instance kontainer elastis. Jika tidak ada gateway NAT yang dikonfigurasikan, Anda dapat mengatur anotasi ini menjadi true. Ini memungkinkan sistem untuk membuat EIP dan mengaitkan EIP dengan pod untuk menarik gambar melalui Internet. | |
k8s.aliyun.com/eip-bandwidth | "5" | Menentukan batas bandwidth untuk EIP saat sistem membuat EIP. Unit: Mbit/s. | |
k8s.aliyun.com/eip-internet-charge-type | PayByBandwidth | Menentukan metode penagihan untuk penggunaan jaringan EIP saat sistem membuat EIP. Nilai yang valid:
| |
k8s.aliyun.com/eip-isp | BGP | Menentukan jenis jalur EIP saat sistem membuat EIP. Anotasi ini hanya berlaku untuk EIP bayar sesuai pemakaian. Nilai yang valid:
| |
k8s.aliyun.com/eip-common-bandwidth-package-id | "cbwp-2zeukbj916scmj51m****" | Menentukan ID paket bandwidth EIP. |
Buat cache gambar menggunakan fitur multi-zona
Saat membuat cache gambar, sistem akan membuat instance kontainer elastis sementara. Untuk memastikan pembuatan cache berhasil, Anda dapat menentukan beberapa vSwitch yang berada di zona berbeda.
Secara default, vSwitch dari klaster Kubernetes atau VNode digunakan. Jika klaster atau VNode dikonfigurasikan dengan beberapa zona, Anda mungkin tidak perlu menentukan vSwitch tambahan.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/vswitch-ids: "vsw-bp1dktddjsg5nktv****,vsw-bp1xpiowfm5vo8o3c****" # Menentukan beberapa vSwitch.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize:
25
retentionDays:
7Tentukan arsitektur CPU
Saat menarik gambar dengan arsitektur Arm untuk membuat cache gambar, Anda harus menentukan arsitektur CPU.
Pastikan bahwa node virtual dengan arsitektur Arm tersedia di klaster. Untuk informasi lebih lanjut, lihat Jadwalkan pod ke node virtual berbasis Arm.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-cpu-arch: "arm64" # Menentukan arsitektur CPU sebagai Arm.
spec:
images:
-arm64v8/centos:7.9.2009 # Menentukan gambar kontainer yang menggunakan arsitektur Arm.
imageCacheSize:
25
retentionDays:
7Tentukan sistem operasi
Saat menarik gambar Windows untuk membuat cache gambar, Anda harus menentukan sistem operasi.
Pastikan bahwa node virtual Windows tersedia di klaster. Untuk informasi lebih lanjut, lihat (Dalam pratinjau undangan) Jadwalkan pod untuk berjalan pada node virtual Windows.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-os-type: "windows" # Menentukan sistem operasi sebagai Windows.
spec:
images:
-mcr.microsoft.com/windows/nanoserver:ltsc2022 # Menentukan gambar kontainer yang berisi sistem operasi.
imageCacheSize:
25
retentionDays:
7Konfigurasikan grup keamanan dan grup sumber daya
Secara default, grup keamanan dan grup sumber daya yang dikonfigurasikan di eci-profile digunakan saat membuat cache gambar. Anda dapat mengonfigurasinya sesuai kebutuhan bisnis.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/security-group-id: "sg-bp1dktddjsg5nktv****" # Menentukan grup keamanan.
k8s.aliyun.com/resource-group-id: "rg-aek2z3elfs4****" # Menentukan grup sumber daya.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize:
25
retentionDays:
7Tarik gambar dari instance Container Registry tanpa menggunakan secrets
Tabel berikut menjelaskan skenario di mana Anda dapat menarik gambar dari instance Container Registry tanpa menggunakan Secrets.
Sumber daya yang akan dibuat seperti instance kontainer elastis dan instance Container Registry berada dalam akun yang sama | Edition instance Container Registry | Penarikan gambar tanpa secret |
Ya |
| Secara default, penarikan gambar tanpa secret diaktifkan. Anda dapat mengonfigurasi Peran RAM untuk membatasi ruang lingkup instance Container Registry yang mendukung penarikan gambar tanpa secret. |
Ya | Edition Perusahaan (gunakan nama domain kustom) | Penarikan gambar tanpa secret tidak dapat diaktifkan secara default. Anda harus menentukan instance Container Registry yang mendukung penarikan gambar tanpa secret. |
Tidak |
| Penarikan gambar tanpa secret tidak dapat diaktifkan secara default. Anda harus mengonfigurasi Peran RAM untuk menerapkan penarikan gambar tanpa secret. |
Untuk informasi lebih lanjut, lihat Tarik gambar dari instance Container Registry tanpa menggunakan Secret.
Gunakan repositori gambar yang dikelola sendiri
Jika repositori gambar yang dikelola sendiri menggunakan protokol HTTP atau sertifikat tanda tangan sendiri, Anda harus mengonfigurasi anotasi untuk mencegah kegagalan penarikan gambar.
Repositori gambar yang dikelola sendiri menggunakan protokol HTTP.
Secara default, instance kontainer elastis menarik gambar melalui protokol HTTPS. Saat membuat cache gambar, Anda harus menambahkan anotasi
k8s.aliyun.com/plain-http-registryagar instance kontainer elastis dapat berinteraksi dengan repositori gambar melalui protokol HTTP.apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: imagecache-sample annotations: k8s.aliyun.com/plain-http-registry: "192.168.XX.XX:5000" # Menentukan alamat repositori gambar yang dikelola sendiri, yang digunakan untuk menarik gambar melalui protokol HTTP. spec: images: - 192.168.XX.XX:5000/test/nginx:latest imagePullSecrets: - default:secret1 - default:secret2 - kube-system:secret3 imageCacheSize: 25 retentionDays: 7Repositori gambar yang dikelola sendiri menggunakan sertifikat tanda tangan sendiri.
Jika repositori gambar menggunakan sertifikat yang diterbitkan sendiri, otentikasi sertifikat gagal saat sistem mencoba menarik gambar. Anda harus menambahkan anotasi
k8s.aliyun.com/insecure-registryuntuk melewati otentikasi sertifikat.apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: imagecache-sample annotations: k8s.aliyun.com/insecure-registry: "harbor***.pre.com" # Menentukan alamat repositori gambar yang dikelola sendiri. Sistem melewati otentikasi sertifikat saat sistem mencoba menarik gambar dari repositori gambar untuk membuat pod. spec: images: - harbor***.pre.com/test/nginx:latest imagePullSecrets: - default:secret1 - default:secret2 - kube-system:secret3 imageCacheSize: 25 retentionDays: 7
Untuk menarik gambar dari beberapa repositori gambar yang berbeda, Anda dapat menentukan alamat repositori yang dipisahkan dengan koma (,). Contoh:
harbor***.pre.com,192.168.XX.XX.Jika alamat repositori gambar mengandung nomor port, Anda harus menentukan alamat dan nomor portnya. Sebagai contoh, jika alamat repositori gambar adalah
192.168.XX.XX:5000/nginx:latest, atur anotasinya menjadi192.168.XX.XX:5000.
Aktifkan penggunaan kembali lapisan cache gambar
Waktu yang diperlukan untuk membuat cache gambar bergantung pada faktor seperti ukuran gambar dan kondisi jaringan. Anda dapat mengaktifkan fitur penggunaan kembali lapisan cache gambar untuk mengurangi waktu pembuatan.
Setelah mengaktifkan fitur ini, sistem akan memeriksa cache gambar yang ada. Jika cache tersebut berisi lapisan gambar yang ingin digunakan, sistem akan menggunakan kembali lapisan tersebut untuk mempercepat pembuatan cache gambar.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-reuse: "true" # Mengaktifkan penggunaan kembali lapisan cache gambar.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize:
25
retentionDays:
7Aktifkan fitur cache gambar instan
Waktu yang diperlukan untuk membuat cache gambar bergantung pada faktor seperti ukuran gambar dan kondisi jaringan. Anda dapat mengaktifkan fitur cache gambar instan untuk mengurangi waktu pembuatan.
Setelah mengaktifkan fitur ini, sistem membuat snapshot lokal sementara untuk disk instance kontainer elastis selama pembuatan cache gambar. Setelah snapshot lokal dibuat, cache gambar siap digunakan.
Setelah snapshot lokal dibuat, sistem mulai membuat snapshot standar. Selama pembuatan snapshot standar, Anda dapat menggunakan cache gambar yang sesuai dengan snapshot lokal untuk membuat instance kontainer elastis. Setelah snapshot standar selesai, sistem menghapus snapshot lokal. Kemudian, Anda dapat menggunakan cache gambar yang sesuai dengan snapshot standar untuk membuat instance kontainer elastis.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-flash: "true" # Mengaktifkan fitur cache gambar instan.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize:
25
retentionDays:
7Konfigurasikan ukuran dan periode retensi cache gambar
Secara default, cache gambar yang dibuat secara manual berukuran 20 GiB dan disimpan secara permanen setelah dibuat. Jika ingin menentukan ukuran dan periode retensi cache gambar, Anda dapat menentukan parameter imageCacheSize dan retentionDays di bagian spec atau menambahkan anotasi.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-retention-days: "7" # Menentukan periode retensi cache gambar.
k8s.aliyun.com/imc-size: "25" # Menentukan ukuran cache gambar.
spec:
images:
- centos:latest
- busybox:latestKonfigurasikan EIP untuk menarik gambar melalui Internet
Elastic IP Address (EIP) adalah alamat IP publik yang dapat dibeli dan digunakan sebagai sumber daya independen. Saat EIP dikaitkan dengan sumber daya cloud, sumber daya tersebut dapat terhubung ke Internet. Untuk informasi lebih lanjut, lihat Apa itu Elastic IP Address?
Saat membuat cache gambar, pastikan Anda terhubung ke Internet sebelum menarik gambar melalui Internet. Anda dapat terhubung ke Internet dengan mengonfigurasi gateway NAT atau mengonfigurasi EIP. Jika virtual private cloud (VPC) Anda tidak terkait dengan gateway NAT, Anda dapat mengonfigurasi EIP untuk menarik gambar melalui Internet. Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi EIP.
Selama pembuatan cache gambar, sistem membuat instance kontainer elastis sementara dan mengaitkan EIP dengan instance tersebut. Jika Anda menggunakan EIP yang ada, EIP tetap ada setelah cache gambar dibuat. Jika sistem membuat EIP dan mengaitkannya dengan instance kontainer elastis sementara, EIP dan instance tersebut akan dilepaskan setelah cache gambar dibuat.
Mengaitkan EIP yang ada dengan instance kontainer elastis sementara
apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: imagecache-sample annotations: k8s.aliyun.com/eip-instance-id: "eip-bp1q5n8cq4p7f6dzu****" # Mengaitkan EIP yang ada dengan instance kontainer elastis sementara. spec: images: - centos:latest - busybox:latest imageCacheSize: 25 retentionDays: 7Membuat EIP secara otomatis dan mengaitkannya dengan instance kontainer elastis sementara
apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: imagecache-sample annotations: k8s.aliyun.com/auto-create-eip: "true" # Membuat EIP secara otomatis dan mengaitkannya dengan instance kontainer elastis sementara. k8s.aliyun.com/eip-bandwidth: "10" # Menentukan batas bandwidth EIP. Unit: Mbit/s. k8s.aliyun.com/eip-internet-charge-type: PayByBandwidth # Menentukan metode penagihan EIP. k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # Menentukan ID paket bandwidth EIP. spec: images: - centos:latest - busybox:latest imageCacheSize: 25 retentionDays: 7