Replies: 2 comments 1 reply
-
For Talos API access, use direct IPs of the nodes as endpoints, and their (private) IPs as nodes. For Kubernetes API, you need to provision a load balancer of some sorts. Not sure if it answers your question. |
Beta Was this translation helpful? Give feedback.
-
Hi @smira , thank you for your quick response! The solution was indeed to use certSANS, what was blocking me was a mistake in my loadbalancer configuration so that some requests were directed to the Kubernetes API rather than the Talos API. For those of you wanting to deploy talos on openstack with the control plane behind a HA load balancer, I've written these docs on how to do so for my employers' public docs page: https://docs.leaf.cloud/en/latest/talos/creating-talos-cluster/. I hope it's ok to share that here, if not please let me know :). Thank you and goodbye! |
Beta Was this translation helpful? Give feedback.
-
Hi! Talos looks really cool and I'm trying to figure out how to comfortably deploy it on Openstack with a highly available control plane. For this, I'd spin up 3 control nodes and put them behind a load balancer which leads me to a chicken/egg problem:
The load balancer has a different public IP than the nodes themselves, which leads to an error akin to
It's possible to assign this external floating IP straight to one of the control plane nodes and bootstrap it that way. The control nodes form a cluster and I had hoped that they would also exchange information so as to allow communications from the external IP to all nodes but that's not the case. Based on other discussions here, I figured I'd have set the certSANs in cluster.apiServer to include the public IP, attach that IP to the first control-plane node, and bootstrap that node; then move the IP to the load balancer.
I bootstrap by means of:
When the IP is pointed straight to my first node
talosctl --talosconfig talosconfig health
is happy. When I then move the IP to the load balancer, there's issues with the cert being signed by an unknown authority 2/3rd of the time;and the 1/3rd of the time it hits the originally bootstrapped control node which responds but then gets into trouble when it tries to contact the k8s api server over the public IP:
What am I missing or misunderstanding?
Thank you for your time!
Kirth
Beta Was this translation helpful? Give feedback.
All reactions