安裝 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 控制器無法建立必要的子項資源。請確認叢集狀態正常、Kef 正在執行,且沒有任何政策會導致 Kf 無法建立郵件中參照的物件。
物件未刪除
- 確認是否已設定物件的
metadata.deletionTimestamp
。如果未設定,則要求的刪除作業將無法執行。 - 請確認物件的
metadata.deletionTimestamp
屬性值為過去的日期。如果是日後的時間,物件可能不會刪除。 - 檢查物件上是否存在
metadata.finalizers
清單。如果有終結器,物件必須等待終結器移除後才能刪除。如果您想強制刪除,而不需要等待終結器,請編輯物件來移除終結器。 - 可能存在子項物件,導致無法刪除該物件。請管理員檢查命名空間和叢集中的所有物件,看看是否需要先手動刪除其中一個物件。
- 檢查