使用以下步骤对使用 Kf 应用时可能出现的各种问题进行排查。
对象在删除时遇到问题
运行以下命令以获取资源信息,然后检查下面列出的原因:
kubectl get apps.kf.dev -n SPACE_NAME APP_NAME -o yaml
kf
CLI 可以帮助您检查一些问题:
kf doctor --space SPACE_NAME app/APP_NAME
可能的原因 | 解决方案 |
---|---|
删除时间戳在将来。 |
如果时钟有偏差, |
该对象上存在终结器。 |
终结器存在于对象上,在删除对象之前,必须由设置终结器的控制器将其删除。 如要在不等待终结器的情况下强制删除,请修改对象以将其从 警告:移除控制器却不允许控制器完成操作可能会导致错误、安全问题、数据丢失或孤立的资源。 |
可能存在依赖对象。 |
在删除对象之前,对象可能正在等待要删除的依赖项。如需了解详情,请参阅 Kubernetes 垃圾回收指南。让管理员检查命名空间和集群中的所有对象,以查看是否有某个对象被禁止删除。 如需不等待依赖项的情况下删除对象,请使用 |
对象生成状态偏移
运行以下命令以获取资源信息,然后检查下面列出的原因:
kubectl get apps.kf.dev -n SPACE_NAME APP_NAME -o yaml
kf
CLI 可以帮助您检查一些问题:
kf doctor --space SPACE_NAME app/APP_NAME
可能的原因 | 解决方案 |
---|---|
对象生成版本偏移。 |
此错误通常发生在 Kf 控制器未读取对象最新版本时,一旦 Kubernetes 副本达到最终一致性,此错误通常会自行恢复,并且通常不需要用户执行操作。 |
对象协调失败
运行以下命令以获取资源信息,然后检查下面列出的原因:
kubectl get apps.kf.dev -n SPACE_NAME APP_NAME -o yaml
kf
CLI 可以帮助您检查一些问题:
kf doctor --space SPACE_NAME app/APP_NAME
可能的原因 | 解决方案 |
---|---|
对象存在 TemplateError |
当用户在自定义资源规范中输入无效属性,或者空间/集群配置有误时,通常会发生此错误。 如需了解根本原因,用户可使用 |
对象存在 ChildNotOwned 错误(名称冲突) |
此错误通常表示控制器尝试创建的对象已存在。如果用户创建的 K8s 资源与控制器尝试创建的对象同名,则会发生这种情况;但更常见的情况是,如果用户删除资源,但 Kf 控制器之后尝试重新创建该资源,则会发生此错误。如果子资源仍然挂起,则其所有者将是不再存在的旧资源。 如需从错误中恢复,建议用户删除受影响的资源,然后重新创建该资源。如需删除对象,请使用 Kf 删除命令或使用 如需重新创建资源,请使用 Kf 命令。例如: |
对象存在 ReconciliationError |
此错误通常表示 Kf 控制器向 Kubernetes API 服务器发出的 HTTP 调用(用以创建/更新资源)发生了问题。 如需了解根本原因,用户可使用 |