Memecahkan Masalah ServiceInstances Kf

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

Objek macet saat dihapus.

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

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

CLI kf dapat membantu memeriksa beberapa masalah:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_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.

Untuk menghapus pengakhir dari objek, gunakan perintah kubectl edit RESOURCE_TYPE RESOURCE_NAME -n my-space.

Lihat menggunakan finalizer untuk mengontrol penghapusan untuk mempelajari lebih lanjut.

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.

Drift status pembuatan objek.

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

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

CLI kf dapat membantu memeriksa beberapa masalah:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_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 serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

CLI kf dapat membantu memeriksa beberapa masalah:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_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.

Rekonsiliasi resource cadangan gagal.

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

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

CLI kf dapat membantu memeriksa beberapa masalah:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Kemungkinan PenyebabSolusi
Error DeprovisionFailed resource pendukung.

Error ini biasanya terjadi saat resource pendukung (database MySQL yang dihosting di server OSB eksternal) gagal dihentikan penyediaannya. Kf tidak dapat menentukan dengan aman apakah resource dependen dihentikan penyediaannya.

Untuk memulihkan dari error, sebaiknya pengguna membaca pesan error detail di status.conditions objek menggunakan perintah:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Misalnya: kubectl describe servipropogatesceinstance my-service -n my-space.

Setelah pesan error dikonfirmasi, minta administrator untuk memeriksa resource pendukung dan membersihkannya secara manual. Setelah resource pendukung ditentukan untuk dirilis dengan aman, resource Kf yang terpengaruh dapat berhasil direkonsiliasi dengan menghapus Finalizer secara manual dari spesifikasi objek, gunakan perintah kubectl edit serviceinstance my-service -n my-space.