【问题标题】:Helm cannot upgrade chart - Change service from NodePort to ClusterIP?Helm 无法升级图表 - 将服务从 NodePort 更改为 ClusterIP?
【发布时间】:2020-07-18 02:51:19
【问题描述】:

我正在尝试编辑通过 helm chart 创建的服务,当从 NodePort 更改为 ClusterIP 时出现此错误

The Service "<name>" is invalid: spec.ports[0].nodePort: Fordbidden: may not be used when 'type' is 'ClusterIP'

我从其他人那里看到了他们只是运行 kubectl apply -f service.yaml --force 的解决方案 - 但我没有使用 kubectl 而是使用 helm 来做这件事 - 有什么想法吗?如果它只是一项服务,我会手动更新/重新部署,但有 xx 个。

【问题讨论】:

  • 显示service.yaml的内容?
  • 服务内部的内容无关紧要,只是端口 TargetPort 和类型 - 我没有对任何 nodeport 端口进行硬编码。一切都完成了,将类型从 ClusterIP 更改为 NodePort
  • 既然您找到了问题的答案(不是想要的答案,而是现实的答案),我建议您发布您决定采用的解决方法作为答案,以帮助其他有类似问题的人。

标签: kubernetes google-kubernetes-engine


【解决方案1】:

在这里https://www.ibm.com/support/knowledgecenter/SSSHTQ/omnibus/helms/all_helms/wip/reference/hlm_upgrading_service_type_change.html找到我确切问题的答案

简而言之,他们建议:


您可以使用三种方法来避免上述服务转换问题。您只需执行以下方法之一:

  • 方法 1:使用不同的发布名称安装新版本的 helm chart,并根据需要更新所有客户端以指向新的探测服务端点。然后删除旧版本。这是推荐的方法,但需要在客户端重新配置。
  • 方法2:使用kubectl edit svc手动更改服务类型。此方法需要更多手动步骤,但会保留当前服务名称和 helm chart 的先前版本。执行此解决方法后,用户应该能够执行 helm 升级。
  • 方法 3:删除并清除现有 helm 版本,然后安装具有相同版本名称的新版本 helm chart。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多