-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebSocket not works using GCE Ingress. Ingress set UNHEALTHY status always #1067
Comments
@masalinas Sorry for the delay in response. The reason that TCP health checks do not work is that they are not yet supported in the BackendConfig resource. You specified a We are currently in the process of adding initial support for all health check protocols in the BackendConfig. We can take a feature request to add support for TCP as well. |
I resolved the problem installing nginx ingress controller behind a LoadBalancer. nginxs is prepared with the path /healthz to be checked correctly. Regards |
Add support for connecting to geth via websockets. The default port is set to 8546 and will always be set, but websockets need to be enabled in the Geth_Startup_Param inside the config, e.g. --ws --wsorigins=\"*\" --wsaddr 0.0.0.0 see examples/config/qubernetes-ingress-ws.yaml To override the default set it in the config unger `geth.Node_WSPort`. note: If trying to connect externally from an ingress be aware that depending on the backend k8s service and how the load balancing is implenented the health checks may fail, e.g. for GKE setting a configurable health check in k8s is not supported yet, but will be available soon: kubernetes/ingress-gce#1067.
Add support for connecting to geth via websockets rpc. The default port is set to `8546` and will always be set, but in order to use websockets they need to be enabled in the `geth.Geth_Startup_Param` inside the config yaml, e.g. --ws --wsorigins=\"*\" --wsaddr 0.0.0.0 see examples/config/qubernetes-ingress-ws.yaml To override the default set it in the config under `geth.Node_WSPort`. note: If trying to connect externally via an ingress be aware that depending on the backend k8s service and how the load balancing is implemented the health checks may fail, e.g. for GKE currently has a health check that uses http, and setting a configurable health check in k8s is not supported yet, but will be available soon: kubernetes/ingress-gce#1067. * Change RPCPort 7nodes from 8546->8545. change the 7nodes examples configs RPCPort to the default geth rpc port so that it doesn't clash with the default websocket port (8546).
I have 1.14 kubernetes version on GCE so the ingress-gce version is v1.6.0. with many services deployed. One of then is named trazelab-broker that expose the 9001 port of MQTT container throw the 80 ingress port service. I configured ingress but ingress always create a Healh check for this backen service to use HTTP port and not TCP, so the status is UNHEALTHY always and the port is closed for any communication from internet to this websocket.
If I set the correct port using the GCE UI and set the port to TCP the backen service status will convert to HEALTH after some seconds and the port is active correctly. Nevertheless some seconds later 60 seconds aprox, the status of the backend service come back again to UNHEALTHY and the port again is set to HTTP.
My questions is:
These are the manifests for this service:
BackendConfig;
Deployment and Service
Ingress manifest:
The text was updated successfully, but these errors were encountered: