Untuk mengaktifkan beberapa fitur Elastic Container Instance (ECI), Anda perlu menambahkan anotasi ke pod. File konfigurasi eci-profile dari ECI menyediakan kemampuan ECI Effect untuk menambahkan anotasi secara otomatis ke pod. Topik ini menjelaskan cara mengonfigurasi eci-profile agar dapat menambahkan anotasi secara otomatis ke pod jika Anda ingin menggunakan fitur ImageCache untuk mempercepat pembuatan pod.
Deskripsi
Saat menggunakan kemampuan ECI Effect dari eci-profile, dalam pemilih file konfigurasi eci-profile, Anda harus mendeklarasikan label namespace atau label pod yang akan dicocokkan dalam bentuk array, serta mendeklarasikan anotasi terkait ImageCache yang perlu ditambahkan secara dinamis ke pod. Jika sebuah pod memiliki label yang dideklarasikan, anotasi yang ditentukan akan ditambahkan secara otomatis ke pod tersebut.
Untuk informasi lebih lanjut, lihat Konfigurasikan eci-profile.
Tabel berikut menjelaskan anotasi terkait ImageCache yang dapat ditambahkan ke pod:
Cara penggunaan ImageCache | Anotasi | Contoh nilai | Deskripsi |
Aktifkan pencocokan otomatis cache gambar | k8s.aliyun.com/eci-auto-imc | "true" | Menentukan apakah akan secara otomatis mencocokkan cache gambar. Nilai default adalah true, yang menunjukkan bahwa sistem secara otomatis mencocokkan cache gambar yang paling sesuai untuk membuat pod berdasarkan kebijakan pencocokan. Sistem memilih cache gambar berdasarkan urutan berikut: tingkat kesesuaian gambar, ukuran gambar, dan waktu pembuatan gambar. Jika tidak ada cache gambar yang cocok persis, sistem secara otomatis membuat cache gambar yang sesuai saat sistem membuat pod. |
k8s.aliyun.com/imc-perfect-match | "true" | Menentukan apakah semua gambar kontainer di pod harus cocok dengan cache gambar. Nilai default: false. | |
k8s.aliyun.com/imc-match-count-request | "2" | Menentukan jumlah gambar kontainer di pod yang ingin Anda cocokkan persis dengan cache gambar. | |
Tentukan cache gambar yang ingin Anda gunakan | k8s.aliyun.com/eci-imc-id | imc-2zebxkiifuyzzlhl**** | Menentukan cache gambar untuk membuat pod. |
Kode berikut menggambarkan pemilih.
selectors: |
[
{
"name":"demo", # Diperlukan. Nama pemilih.
"namespaceSelector":{ # Opsional. Label namespace dicocokkan.
"matchLabels":{ # Label yang akan dicocokkan. Jika Anda menentukan beberapa label, hubungan antar label adalah DAN.
"app":"nginx"
}
},
"objectSelector":{ # Opsional. Label pod dicocokkan.
"matchLabels":{ # Label yang akan dicocokkan. Jika Anda menentukan beberapa label, hubungan antar label adalah DAN.
"type":"test"
}
},
"effect":{ # Anotasi yang akan ditambahkan secara dinamis.
"annotations":{
"k8s.aliyun.com/eci-auto-imc": "true"
}
}
}
]Setelah mengonfigurasi pemilih, jalankan perintah berikut untuk memeriksa apakah pemilih berlaku. Jika file YAML yang dikembalikan berisi pemilih yang telah dikonfigurasi, pemilih tersebut berlaku. Jika tidak, pastikan format pemilih sudah benar.
kubectl get mutatingwebhookconfigurations -o yaml vk-webhookContoh
Edit file konfigurasi eci-profile.
kubectl -n kube-system edit cm eci-profileTambahkan contoh konten berikut ke pemilih:
[
...
{
"name":"image-cache-selector-1",
"objectSelector":{
"matchLabels":{
"image-cache":"true"
}
},
"effect": {
"annotations": {
"k8s.aliyun.com/eci-imc-id": "imc-uf6ic***************"
}
}
},
{
"name":"image-cache-selector-2",
"namespaceSelector":{
"matchLabels":{
"image-cache":"true"
}
},
"effect": {
"annotations": {
"k8s.aliyun.com/eci-auto-imc": "true"
}
}
}
]Konfigurasi sebelumnya mencakup dua pemilih:
image-cache-selector-1: Jika sebuah pod berisi label
image-cache: true, anotasi"k8s.aliyun.com/eci-imc-id": "imc-uf6ic***************"akan ditambahkan secara otomatis ke pod dan cache gambar yang ditentukan digunakan untuk mempercepat pembuatan pod.image-cache-selector-2: Jika sebuah namespace berisi label
image-cache: true, anotasi"k8s.aliyun.com/eci-auto-imc": "true"akan ditambahkan secara otomatis ke pod di namespace tersebut dan cache gambar mulai dicocokkan secara otomatis.