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

kubectl patch更新Ingress资源提示无变更,遗漏了什么配置?

原因分析

  • 核心问题是Ingress API版本差异导致的字段结构不匹配
    你最初参考的Ingress配置使用的是已废弃的extensions/v1beta1版本API,Kubernetes 1.19及之后版本中Ingress的正式GA版本为networking.k8s.io/v1,该版本对backend字段结构做了破坏性调整:
    旧版本(extensions/v1beta1)结构:
backend:
  serviceName: node-app-blue-helm-chart
  servicePort: 80

新版本(networking.k8s.io/v1)结构:

backend:
  service:
    name: node-app-blue-helm-chart
    port:
      number: 80

你执行patch时指定的路径/spec/rules/0/http/paths/0/backend/serviceName在新版本的Ingress资源结构中不存在,无法匹配到对应字段修改,因此返回无变更提示。

解决方法

  1. 先确认集群中Ingress的实际字段结构,执行以下命令输出完整YAML:
kubectl get ingress ingress-resource -o yaml
  1. 根据实际结构调整patch命令,若为networking.k8s.io/v1版本,正确的替换命令为:
kubectl patch ingress ingress-resource --type=json \
  -p='[{"op": "replace", "path": "/spec/rules/0/http/paths/0/backend/service/name", "value":"node-app-green-helm-chart"}]'

其他可能原因

如果调整patch命令后仍然不生效,可检查是否存在GitOps工具(如Argo CD、Flux)配置了该Ingress的自动同步,手动修改的内容会被工具自动回滚为仓库中存储的版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 10:54:02