All Projects → kvaps → bridget

kvaps / bridget

Licence: Apache-2.0 License
Simple bridge network for kubernetes

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to bridget

hybridnet
A CNI plugin, provides networking environment where overlay and underlay containers can run on the same node and have cluster-wide bidirectional network connectivity.
Stars: ✭ 188 (+408.11%)
Mutual labels:  vlan, cni
L2-Emulator
Implementing a Layer-2 Emulator in C using Graphs and LinkedList
Stars: ✭ 17 (-54.05%)
Mutual labels:  vlan
ipdecap
Decapsulate traffic encapsulated within GRE, IPIP, 6in4, ESP (ipsec) protocols, can also remove IEEE 802.1Q (virtual lan) header. Works with pcap files.
Stars: ✭ 32 (-13.51%)
Mutual labels:  vlan
cni-plugins
CNI Plugins compatible with nftables
Stars: ✭ 29 (-21.62%)
Mutual labels:  cni
linen-cni
A CNI plugin designed for overlay networks with Open vSwitch
Stars: ✭ 48 (+29.73%)
Mutual labels:  cni
circuit
Container Network Management
Stars: ✭ 43 (+16.22%)
Mutual labels:  cni
Kubernetes Networking Links
Kubernetes Networking recommended reading list
Stars: ✭ 175 (+372.97%)
Mutual labels:  cni
ctnr
rootless runc-based container engine - deprecated in favour of podman
Stars: ✭ 30 (-18.92%)
Mutual labels:  cni
sriov-cni
DPDK & SR-IOV CNI plugin
Stars: ✭ 209 (+464.86%)
Mutual labels:  cni
everoute
Everoute provide cloud-native networking and security solution
Stars: ✭ 26 (-29.73%)
Mutual labels:  cni
macvtap-cni
A CNI + device plugin combo for virtualization workloads on Kubernetes.
Stars: ✭ 28 (-24.32%)
Mutual labels:  cni
api-cni-cleanup
Kubernetes CNI cleanner
Stars: ✭ 29 (-21.62%)
Mutual labels:  cni
firecracker-task-driver
nomad task driver that uses firecracker to start micro-vms
Stars: ✭ 85 (+129.73%)
Mutual labels:  cni
koko
Connect containers as point-to-point connection, using veth/vxlan/vlan/macvlan
Stars: ✭ 77 (+108.11%)
Mutual labels:  vlan
dperf
dperf is a DPDK based 100Gbps network performance and load testing software.
Stars: ✭ 1,320 (+3467.57%)
Mutual labels:  vlan
ovs-cni
Open vSwitch CNI plugin
Stars: ✭ 176 (+375.68%)
Mutual labels:  cni
vmam
VLAN Mac-address Authentication Manager
Stars: ✭ 19 (-48.65%)
Mutual labels:  vlan
WireBug
WireBug is a toolset for Voice-over-IP penetration testing
Stars: ✭ 142 (+283.78%)
Mutual labels:  vlan
vsphere-kubernetes-drivers-operator
vSphere Kubernetes Driver Operator to simplify and automate the lifecycle management of CSI and CPI for Kubernetes cluster running on vSphere
Stars: ✭ 21 (-43.24%)
Mutual labels:  cni
dpdk
A comprehensive rust binding for DPDK allowing high speed userspace networking across 256 cores and 32 NICs
Stars: ✭ 30 (-18.92%)
Mutual labels:  vlan

bridget

Simple bridge network for kubernetes

How it works

bridget is a short shell script that helps you to organise simple bridged network for Kubernetes. There are no overlays, no policies. Just a flat L2-network across all your hosts and pods.

In addition bridget can automatically configure VLAN and bridge interfaces for that. See the picture:

bridget automatically retrieves node cidr from your pod-network and configures cni to use it.

Parameters

All parameters are passed as environment variables:

  • BRIDGE (example: cbr0) - Bridge name. Mandatory option.
  • VLAN (example: 100) - VLAN id. If set, a new vlan-interface under IFACE will be created and added to BRIDGE.
  • IFACE (example: eth0) - Physical interface to connect bridge to. Mandatory if VLAN is set, but can also be used alone.
  • MTU (default: 1500) - MTU value for cni config
  • CHECK_SLAVES (default: 1) - Make bridget configure slave interfaces if the bridge already exists.
  • POD_NETWORK (default: 10.244.0.0/16) - Your pod network.
  • DEBUG (default: 0) - Enable verbose output.

Quick start

  • Instantiate your kubernetes with --pod-network-cidr=10.244.0.0/16 flag.

  • Download yaml file:

curl -O https://raw.githubusercontent.com/kvaps/bridget/master/bridget.yaml
  • Edit desired parameters:
vim bridget.yaml

By default bridget uses cbr0 bridge that isn't connected anywhere, so you need to either set IFACE and VLAN parameters or configure your host system to connect the physical interface to this bridge manually.

Please make sure that you have no IP address on the bridge because it will be configured automatically.

  • Run daemonset:
kubectl create -f bridget.yaml

Update

  • Check your bridget.yaml for changes.

  • Run:

kubectl delete -f bridget.yaml
kubectl create -f bridget.yaml

Alternatives

There aren't a lot of alternatives if you want to use flat L2-network with kubernetes.

Even with most of the existing solutions like flannel's or romana's L2 modes it's still quite difficult to use your own rules for NATing and routing. So you gain flexible policies and some other things, but lose simplicity and productivity of a simple L2-network.

Bridget was created under pipework's inspiration. pipework allows you to add single interfaces to your containers, but with additional manual actions, and Kubernetes doesn't know anything about your manual changes.

Unlike pipework, bridget uses CNI to configure pod interfaces. As a result all configuration occurs automatically and kubernetes gets right IP-addresses.

Another alternative is to сreate your own CNI configuration with bridge or macvlan plugin for each of your hosts.

Contact

Contributing

Use Pull Requests to contribute bugfixes or new features. It is assumed that your code and documentation are contributed under the Apache License 2.0.

Reporting bugs

Please use github issue-tracker to submit bugs

License

bridget is distributed under the Apache 2.0 license. See the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].