Memecahkan Masalah Build Kf

Gunakan langkah-langkah ini untuk memecahkan berbagai masalah yang dapat terjadi saat menggunakan Kf Build.

Objek macet saat dihapus

Jalankan perintah berikut untuk mendapatkan informasi resource, lalu periksa penyebab yang tercantum di bawah:

kubectl get builds.kf.dev -n SPACE_NAME BUILD_NAME -o yaml

CLI kf dapat membantu memeriksa beberapa masalah:

kf doctor --space SPACE_NAME build/BUILD_NAME
Kemungkinan PenyebabSolusi
Stempel waktu penghapusan berada di masa mendatang.

Dengan skew clock, metadata.deletionTimestamp mungkin masih di masa mendatang. Tunggu beberapa menit untuk melihat apakah objek telah dihapus.

Finalizer ada di objek.

Finalizer ada di objek, dan harus dihapus oleh pengontrol yang menetapkannya sebelum objek dihapus.

Jika Anda ingin memaksa penghapusan tanpa menunggu finalizer, edit objek untuk menghapusnya dari array metadata.finalizers.

Peringatan: Menghapus finalizer tanpa mengizinkan pengontrol menyelesaikan dapat menyebabkan error, masalah keamanan, kehilangan data, atau resource yang tidak digunakan lagi.

Objek dependen mungkin ada.

Objek mungkin menunggu dependen dihapus sebelum dihapus. Lihat panduan pembersihan sampah Kubernetes untuk mempelajari lebih lanjut. Minta administrator memeriksa semua objek di namespace dan cluster untuk melihat apakah salah satunya memblokir penghapusan.

Jika Anda perlu menghapus objek tanpa menunggu dependen, gunakan kubectl delete dengan flag cascade ditetapkan ke: --cascade=orphan.

Penyimpangan status pembuatan objek

Jalankan perintah berikut untuk mendapatkan informasi resource, lalu periksa penyebab yang tercantum di bawah:

kubectl get builds.kf.dev -n SPACE_NAME BUILD_NAME -o yaml

CLI kf dapat membantu memeriksa beberapa masalah:

kf doctor --space SPACE_NAME build/BUILD_NAME
Kemungkinan PenyebabSolusi
Objek memiliki drift versi pembuatan.

Error ini biasanya terjadi karena pengontrol Kf tidak membaca versi terbaru objek. Error ini biasanya pulih dengan sendirinya setelah replika Kubernetes mencapai konsistensi akhir, dan biasanya tidak memerlukan tindakan dari pengguna.

Rekonsiliasi objek gagal

Jalankan perintah berikut untuk mendapatkan informasi resource, lalu periksa penyebab yang tercantum di bawah:

kubectl get builds.kf.dev -n SPACE_NAME BUILD_NAME -o yaml

CLI kf dapat membantu memeriksa beberapa masalah:

kf doctor --space SPACE_NAME build/BUILD_NAME
Kemungkinan PenyebabSolusi
Objek memiliki TemplateError

Error ini biasanya terjadi jika pengguna telah memasukkan properti yang tidak valid dalam Spesifikasi resource kustom, atau konfigurasi di Ruang/Cluster buruk.

Untuk memahami akar masalahnya, pengguna dapat membaca pesan error yang lebih panjang di status.conditions objek menggunakan perintah:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Misalnya: kubectl describe serviceinstance my-service -n my-space.

Objek memiliki error ChildNotOwned (Konflik nama)

Error ini biasanya berarti objek yang coba dibuat pengontrol sudah ada. Hal ini terjadi jika pengguna membuat resource K8s yang memiliki nama yang sama dengan yang coba dibuat pengontrol; tetapi lebih sering terjadi jika pengguna menghapus resource, lalu pengontrol Kf mencoba membuatnya kembali. Jika resource turunan masih ada, pemiliknya akan menjadi resource lama yang tidak ada lagi.

Untuk memulihkan dari error, sebaiknya pengguna menghapus resource yang terpengaruh, lalu membuatnya ulang. Untuk menghapus objek, gunakan perintah penghapusan Kf atau gunakan perintah kubectl delete RESOURCE_TYPE RESOURCE_NAME -n SPACE. Misalnya, kf delete-space my-space atau kubectl delete space my-space.

Untuk membuat ulang resource, gunakan perintah Kf. Misalnya: kf create-space my-space.

Objek memiliki ReconciliationError

Error ini biasanya berarti ada masalah dengan panggilan HTTP yang dilakukan (oleh pengontrol Kf) ke server Kubernetes API untuk membuat/memperbarui resource.

Untuk memahami akar masalahnya, pengguna dapat membaca pesan error yang lebih panjang di status.conditions objek menggunakan perintah:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Misalnya: kubectl describe serviceinstance my-service -n my-space.