Kegagalan saat menginstal Kf
Error dari server (Permintaan Tidak Valid): Karakter tidak valid
Jika Anda melihat error ini saat menetapkan setelan default konfigurasi, kemungkinan nilai variabel lingkungan ${DOMAIN}
yang digunakan dalam perintah menyertakan '$' yang di-escape. Gunakan tanda petik tunggal untuk menentukan domain dengan nama spasi atau penggantian lainnya:
Error from server (BadRequest): invalid character '$' in string escape code
Error dengan objek Kubernetes Kf
Ikuti petunjuk berikut untuk memecahkan masalah objek Kubernetes Kf.
Temukan nama jenis resource Kubernetes yang ingin Anda pecahkan masalahnya dengan mencantumkan semua resource Kf:
kubectl api-resources --api-group=kf.dev
Contoh output:
NAME SHORTNAMES APIGROUP NAMESPACED KIND apps kf.dev true App builds kf.dev true Build clusterservicebrokers kf.dev false ClusterServiceBroker routes kf.dev true Route servicebrokers kf.dev true ServiceBroker serviceinstancebindings kf.dev true ServiceInstanceBinding serviceinstances kf.dev true ServiceInstance spaces kf.dev false Space
Dapatkan instance resource yang ingin Anda pecahkan masalahnya menggunakan
kubectl
. Jika objek tidak berada dalam namespace, hapus tanda-n
:kubectl get api-resource-name.kf.dev object-name -n space-name -o yaml
Contoh:
kubectl get apps.kf.dev my-app -n my-space -o yaml
Pilih masalah Anda dari tab di bawah:
Objek tidak direkonsiliasi
- Periksa nilai
metadata.generation
. Jumlah ini bertambah setiap kali objek diperbarui. Jika jumlahnya sangat tinggi, kemungkinan ada dua pengontrol Kubernetes yang memperebutkan objek. Periksa kluster Anda untuk melihat apakah ada kebijakan yang diterapkan ke objek yang mungkin mengubahnya dari status yang diinginkan. - Periksa apakah namespace yang menjadi bagian dari objek dihapus. Jika ya, objek mungkin tidak akan direkonsiliasi.
- Pastikan kolom
status.observedGeneration
ada. Jika tidak, pengontrol mungkin belum dieksekusi terhadap objek. Validasi bahwa cluster dan pengontrol berfungsi dengan baik menggunakankf doctor
. - Pastikan kolom
metadata.generation
cocok dengan kolomstatus.observedGeneration
. Jika tidak, validasikan bahwa cluster dan pengontrol berfungsi dengan baik menggunakankf doctor
. - Periksa kegagalan dalam daftar
status.conditions
berdasarkan daftar alasan error umum ini:
NotOwned
: Ada resource lain yang ada di cluster atau namespace seperti yang coba dibuat oleh objek ini. Baca pesan untuk menemukan nama duplikat dan ganti nama resource yang bertentangan atau objek Kf.TemplateError
: Ada kesalahan konfigurasi dalam spesifikasi resource atau konfigurasi Kf yang menyebabkan resource turunan tidak direkonsiliasi dengan benar. Validasi setelan objek Kf dan ruang Kf.CacheOutdated
: Pengontrol Kf tidak menerima update dari Kubernetes dengan cukup cepat. Periksa kondisi cluster Kubernetes.ReconciliationError
: Pengontrol Kf tidak dapat membuat resource turunan yang diperlukan. Periksa untuk memastikan cluster Anda dalam kondisi baik, Kf berjalan, dan tidak ada kebijakan yang diterapkan yang mencegah Kf membuat objek yang dirujuk dalam pesan.
Objek tidak dihapus
- Pastikan
metadata.deletionTimestamp
objek telah ditetapkan. Jika tidak ditetapkan, penghapusan yang diminta tidak akan berfungsi. - Pastikan
metadata.deletionTimestamp
objek sudah berlalu. Jika di masa mendatang, objek mungkin tidak dihapus. - Periksa apakah daftar
metadata.finalizers
ada di objek. Jika finalizer ada, objek harus menunggu finalizer dihapus sebelum dihapus. Jika Anda ingin memaksa penghapusan tanpa menunggu finalizer, edit objek untuk menghapusnya. - Mungkin ada objek turunan yang mencegah objek tersebut dihapus. Minta administrator memeriksa semua objek di namespace dan cluster untuk melihat apakah salah satunya perlu dihapus secara manual terlebih dahulu.
- Periksa nilai