Skip to content
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

[Closed and see #920] reduce the routing entries of the connected network devices #919

Closed
wants to merge 3 commits into from

Conversation

cloudnativer
Copy link
Contributor

Each kubernetes cluster in our production environment has 4000 nodes, and the whole network is interconnected by BGP, which has been running stably for more than one year. There are many problems with kube-router in the large kubernetes cluster, and we have done a lot of optimization, so I want to contribute some information to the community.I have contributed an enhanced function in the large kubernetes cluster network to Kube router, as well as several practical documents about the large kubernetes cluster network.

  1. Added the "advertise-cluster-subnet" flag parameter for optimizing the number of routes.
    I added the "advertise-cluster-subnet" flag parameter to kube-router. When you set the parameters of "-advertise-cluster-IP=true" and "-advertise-cluster-subnet=subnet" at the same time, the kubernetes node will only announce the aggregate cluster route you specified to the on-line router device.
    The advantage is that when your kubernetes cluster is large and you need to announce cluster-ip routing, using this feature can reduce the number of service routing by 90%. This greatly reduces the cost of routers and can cope with larger network concurrent traffic.

  2. Documents for optimization of large kubernetes cluster network are compiled.
    In order for your architecture to support a larger network, you need to do the following two things:
    (1) Set the parameter "--enable-ibgp=false", do not let kubernetes node directly establish BGP neighbors with each other. Let your kubernetes node only build BGP neighbors with the on-line router device.(See large-networks02 documentation).
    (2) You'd better turn on the BGP ECMP function of the kubernetes node on-line router device. The effect of this method is that when the user's access traffic enters the router device, it is first balanced to the kubernetes node of the back end through ECMP load balancing, and then to the final pod through IPVS load balancing. When devices, links and nodes in the network are down, traffic can be automatically switched to other healthy devices, links and nodes. In this way, the availability, high performance and scalability of the network are realized.(See large-networks04 documentation).
    (3) You need to set both "--advertise-cluster-IP=true" and "--advertise-cluster-subnet=subnet" parameters.Let k8s node only notify k8s service aggregate routes to the upstream routers, reducing the service routing entries of the upstream routers.(See large-networks03 documentation).

root added 3 commits June 3, 2020 15:37
…ent function of the service network segment, reduce the routing entries of the connected network devices, and support a larger BGP network.
…djust the holdtime of BGP negotiation with the connected network devices.
@cloudnativer
Copy link
Contributor Author

This PR was abolished. We have submitted a new PR, please check #920.

@cloudnativer cloudnativer changed the title Add the advertise-cluster-subnet parameter to summarize the announcement function of the service network segment, reduce the routing entries of the connected network devices, and support a larger BGP network. [Closed and see #920] reduce the routing entries of the connected network devices Jun 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant