You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/README.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,8 @@ Kube-router consists of 3 core controllers and multiple watchers as depicted in
8
8
9
9

10
10
11
+
## See Kube-router in action
12
+
11
13
#### Network Services Controller
12
14
13
15
Network services controller is responsible for reading the services and endpoints information from Kubernetes API server and configure IPVS on each cluster node accordingly.
@@ -45,7 +47,7 @@ Network routes controller is responsible for reading pod CIDR allocated by contr
However BGP can be leveraged to other use cases like advertising the cluster ip, routable pod ip etc. Only in such use-cases understanding of BGP and configuration is required. Please see below demo how kube-router advertises cluster IP and pod codes to external BGP router
50
+
However BGP can be leveraged to other use cases like advertising the cluster ip, routable pod ip etc. Only in such use-cases understanding of BGP and configuration is required. Please see below demo how kube-router advertises cluster IP and pod cidrs to external BGP router
--master string The address of the Kubernetes API server (overrides any value in kubeconfig).
89
91
--nodes-full-mesh Each node in the cluster will setup BGP peering with rest of the nodes. (default true)
90
92
--peer-asn string ASN number of the BGP peer to which cluster nodes will advertise cluster ip and node's pod cidr.
91
-
--peer-router string The ip address of the external router to which all nodes will peer and advertise the cluster ip and pod cidr's.
93
+
--peer-router string Comma sepereated list of ip address of the external routers to which all nodes will peer and advertise the cluster ip and pod cidr's.
92
94
--routes-sync-period duration The delay between route updates and advertisements (e.g. '5s', '1m', '2h22m'). Must be greater than 0. (default 1m0s)
93
95
--run-firewall Enables Network Policy -- sets up iptables to provide ingress firewall for pods. (default true)
94
96
--run-router Enables Pod Networking -- Advertises and learns the routes to Pods via iBGP. (default true)
@@ -97,7 +99,7 @@ Usage of ./kube-router:
97
99
98
100
### requirements
99
101
100
-
- Kube-router need to access kubernetes API server to get information on pods, services, endpoints, network policies etc. The very minimum information it requires is the details on where to access the kubernetes API server. This information can be passed as `kube-router --master=http://192.168.1.99:8080/` or `kube-router --kubeconfig=<path to kubeconfig file>`. If neither `--master` nor `--kubeconfig` option is specified then kube-router will look for kubeconfig at `/var/lib/kube-router/kubeconfig` location.
102
+
- Kube-router need to access kubernetes API server to get information on pods, services, endpoints, network policies etc. The very minimum information it requires is the details on where to access the kubernetes API server. This information can be passed as `kube-router --master=http://192.168.1.99:8080/` or `kube-router --kubeconfig=<path to kubeconfig file>`.
101
103
102
104
- If you run kube-router as agent on the node, ipset package must be installed on each of the nodes (when run as daemonset, container image is prepackaged with ipset)
Kube-router is a distributed load balancer, firewall and router for Kubernetes. Kube-router can be configured to provide on each cluster node:
8
-
9
-
- a IPVS/LVS based service proxy on each node for *ClusterIP*, *NodePort* and *LoadBalancer* service types, providing service discovery and load balancing
10
-
- an ingress firewall for the pods running on the node as per the defined Kubernetes network policies using iptables and ipset
11
-
- a BGP router to advertise and learn the routes to the pod IP's for cross-node pod-to-pod connectivity
12
-
13
-
## Project status
14
-
15
-
Project is in alpha stage. We are working towards beta release
16
-
[milestone](https://github.com/cloudnativelabs/kube-router/milestone/2) and are
Kube-router is a distributed load balancer, firewall and router designed for Kubernetes networking with aim to provide operational simplicity and high performance.
24
9
25
10
## Primary Features
26
11
@@ -80,10 +65,16 @@ modern BGP API platform as well right out of the box.
80
65
81
66
For more details please refer to the [BGP documentation](Documentation/bgp.md).
82
67
68
+
### Standard Linux Networking
69
+
70
+
A key design tenet of Kube-router is to use standard Linux networking stack and toolset. There is no overlays or
71
+
SDN pixie dust, but just plain good old networking. You can use standard Linux networking tools like iptables, ipvsadm, ipset,
72
+
iproute, traceroute, tcpdump etc. to troubleshoot or observe data path. When kube-router is ran as a daemonset, image also ships with these [tools](./Documentation/pod-toolbox.md#pod-toolbox) automatically configured for your cluster.
73
+
83
74
### Small Footprint
84
75
85
76
Although it does the work of several of its peers in one binary, kube-router
86
-
does it all with a relatively tiny codebase, partly because IPVS is already
77
+
does it all with a relatively [tiny codebase](https://github.com/cloudnativelabs/kube-router/tree/master/app/controllers), partly because IPVS is already
87
78
there on your Kuberneres nodes waiting to help you do amazing things.
88
79
kube-router brings that and GoBGP's modern BGP interface to you in an elegant
89
80
package designed from the ground up for Kubernetes.
@@ -96,6 +87,20 @@ recipe for high-performance cluster networking at scale. BGP ensures that the
96
87
data path is dynamic and efficient, and IPVS provides in-kernel load balancing
0 commit comments