You need to enable JavaScript to run this app. Kubernetes 1.21集群部署Ingress时报unknown field "data"错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes 1.21集群部署Ingress时报unknown field "data"错误如何解决

问题根因

本次校验报错是YAML资源结构错位导致,并非字段弃用或版本兼容问题。
根据Kubernetes API对networking.k8s.io/v1beta1版本Ingress资源的定义,该资源顶层仅允许存在apiVersion、kind、metadata、spec四个固定字段,不存在名为data的顶层属性。配置中的data块是ConfigMap、Secret这类资源才会使用的顶层字段,被错误放置在Ingress资源的根层级,因此触发集群侧的资源校验失败。
你之前检索不到相关字段弃用说明也符合预期——该字段根本不属于Ingress资源的定义范畴,不存在弃用状态一说。

错位配置的正确归属

你放在data块下的两个配置项,本质都是Nginx Ingress控制器支持的注解参数,不属于Ingress资源本身的结构化字段,正确存放位置是metadata.annotations块下:

  • 原data中的proxy-hide-headers: "Server",对应标准注解键为nginx.ingress.kubernetes.io/proxy-hide-headers
  • 原data中的server-tokens: "False",对应标准注解键为nginx.ingress.kubernetes.io/server-tokens
修正后的配置示例
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  labels:
    app: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 1024m
    nginx.ingress.kubernetes.io/proxy-read-timeout: 5000
    nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /
    # 原错误data块的内容迁移至注解块下
    nginx.ingress.kubernetes.io/proxy-hide-headers: "Server"
    nginx.ingress.kubernetes.io/server-tokens: "False"
spec:
  rules:
    # 原有规则定义保持不变
快速校验技巧
  • 提交配置前可执行kubectl apply --dry-run=client做本地模拟校验,无需连接集群即可提前发现这类字段错位问题
  • Kubernetes 1.21版本已提供GA稳定版的Ingress APInetworking.k8s.io/v1,后续版本升级时可逐步迁移到v1版本API,降低后续v1beta1版本被下线的兼容风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 12:15:11