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

GCE LoadBalancer : Invalid value for field 'namedPorts[0].port': '0'. Must be greater than or equal to 1

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

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

Invalid value for field 'namedPorts[0].port': '0'. Must be greater than or equal to 1

即使我没有更改 namedPort。

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

感谢您的帮助,

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

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

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

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

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

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

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

From the official Kubernetes project:

nodeport is a requirement of the GCE Ingress controller (and cloud controllers in general). "On-prem" controllers like the nginx ingress controllers work with clusterip:

经过多次不同的尝试后,我简单地删除了入口对象并重新创建它,问题就消失了。某处一定有一个错误,在更新入口时会留下工件。