{"id":20601231,"url":"https://github.com/cloudnativer/kube-router","last_synced_at":"2025-04-15T01:36:31.272Z","repository":{"id":64303246,"uuid":"247879602","full_name":"cloudnativer/kube-router","owner":"cloudnativer","description":"This is based on cloudnativelabs's kube-router to do a lot of optimization, which can support large-scale kubernetes network.","archived":false,"fork":false,"pushed_at":"2021-05-18T06:07:54.000Z","size":20731,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T13:37:23.731Z","etag":null,"topics":["bgp","cloudnative","cni","container-network","ecmp","ipvs","kube-router","kubernetes","large-scale-network","network"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudnativer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-17T04:31:58.000Z","updated_at":"2022-03-03T01:18:20.000Z","dependencies_parsed_at":"2023-01-15T10:00:46.210Z","dependency_job_id":null,"html_url":"https://github.com/cloudnativer/kube-router","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudnativer%2Fkube-router","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudnativer%2Fkube-router/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudnativer%2Fkube-router/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudnativer%2Fkube-router/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudnativer","download_url":"https://codeload.github.com/cloudnativer/kube-router/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248989960,"owners_count":21194676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bgp","cloudnative","cni","container-network","ecmp","ipvs","kube-router","kubernetes","large-scale-network","network"],"created_at":"2024-11-16T09:09:05.611Z","updated_at":"2025-04-15T01:36:31.246Z","avatar_url":"https://github.com/cloudnativer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![avatar](docs/img/kube-router-logo.jpg)\n\n \u003cbr\u003e\n\nKube-router is a turnkey solution for Kubernetes networking with aim to provide operational simplicity and high performance.\u003cbr\u003e\nThis is based on cloudnativelabs's kube-router to do a lot of optimization, which can support large-scale kubernetes network.\n\u003cbr\u003e\n\n## Primary Features\n\n*kube-router does it all.*\n\nWith all features enabled, kube-router is a lean yet powerful alternative to\nseveral network components used in typical Kubernetes clusters. All this from a\nsingle DaemonSet/Binary. It doesn't get any easier.\n\n### IPVS/LVS based service proxy | `--run-service-proxy`\n\nkube-router uses the Linux kernel's LVS/IPVS features to implement its K8s Services\nProxy. Kube-router fully leverages power off LVS/IPVS to provide rich set of [scheduling options](/docs#load-balancing-scheduling-algorithms) and unique features like DSR (Direct Server Return), L3 load balancing with ECMP for deployments where high throughput, minimal latency and high-availability are crucial.\n\nRead more about the advantages of IPVS for container load balancing:\n- [Kubernetes network services proxy with IPVS/LVS](https://cloudnativelabs.github.io/post/2017-05-10-kube-network-service-proxy/)\n- [Highly-available and scalable ingress for baremetal Kubernetes clusters](https://cloudnativelabs.github.io/post/2017-11-01-kube-high-available-ingress/)\n\n### Pod Networking | `--run-router`\n\nkube-router handles Pod networking efficiently with direct routing thanks to the\nBGP protocol and the GoBGP Go library. It uses the native Kubernetes API to\nmaintain distributed pod networking state. That means no dependency on a\nseparate datastore to maintain in your cluster.\n\nkube-router's elegant design also means there is no dependency on another CNI\nplugin. The\n[official \"bridge\" plugin](https://github.com/containernetworking/plugins/tree/master/plugins/main/bridge)\nprovided by the CNI project is all you need -- and chances are you already have\nit in your CNI binary directory!\n\nRead more about the advantages and potential of BGP with Kubernetes:\n- [Kubernetes pod networking and beyond with BGP](https://cloudnativelabs.github.io/post/2017-05-22-kube-pod-networking)\n\n### Network Policy Controller | `--run-firewall`\n\nEnabling Kubernetes [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)\nis easy with kube-router -- just add a flag to kube-router. It uses ipsets with\niptables to ensure your firewall rules have as little performance impact on your\ncluster as possible.\n\nKube-router supports the networking.k8s.io/NetworkPolicy API or network policy V1/GA\n[semantics](https://github.com/kubernetes/kubernetes/pull/39164#issue-197243974) and also network policy beta semantics.\n\nRead more about kube-router's approach to Kubernetes Network Policies:\n- [Enforcing Kubernetes network policies with iptables](https://cloudnativelabs.github.io/post/2017-05-1-kube-network-policies/)\n\n### Advanced BGP Capabilities\n\nIf you have other networking devices or SDN systems that talk BGP, kube-router\nwill fit in perfectly. From a simple full node-to-node mesh to per-node peering\nconfigurations, most routing needs can be attained. The configuration is\nKubernetes native (annotations) just like the rest of kube-router, so use the\ntools you already know! Since kube-router uses GoBGP, you have access to a\nmodern BGP API platform as well right out of the box. Kube-router also provides\na way to expose services outside the cluster by advertising ClusterIP and externalIPs to\nconfigured BGP peers. Kube-routes also support MD5 password based authentication and\nuses strict export policies so you can be assured routes are advertised to underlay\nonly as you intended.\n\nFor more details please refer to the [BGP documentation](docs/bgp.md).\n\n### Standard Linux Networking\n\nA key design tenet of Kube-router is to use standard Linux networking stack and toolset. There is no overlays or \nSDN pixie dust, but just plain good old networking. You can use standard Linux networking tools like iptables, ipvsadm, ipset,\niproute, traceroute, tcpdump etc. to troubleshoot or observe data path. When kube-router is ran as a daemonset, image also ships with these [tools](./docs/pod-toolbox.md#pod-toolbox) automatically configured for your cluster.\n\n### Small Footprint\n\nAlthough it does the work of several of its peers in one binary, kube-router\ndoes it all with a relatively [tiny codebase](https://github.com/cloudnativelabs/kube-router/tree/master/pkg/controllers), partly because IPVS is already\nthere on your Kuberneres nodes waiting to help you do amazing things.\nkube-router brings that and GoBGP's modern BGP interface to you in an elegant\npackage designed from the ground up for Kubernetes.\n\n### High Performance\n\nA primary motivation for kube-router is performance. The combination of BGP for\ninter-node Pod networking and IPVS for load balanced proxy Services is a perfect\nrecipe for high-performance cluster networking at scale. BGP ensures that the\ndata path is dynamic and efficient, and IPVS provides in-kernel load balancing\nthat has been thoroughly tested and optimized.\n\n## Getting Started\n\n- [How it Works](./docs/how-it-works.md)\n- [Architecture](./docs/architecture.md)\n- [See Kube-router in action](./docs/see-it-in-action.md)\n- [User Guide](./docs/user-guide.md)\n- [Operations Guide](./docs/operations-guide.md)\n- [Developer Guide](./docs/developing.md)\n\n## Statement\n\nWe respect cloudnativelabs, the original organization of kube-router. Some members of our team use kube-router in a large number of companies. Kube-router is a great CNI plug-in, thank you cloudnativelabs.\n\u003cbr\u003e\nThis kube-router fork from \u003ca href=\"https://github.com/cloudnativelabs/kube-router\" target=\"_blank\"\u003ecloudnativelabs\u003c/a\u003e. Because we have made many changes to kube-router, many of which are not accepted by the official of cloudnativelabs, we have to create a separate project to release our optimized kube-router version.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudnativer%2Fkube-router","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudnativer%2Fkube-router","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudnativer%2Fkube-router/lists"}