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

Kustomize补丁OpenShift Ingress报错:数字无法反序列化为ServiceBackendPort

解决Kustomize Ingress补丁的反序列化错误

错误根源

你的报错核心在于:Ingress v1版本中,spec.defaultBackend.service.port是v1.ServiceBackendPort结构体类型,而非单纯的数字。你在补丁里直接把port替换为数字31434,导致K8s无法将数字反序列化为结构体,从而触发报错。

从你的base配置也能验证这一点,port本身是嵌套的结构体:

port:
  number: 31433

正确的补丁写法

你需要针对结构体里的number字段做替换,或者替换整个port结构体,两种方案都可行:

方案1:直接替换port的number字段

修改overlays/nprd-dev/patch-ingress.yaml为:

---
- op: replace
  path: /metadata/name
  value: mssql-example-ingress-dev
- op: replace
  path: /spec/defaultBackend/service/port/number
  value: 31434

方案2:替换整个port结构体

如果后续需要通过端口名(而非端口号)配置,可采用这种方式:

---
- op: replace
  path: /metadata/name
  value: mssql-example-ingress-dev
- op: replace
  path: /spec/defaultBackend/service/port
  value:
    number: 31434

额外说明

你之前尝试的/spec/defaultBackend/0/service/port等带数组索引的路径是错误的,因为defaultBackend是单个对象(而非数组),不需要添加数组索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:03:38