k3s/pkg/agent/loadbalancer
Brad Davidson 7cdfaad6ce
Always use static ports for client load-balancers (#3026)
* Always use static ports for the load-balancers

This fixes an issue where RKE2 kube-proxy daemonset pods were failing to
communicate with the apiserver when RKE2 was restarted because the
load-balancer used a different port every time it started up.

This also changes the apiserver load-balancer port to be 1 below the
supervisor port instead of 1 above it. This makes the apiserver port
consistent at 6443 across servers and agents on RKE2.

Additional fixes below were required to successfully test and use this change
on etcd-only nodes.

* Actually add lb-server-port flag to CLI
* Fix nil pointer when starting server with --disable-etcd but no --server
* Don't try to use full URI as initial load-balancer endpoint
* Fix etcd load-balancer pool updates
* Update dynamiclistener to fix cert updates on etcd-only nodes
* Handle recursive initial server URL in load balancer
* Don't run the deploy controller on etcd-only nodes
2021-03-06 02:29:57 -08:00
..
config.go Use go tcpproxy 2019-07-30 09:53:15 -07:00
loadbalancer_test.go Add disable flags for control components (#2900) 2021-02-12 17:35:57 +02:00
loadbalancer.go Always use static ports for client load-balancers (#3026) 2021-03-06 02:29:57 -08:00
servers.go Use go tcpproxy 2019-07-30 09:53:15 -07:00
utility.go Use go tcpproxy 2019-07-30 09:53:15 -07:00