Jika Anda menggunakan Kubernetes atau K8s, Anda mungkin menemukan salah satu kesalahan paling umum: ImagePullbackoff.
Berurusan dengan kesalahan ImagePullbackoff bisa membuat frustrasi dan membosankan jika Anda tidak terbiasa dengan masalah ini.
Plus, Kubernetes memiliki ekosistem besar.
Tanpa pengetahuan yang tepat, melacak sumber masalah bisa seperti menemukan jarum di tumpukan jerami-bahkan jika Anda menggunakan solusi pemantauan tumpukan penuh untuk aplikasi modern Anda.
Berita baiknya adalah kami di sini untuk membantu.
Panduan ini mencakup apa yang perlu Anda ketahui tentang mencegah dan memecahkan masalah kesalahan ImagePullbackoff di Kubernetes.
Apa arti Kubernetes ImagePullbackoff?
Status ImagePullbackoff berarti bahwa pod tidak dapat dimulai karena Kubernetes gagal menarik gambar kontainer.
Itu Backoff Bagian dalam status berarti bahwa Kubernet akan terus mencoba menarik gambar dengan penundaan yang meningkat (karenanya, backoff).
Mari kita hancurkan lebih jauh.
Di Kubernetes, agen di setiap node (disebut Kubelet) bertanggung jawab untuk menjalankan wadah di node dan menarik gambar.
Anda dapat memikirkan beberapa gudang, di mana setiap gudang (node) menyertakan satu forklift (Kubelet) yang mengangkat dan menjalankan wadah.
Karena Kubelet bertanggung jawab atas wadah yang berjalan pada simpul itu, ia melaporkan apa yang terjadi kembali ke API Kubernetes pusat.
Kemudian, Kubelet akan menginstruksikan runtime wadah untuk menarik gambar wadah jika belum ada pada node.
Jika sesuatu menjaga runtime kontainer dari menarik gambar ke simpul – yang telah menjadwalkan pod Anda – Kubelet akan melaporkan kembali ErrimagePull dan kemudian ImagePullbackoff (dan akan terus mencoba).
Pada dasarnya, kesalahan ImagePullbackoff menunjukkan bahwa sesuatu menjaga Kubernet dari menarik gambar yang Anda inginkan ke simpul tertentu.
Akar penyebab kesalahan ImagePullbackoff
Memperbaiki kesalahan ImagePullbackoff Kubernetes membutuhkan pemahaman apa yang menyebabkan masalah ini.
Beberapa penyebab paling umum dari kesalahan ImagePullbackoff termasuk yang berikut.
Menggunakan registri pribadi tanpa memberikan kredensial yang diperlukan
Banyak perusahaan sering menggunakan Kubernetes dengan registri gambar kontainer pribadi untuk menjaga aplikasi internal non-publik di perpustakaan gambar kontainer.
Jika Anda ingin menarik gambar dari pendaftar pribadi, pastikan Anda memberi Kubernetes kredensial yang diperlukan yang memungkinkannya mengambil gambar.
Anda harus membuat rahasia di Kubernetes – sarana untuk menyimpan informasi sensitif seperti kunci SSH atau token OAuth.
Anda juga perlu membuat rahasia saat menarik dari:
- Pendaftar yang dapat diakses secara publik tetapi dilindungi kata sandi
- Gambar Pribadi di Registry Kontainer GitHub, Registry Kontainer Google, dan Lainnya
Merujuk tag atau gambar yang tidak ada
Membuat pod yang merujuk gambar atau tag yang tidak ada adalah salah satu penyebab paling umum dari kesalahan ImagePullbackoff, dan sering kali hasilnya ketika Anda membuat kesalahan ketik.
Mungkin juga ada contoh ketika gambar seharusnya ada, dan Anda menggunakan nama yang tepat, tetapi tag mungkin sudah pensiun.
Jika Anda mengikuti buku atau tutorial lama yang merujuk tag gambar tertentu, periksa apakah tag masih ada.
Jika tag tidak ada lagi, temukan tag pengganti yang lebih baik Anda gunakan untuk membuat Anda tidak menemukan kesalahan ImagePullbackoff.
Diblokir oleh registri dan masalah lainnya
Beberapa perpustakaan registri memiliki batasan tarif.
Setelah Anda mencapai batas unduhan maksimum yang diizinkan, registri dapat memblokir Anda, yang dapat menyebabkan kesalahan ImagePullbackoff.
Anda harus mendaftar ke akun atau mencari tempat lain untuk mendapatkan gambar Anda.
Kesalahan ImagePullbackoff juga dapat terjadi jika Anda tidak mengatur otentikasi SSL/TLS dengan benar yang dibutuhkan registri.
4 Imagepullbackoff Kubernetes Tips Pemecahan Masalah
Di bawah ini adalah beberapa cara untuk menyelidiki dan memperbaiki kesalahan ImagePullbackoff.
1. Gunakan Kubectl Jelaskan
Salah satu langkah awal untuk menemukan akar penyebab dan memperbaiki kesalahan ImagePullbackoff adalah dengan menggunakan Kubectl menjelaskan.
Melakukan hal itu dapat menunjukkan kepada Anda log kesalahan penuh, membantu Anda melihat kemungkinan penyebab masalah ini.
Misalnya, jika Anda memiliki pod yang merujuk gambar yang tidak ada, Anda akan mendapatkan output acara dari Kubectl menjelaskan
Berdasarkan peristiwa yang ditunjukkan di atas, kesalahan dengan jelas menunjukkan bahwa Anda salah dalam skenario ini, menyebabkan masalah Imaepullbackoff Kubernetes.
2. Periksa pod dan rahasia Anda jika Anda menggunakan registri pribadi
Jika Anda menarik gambar dari pendaftar pribadi, pastikan Anda membuat rahasia yang berisi kredensial yang diperlukan untuk mengakses registri.
Selain itu, pastikan Anda menambahkan rahasia di namespace yang benar.
Anda juga harus mengkonfigurasi bidang ImagePullSecrets di pod Anda. Lapangan memberi tahu Kubernetes rahasia spesifik mana yang harus digunakan ketika mengotentikasi ke registri.
Seharusnya terlihat seperti ini.
3. Menilai sejauh mana masalah ini
Cari tahu akar masalah yang tepat dengan mempertimbangkan hal -hal berikut:
- Apakah ada polong lain yang sudah berjalan pada simpul tertentu? Jika node sudah menjalankan pod lain tanpa masalah, itu harus bekerja dengan baik karena node menarik dari registri yang sama. Selidiki apa yang membuat pod berbeda untuk membantu menentukan akar penyebab kesalahan ImagePullbackoff.
- Bisakah node (di cluster) menarik gambar? Pertimbangkan untuk melompat ke simpul melalui SSH dan memeriksa apakah Anda dapat menjalankan tarikan Docker dan mendapatkan gambar.
- Apakah Anda dapat menarik gambar secara lokal? Tarik gambar dari workstation Anda dan jika tidak berhasil, coba podman tarik atau tarik buruh untuk melihat apakah Anda dapat mengambil gambar. Melakukan hal itu dapat memberi Anda petunjuk mengapa menarik gambar secara lokal gagal.
4. Tingkatkan level log Kubelet
Jika Anda dapat mengakses node itu sendiri, dapatkan informasi lebih lanjut dengan menaikkan level log pada Kubelet.
Anda harus mengatur parameter – V, yang memodifikasi verbositas level log.
Dapatkan kesalahan ImagePullbackoff Kubernetes
Sementara berbagai alasan dan faktor dapat menyebabkan kesalahan ImagePullbackoff, memperbaiki masalah tidak harus menjadi ilmu roket.
Mulailah dengan menyelidiki dan membaca pesan kesalahan dan mengikuti tips dalam panduan ini.