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

本地K8s集群部署emissary-ingress出现CRD校验错误如何解决?

问题解决方法

错误根因

apiextensions.k8s.io/v1版本的CRD规范已经完全废弃了spec.validation字段,原v1beta1版本里的校验规则需要移动到spec.versions[*].schema.openAPIV3Schema路径下。你使用的旧版Emissary Ingress CRD配置是适配v1beta1版本CRD的,结构不兼容你当前K8s 1.22集群的v1 CRD规范。

解决方案

  • 优先选择方案一:升级适配K8s 1.22+的Emissary Ingress版本
    你使用的旧版CRD配置本身就不支持v1版本CRD,手动修改结构容易漏配出错。直接安装Emissary Ingress 2.0及以上版本,官方已经在这些版本里完成了v1 CRD规范的适配,不需要手动修改任何配置,直接应用官方提供的新版CRD、RBAC文件即可。
  • 方案二:手动修改现有CRD文件适配v1规范
    如果你必须使用当前版本的配置,可以按照以下规则修改CRD文件:
    1. 找到CRD配置中spec根路径下的validation字段,把该字段下的openAPIV3Schema整段内容移动到spec.versions数组的每一个版本元素下,新增schema字段包裹,结构参考:
    spec:
      versions:
      - name: v3alpha1 # 对应你原有配置里的版本号
        served: true
        storage: true
        # 新增以下内容
        schema:
          openAPIV3Schema: # 把原spec.validation下的openAPIV3Schema内容原样复制到这里
            type: object
            # 原有校验规则全部保留
    
    1. 删除spec根路径下已经废弃的validation、version(单版本字段,不是versions数组)字段。
    2. 修改完成后重新执行kubectl apply -f filename.yml即可通过校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:09:02