<p>In one of my HTTP(S) LoadBalancer, I wish to change my backend configuration to increase the timeout from 30s to 60s (We have a few 502's that do not have any logs server-side, I wish to check if it comes from the LB)</p>

<p>But, as I validate the change, I got an error saying </p>

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

<p>even if i didn't change the namedPort.</p>

<p><a href="https://stackoverflow.com/q/45030092/6916552">This</a> issue seems to be the same, but the only solution is a workaround that does not work in my case : </p>

<p>Thanks for your help,</p>

<p>I faced the same issue and @tmirks 's fix didn't work for me.</p>

<p>After experimenting with GCE for a while, I realised that the issue is with the service.</p>

<p>By default all services are <code>type: ClusterIP</code> unless you specified otherwise.</p>

<p>Long story short, if your service isn't exposed as <code>type: NodePort</code> than the GCE load balancer won't route the traffic to it.</p>

<p><a href="https://github.com/kubernetes/kubernetes/issues/26508#issuecomment-222376962" rel="noreferrer">From the official Kubernetes project</a>:</p>

<blockquote>
  <p>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:</p>
</blockquote>
