A lot of people who are using Calico as their CNI are unaware of the new recommendation to switch to using “route reflectors” when their cluster size is getting large (they call large 100+ nodes). In reality, it is a best practice to offload the neighbor and routing table management from your application nodes so that the dedicated network equipment can handle this functionality.
In reality, making this change (in a non-disruptive manner) is quite complicated.
Netris has provided a k8s annotation that handles the entire conversion process automatically, described here.
The documentation for how to implement this change is here.
In reality, this single command:
kubectl annotate bgpconfigurations default manage.k8s.netris.ai/calico='true'
will accomplish the entire migration and put your cluster into Calico “high performance mode”. This simple process has saved users hundreds of hours of design/configuration work. This is a free tool you can use in conjunction with your k8s deployment.
I hope this helps!