Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/k8snetworkplumbingwg/ovs-cni
Open vSwitch CNI plugin
https://github.com/k8snetworkplumbingwg/ovs-cni
cni kubernetes kubernetes-networking openvswitch
Last synced: 2 months ago
JSON representation
Open vSwitch CNI plugin
- Host: GitHub
- URL: https://github.com/k8snetworkplumbingwg/ovs-cni
- Owner: k8snetworkplumbingwg
- License: apache-2.0
- Created: 2018-08-15T13:48:38.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-11-25T14:12:40.000Z (3 months ago)
- Last Synced: 2024-11-28T23:41:23.905Z (2 months ago)
- Topics: cni, kubernetes, kubernetes-networking, openvswitch
- Language: Go
- Homepage:
- Size: 18.9 MB
- Stars: 224
- Watchers: 12
- Forks: 71
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - k8snetworkplumbingwg/ovs-cni - Open vSwitch CNI plugin (Go)
- awesome - k8snetworkplumbingwg/ovs-cni - Open vSwitch CNI plugin (Go)
README
# Open vSwitch CNI plugin
This plugin allows user to define Kubernetes networks on top of Open vSwitch bridges available on nodes. Note that ovs-cni does not configure bridges, it's up to a user to create them and connect them to L2, L3 or an overlay network. This project also delivers OVS marker, which exposes available bridges as Node resources, that can be used to schedule pods on the right node via [intel/network-resources-injector](https://github.com/intel/network-resources-injector/). Finally please note that Open vSwitch must be installed and running on the host.
In order to use this plugin, Multus must be installed on all hosts and `NetworkAttachmentDefinition` CRD created.
## Overview
First create network attachment definition. This object specifies to which Open vSwitch bridge should the pod be attached and what VLAN ID should be set on the port. For more information, check [plugin documentation](docs/cni-plugin.md).
```shell
cat < mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: eth0@if11: mtu 1450 qdisc noqueue state UP
link/ether 0a:58:0a:f4:00:07 brd ff:ff:ff:ff:ff:ff
5: net1@if12: mtu 1500 qdisc noqueue state UP
link/ether e6:f4:2e:b4:4b:6e brd ff:ff:ff:ff:ff:ff
```## Deployment and Usage
You can choose to deploy this plugin on [local virtualized cluster](docs/deployment-on-local-cluster.md) or on your [arbitrary cluster](docs/deployment-on-arbitrary-cluster.md). After that you can follow [demo](docs/demo.md) that will guide you through preparation of Open vSwitch bridges, defining networks on Kubernetes and attaching pods to them.
## Components
* [CNI Plugin](docs/cni-plugin.md) - Documentation of standalone Open vSwitch CNI plugin.
* [Port Mirroring](docs/traffic-mirroring.md) - Documentation of an OVS CNI extension, allowing for port mirroring.
* [Hardware Offload](docs/ovs-offload.md) - Documentation of hardware offload functionality, using SR-IOV.
* [Marker](docs/marker.md) - Documentation of daemon set exposing bridges as node resources.## Development
[Development guide](docs/devel-guide.md) is a go-to reference point for development helper commands, building, testing, container images and local cluster.