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