安裝 Kf 時發生失敗
伺服器發生錯誤 (要求錯誤):無效字元
如果在設定預設設定時看到這項錯誤,可能是指令中使用的 ${DOMAIN} 環境變數值包含逸出字元的「$」。請使用單引號定義含有空格名稱或其他替代項的網域:
Error from server (BadRequest): invalid character '$' in string escape code
Kf Kubernetes 物件發生錯誤
請按照這些操作說明排解 Kf Kubernetes 物件問題。
列出所有 Kf 資源,找出要排解問題的 Kubernetes 資源類型名稱:
kubectl api-resources --api-group=kf.dev輸出內容範例:
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使用
kubectl取得要排解問題的資源執行個體。 如果物件不在命名空間中,請省略-n標記:kubectl get api-resource-name.kf.dev object-name -n space-name -o yaml例如:
kubectl get apps.kf.dev my-app -n my-space -o yaml請從下方分頁標籤中選取你的問題:
物件未完成對帳
- 檢查
metadata.generation的值。每次更新物件時,這個數字就會遞增。如果數字極高,可能是兩個 Kubernetes 控制器正在爭奪物件。檢查叢集,確認是否有任何政策套用至物件,導致物件偏離所需狀態。 - 檢查物件所屬的命名空間是否正在刪除。如果是,物件可能無法完成對帳。
- 確認
status.observedGeneration欄位是否存在。如果沒有,控制器可能尚未針對物件執行作業。使用kf doctor驗證叢集和控制器是否正常運作。 - 確認
metadata.generation欄位與status.observedGeneration欄位相符。如果沒有,請使用kf doctor驗證叢集和控制器是否正常運作。 根據這份常見錯誤原因清單,檢查
status.conditions清單中的失敗項目:NotOwned:叢集或命名空間中已存在與這個物件嘗試建立的資源。請閱讀訊息找出重複的名稱,然後重新命名衝突的資源或 Kf 物件。TemplateError:Kf 資源規格或 Kf 設定有誤,導致子項資源無法正確調解。驗證 Kf 物件和 Kf 空間的設定。CacheOutdated:Kf 控制器無法及時接收 Kubernetes 的更新。檢查 Kubernetes 叢集的健康狀態。ReconciliationError:Kf 控制器無法建立必要的子項資源。請檢查叢集是否正常運作、Kf 是否正在執行,以及是否有任何強制執行的政策,導致 Kf 無法建立訊息中參照的物件。
無法刪除物件
- 確認物件的
metadata.deletionTimestamp已設定。如果沒有設定,表示要求刪除失敗。 - 確認物件的
metadata.deletionTimestamp屬性值為過去的日期。如果是在未來,物件可能不會刪除。 - 檢查物件上是否有
metadata.finalizers清單。如果存在終結器,物件必須等待終結器移除後才能刪除。如要強制刪除物件,不必等待終結器,請編輯物件以移除終結器。 - 可能存在子項物件,導致無法刪除物件。請管理員檢查命名空間和叢集中的所有物件,確認是否需要先手動刪除其中一個物件。
- 檢查