Memecahkan masalah Kf

Gunakan langkah-langkah berikut untuk memecahkan masalah berbagai masalah yang dapat terjadi saat menjalankan Kf.

Kegagalan saat menginstal Kf

Error dari server (Bad Request): Invalid character

Jika Anda melihat error ini saat menetapkan default konfigurasi, kemungkinan nilai variabel lingkungan ${DOMAIN} yang digunakan dalam perintah menyertakan '$' yang di-escape. Gunakan tanda kutip tunggal untuk menentukan domain dengan nama spasi atau penggantian lainnya:

Error from server (BadRequest): invalid character '$' in string escape code

Error pada objek Kf Kubernetes

Ikuti petunjuk berikut untuk memecahkan masalah objek Kf Kubernetes.

  1. Temukan nama jenis resource Kubernetes yang ingin Anda selesaikan 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
    
  2. Dapatkan instance resource yang ingin Anda selesaikan masalahnya menggunakan kubectl. Jika objek tidak berada di namespace, hapus flag -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
    
  3. Pilih masalah Anda dari tab di bawah:

    Objek tidak melakukan rekonsiliasi

    1. Periksa nilai metadata.generation. Angka ini bertambah setiap kali objek diperbarui. Jika angkanya sangat tinggi, kemungkinan ada dua pengontrol Kubernetes yang bersaing untuk mendapatkan objek tersebut. Periksa cluster Anda untuk melihat apakah ada kebijakan yang diterapkan ke objek yang mungkin mengubahnya dari status yang diinginkan.
    2. Periksa apakah namespace tempat objek berada sedang dihapus. Jika ya, objek mungkin tidak direkonsiliasi.
    3. Pastikan kolom status.observedGeneration ada. Jika tidak ada, pengontrol mungkin belum dieksekusi terhadap objek tersebut. Pastikan cluster dan pengontrol dalam kondisi baik menggunakan kf doctor.
    4. Pastikan kolom metadata.generation cocok dengan kolom status.observedGeneration. Jika tidak cocok, pastikan cluster dan pengontrol dalam kondisi baik menggunakan kf doctor.
    5. Periksa kegagalan dalam daftar status.conditions terhadap daftar alasan error umum ini:

      • NotOwned: Ada resource lain yang ada di cluster atau namespace sebagai resource yang coba dibuat oleh objek ini. Baca pesan untuk menemukan nama duplikat dan mengganti nama resource yang bertentangan atau objek Kf.
      • TemplateError: Ada kesalahan konfigurasi dalam spesifikasi resource Kf atau konfigurasi Kf yang menyebabkan resource turunan direkonsiliasi dengan tidak 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. Pastikan 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

    1. Pastikan metadata.deletionTimestamp objek telah ditetapkan. Jika tidak ditetapkan, penghapusan yang diminta tidak akan berfungsi.
    2. Pastikan metadata.deletionTimestamp objek berada di masa lalu. Jika berada di masa mendatang, objek mungkin tidak akan dihapus.
    3. Periksa apakah daftar metadata.finalizers ada di objek. Jika finalizer ada, objek harus menunggu hingga finalizer dihapus sebelum dihapus. Jika Anda ingin memaksa penghapusan tanpa menunggu finalizer, edit objek untuk menghapusnya.
    4. Objek turunan mungkin ada yang mencegah objek dihapus. Minta administrator memeriksa semua objek di namespace dan cluster untuk melihat apakah salah satunya perlu dihapus secara manual terlebih dahulu.