【问题标题】:GCE LoadBalancer : Invalid value for field 'namedPorts[0].port': '0'. Must be greater than or equal to 1GCE LoadBalancer:字段“namedPorts[0].port”的值无效:“0”。必须大于或等于 1
【发布时间】:2018-01-26 01:31:08
【问题描述】:

在我的一个 HTTP(S) LoadBalancer 中,我希望更改我的后端配置以将超时从 30 秒增加到 60 秒(我们有一些 502 没有任何日志服务器端,我希望检查它是否来自LB)

但是,当我验证更改时,我收到一条错误消息

字段“namedPorts[0].port”的值无效:“0”。必须更大 大于等于1

即使我没有更改 namedPort。

This 问题似乎是相同的,但唯一的解决方案是在我的情况下不起作用的解决方法:

感谢您的帮助,

【问题讨论】:

  • 你能粘贴你的 YAML 文件吗?看起来像语法错误。

标签: kubernetes load-balancing google-compute-engine google-kubernetes-engine


【解决方案1】:

经过多次不同的尝试,我只是删除了入口对象并重新创建它,问题就消失了。某处必须存在一个错误,该错误会在更新入口时留下工件。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,@tmirks 的修复对我不起作用。

    在用 GCE 试验了一段时间后,我意识到问题出在服务上。

    除非您另外指定,否则默认情况下所有服务都是type: ClusterIP

    长话短说,如果您的服务未公开为 type: NodePort,则 GCE 负载均衡器不会将流量路由到它。

    From the official Kubernetes project:

    nodeport 是 GCE Ingress 控制器(以及一般的云控制器)的要求。像 nginx 入口控制器这样的“本地”控制器与 clusterip 一起使用:

    【讨论】:

      【解决方案3】:

      我确信 OP 现在已经解决了这个问题,但是对于其他人来说,这可能对你有用:

      GCE 负载均衡器 UI 中存在各种错误。如果您不小心添加了一个空的前端 IP/端口组合,它将在实例组中创建一个名为 port0 的命名端口,其值为 0。您甚至可能没有意识到发生了这种情况,因为您不会在控制台中看到空的前端映射。

      要解决此问题,请编辑您的实例组并从端口名称映射列表中删除 port0

      【讨论】:

      • 是的,这对我有用。谢谢!
      • 有没有办法通过 CLI 解决这个问题?我无法通过 UI 找到“实例组”。
      • @RobinWinslow,如果您只是想看看这是否是您遇到的问题,您可以尝试运行:gcloud compute instance-groups list。然后运行以下命令查看是否映射了port0gcloud compute instance-groups get-named-ports <instance-group-name>
      • 我遇到了同样的问题,但不幸的是这似乎不适用于我:/
      • 我的端口上没有port0,但我仍然收到错误,我打开了issue on ingress-gce,希望它很快得到解决。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2020-04-01
      • 2015-04-22
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多