【问题标题】:Patching Ingress Resource returns no change修补入口资源不返回任何更改
【发布时间】:2021-06-10 22:17:40
【问题描述】:

我有 2 个 helm 部署(node-app-blue-helm-chart node-app-green-helm-chart),我的入口资源是独立的,如下所示:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-resource
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: node-app-blue-helm-chart
          servicePort: 80

尝试使用以下命令修补入口资源:

kubectl patch ingress ingress-resource --type=json \
  -p='[{"op": "replace", "path": "/spec/rules/0/http/paths/0/backend/serviceName", "value":"node-app-green-helm-chart"}]'

不返回任何变化:

ingress.networking.k8s.io/ingress-resource patched (no change)

描述资源:

$ kubectl describe ingress ingress-resource
Name:             ingress-resource
Namespace:        default
Address:          -----
Default backend:  default-http-backend:80 (10.72.0.6:8080)
Rules:
  Host        Path  Backends
  ----        ----  --------
  *           
              /   node-app-blue-helm-chart:80 (10.72.0.46:80)
Annotations:  kubernetes.io/ingress.class: nginx
              nginx.ingress.kubernetes.io/ssl-redirect: false
Events:       <none>

缺少什么?

【问题讨论】:

  • 您好,我是否正确理解您要将serviceName:node-app-blue-helm-chart改为:node-app-green-helm-chart。我已经使用了您的示例,它对我来说工作正常(第一次 ingress.extensions/ingress-resource patched 并再次运行它显示:no change)。您能否通过运行:$ kubectl describe ingress ingress-resource 检查资源是否更改?
  • 已添加到问题中。

标签: kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

serviceName 不是最近的表示。将其更改为服务/名称已解决问题。

$ 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"}]'
ingress.networking.k8s.io/ingress-resource patched

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-17
    • 2019-01-09
    • 2021-03-21
    • 2021-10-16
    • 1970-01-01
    • 2021-12-23
    • 2021-05-22
    • 2020-12-14
    相关资源
    最近更新 更多