You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s部署kubeFate 1.3.0报extensions/v1beta1 Ingress不存在如何解决

问题根因

Kubernetes 1.22及以上版本已彻底移除extensions/v1beta1版本的Ingress API,仅保留networking.k8s.io/v1版本Ingress资源接口。
你手动修改kubefate.yaml里的静态Ingress配置段,仅能解决apply阶段静态资源提交的报错。执行资源查询命令时重复出现相同的旧API报错,核心原因是KubeFate v1.3.0的控制器程序内部硬编码了调用extensions/v1beta1接口查询、调和Ingress资源的逻辑,控制器启动后会持续向APIServer发起旧版API请求,触发资源不存在报错,和你修改的静态部署yaml没有关系。

解决方法
  • 匹配版本兼容(零改造成本)
    KubeFate v1.3.0官方适配的Kubernetes版本范围为1.15~1.21,直接将集群版本降级到1.21.x系列,无需修改任何配置,原版部署文件即可正常运行,不会出现API版本不兼容问题。
  • 手动修改控制器适配高版本K8s
    如果不能降级集群,可按以下步骤调整:
    1. 拉取KubeFate v1.3.0源码,全局检索所有Ingress API调用逻辑,将所有指定extensions/v1beta1的组版本参数替换为networking.k8s.io/v1
    2. 同步调整代码中Ingress资源的结构体定义,匹配v1版本Ingress的必填规则(比如你之前配置的pathType、ingressClassName字段,在控制器创建、更新Ingress的逻辑中也要对应传入,避免资源调和失败)
    3. 重新编译控制器二进制,打包为自定义容器镜像,替换kubefate.yaml中默认的控制器镜像地址后重新部署即可。
  • 升级KubeFate版本
    直接升级到v1.4.0及以上版本的KubeFate,官方已经在高版本中完成了新版Ingress API的适配,无需手动修改配置,直接使用官方提供的部署文件即可在1.22+版本K8s集群上正常运行。
问题定位验证方法

如果需要确认报错来源,可执行以下操作验证:

  1. 执行kubectl logs -n kube-fate $(kubectl get pod -n kube-fate -l app=kubefate -o name)查看控制器运行日志,能看到持续打印调用旧版Ingress API失败的记录
  2. 执行kubectl scale deploy kubefate -n kube-fate --replicas=0将控制器副本数缩为0,再执行kubectl get all,ingress -n kube-fate,如果不再出现旧API报错,即可确认报错来自控制器内部的硬编码逻辑。

内容的提问来源于stack exchange,提问作者CKJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 17:31:05