-
Hi all, I am trying out Talos Linux (v1.4.3) using Hyper-V on a Windows server. I am currently attempting to setup a single-node cluster (for now) following this documentation https://www.talos.dev/v1.4/talos-guides/install/virtualized-platforms/hyper-v but I have an issue to push the machine configuration. The control plane node is running behind a NGINX reverse proxy that we have set as a load balancer
The load balancer dns is cluster0.example.com and the control plane node assigned address is 172.20.1.6 so I run:
I am using this talosconfig file:
The DNS server is configured to resolve cp0-srv0-dc0.local.example.com to 172.20.1.6, the control plane node. I expect to have the talosctl API calls sent to the NGINX load balancer on port 443 as set as the endpoint in talosconfig and then the request being forwarded to one of the control plane node (currently only one: 172.20.1.6) but it seems to timeout. We configured the node network using the UI in the virtual machine interface: I have tried a few other commands but they all timed out, when omitting -i flag returns a 502 bad gateway but I think this is expected. May you also confirm that the talosctl API server is reachable on port 50000 as mentioned here https://www.talos.dev/v1.4/introduction/getting-started/#decide-how-to-access-the-talos-api Maybe, if you have some examples, can you share an external NGINX load balancer configuration for Talos please ? Let me know what I may have missed or misunderstood, Thank you very much. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 1 reply
-
Talos API uses gRPC and mutual TLS, it can't be proxied via NGINX. You can set up a pure TCP load-balancer if you can't access your nodes directly. Kubernetes API needs TCP load-balancer as well. |
Beta Was this translation helpful? Give feedback.
-
Hi @smira Thanks a lot for your quick reply, May you explain why it can't be proxied through NGINX please ? Because of your reply, we have tried to set up NGINX as a TCP load balancer as well: https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer with this configuration on port 50000:
It seems that NGINX may also support gRPC: https://nginx.org/en/docs/http/ngx_http_grpc_module.html we currently use the latest stable version of NGINX (v1.24.0) What is a "pure" TCP load balancer ? Is it possible that SSL/TLS configuration is wrong and if so how can I quickly verify it ? The request to 172.20.1.6 (the control plane) keep timing out when using the --insecure flag. Without the flag the command fails:
So I think this is maybe because the SSL/TLS config is wrong but I am not sure how to verify it because I don't see any message being log in the talos VM. If its definitely not possible to use NGNIX as a load balancer (not a reverse proxy) which load balancer would you recommend that works best with talos/k8s ? Thanks a lot for your help, Regards |
Beta Was this translation helpful? Give feedback.
-
Thanks to the grpc-go library, |
Beta Was this translation helpful? Give feedback.
Talos API uses gRPC and mutual TLS, it can't be proxied via NGINX. You can set up a pure TCP load-balancer if you can't access your nodes directly.
Kubernetes API needs TCP load-balancer as well.