All Projects → contiv → Netplugin

contiv / Netplugin

Licence: apache-2.0
Container networking for various use cases

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Netplugin

Brmgr
Manage bridge devices and provide DHCP and DNS services to connected interfaces.
Stars: ✭ 11 (-97.79%)
Mutual labels:  networking, containers
Cilium
eBPF-based Networking, Security, and Observability
Stars: ✭ 10,256 (+1963.58%)
Mutual labels:  networking, containers
Felix
Project Calico's per-host agent Felix, responsible for programming routes and security policy.
Stars: ✭ 871 (+75.25%)
Mutual labels:  networking, containers
Awesome Scalability Toolbox
My opinionated list of products and tools used for high-scalability projects
Stars: ✭ 34 (-93.16%)
Mutual labels:  networking, containers
Dlib
Allocators, I/O streams, math, geometry, image and audio processing for D
Stars: ✭ 182 (-63.38%)
Mutual labels:  networking, containers
Sdn Handbook
SDN网络指南(SDN Handbook)
Stars: ✭ 856 (+72.23%)
Mutual labels:  networking, containers
Verwalter
A tool which manages cluster of services
Stars: ✭ 34 (-93.16%)
Mutual labels:  networking, containers
Pavlos
A light-weight container runtime for Linux with NVIDIA gpu support, allows developers to quicky setup development environments for dev and test. Pavlos can emulate any Linux rootfs image as a container.
Stars: ✭ 22 (-95.57%)
Mutual labels:  networking, containers
Ops
Tools&scripts for daily devops.
Stars: ✭ 128 (-74.25%)
Mutual labels:  networking, containers
Tanya
GC-free, high-performance D library: Containers, networking, metaprogramming, memory management, utilities
Stars: ✭ 70 (-85.92%)
Mutual labels:  networking, containers
Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (+108.45%)
Mutual labels:  networking, containers
Devops Guide
DevOps Guide - Development to Production all configurations with basic notes to debug efficiently.
Stars: ✭ 4,119 (+728.77%)
Mutual labels:  networking, containers
Cni
Container Network Interface - networking for Linux containers
Stars: ✭ 3,907 (+686.12%)
Mutual labels:  networking, containers
Kelda
Kelda is an approachable way to deploy to the cloud.
Stars: ✭ 433 (-12.88%)
Mutual labels:  networking, containers
Wesher
wireguard overlay mesh network manager
Stars: ✭ 461 (-7.24%)
Mutual labels:  networking
Bitnami Docker Wordpress
Bitnami Docker Image for WordPress
Stars: ✭ 476 (-4.23%)
Mutual labels:  containers
Tenus
Linux networking in Go
Stars: ✭ 458 (-7.85%)
Mutual labels:  networking
Networkservicemesh
The Hybrid/Multi-cloud IP Service Mesh
Stars: ✭ 456 (-8.25%)
Mutual labels:  networking
School Of Sre
At LinkedIn, we are using this curriculum for onboarding our entry-level talents into the SRE role.
Stars: ✭ 5,141 (+934.41%)
Mutual labels:  networking
Peerdiscovery
Pure-Go library for cross-platform local peer discovery using UDP multicast 👩 🔁 👩
Stars: ✭ 476 (-4.23%)
Mutual labels:  networking

Build Status Go Report Card

Netplugin

Generic network plugin is designed to handle networking use cases in clustered multi-host systems. It is specifically designed to handle:

  • Multi-tenant environment where disjoint networks are offered to containers on the same host
  • SDN applications and interoperability with SDN solutions
  • Interoperability with non container environment and hand-off to a physical network
  • Instantiating policies/ACL/QoS associated with containers
  • Multicast or multi-destination dependent applications
  • Integration with existing IPAM tools for migrating customers
  • Handle NIC's capabilities for acceleration (SRIOV/Offload/etc.)

Documentation

Full, comprehensive documentation is available on the website:

http://docs.contiv.io

Getting-started videos are available on YouTube.

Getting Started

This will provide you with a minimal experience of uploading the intent and seeing the netplugin system act on it. It will create a network on your host that lives behind an OVS bridge and has its own unique interfaces.

Step 1: Clone the project and bringup the VMs

Note: if you have $GOPATH set, then please ensure either you unset GOPATH, or clone the tree in $GOPATH/src/github.com/contiv/ location

$ git clone https://github.com/contiv/netplugin
$ cd netplugin; make demo
$ vagrant ssh netplugin-node1

Optionally, variables can be passed to Makefile if needed. For example, to use 4 GB memory and 2 CPUs for the vagrant VMs, run:

CONTIV_MEMORY=4096 CONTIV_CPUS=2 make demo

CONTIV_MEMORY and CONTIV_CPUS are set to 2048 and 4 as the default values respectively.

Step 2: Create a network

$ netctl net create contiv-net --subnet=20.1.1.0/24
	or
netctl net create contiv-net --subnet=20.1.1.0/24 --subnetv6=2001::/100 

Step 3: Run your containers and enjoy the networking!

$ docker run -itd --name=web --net=contiv-net alpine /bin/sh
$ docker run -itd --name=db --net=contiv-net alpine /bin/sh
$ docker exec -it web /bin/sh
< inside the container >
[email protected]:/# ping db
PING db (20.1.1.3) 56(84) bytes of data.
64 bytes from db (20.1.1.3): icmp_seq=1 ttl=64 time=0.658 ms
64 bytes from db (20.1.1.3): icmp_seq=2 ttl=64 time=0.103 ms

Building and Testing

Note: Vagrant 1.7.4 and VirtualBox 5.0+ are required to build and test netplugin.

High level make targets:

  • demo: start three VM demo cluster for development or testing.
  • build: build the binary in a VM and download it to the host.
  • unit-test: run the unit tests. Specify CONTIV_NODE_OS=centos to test on centos instead of ubuntu.
  • system-test: run the networking/"sanity" tests. Specify CONTIV_NODE_OS=centos to test on centos instead of ubuntu.

How to Contribute

Patches and contributions are welcome, please hit the GitHub page to open an issue or to submit patches send pull requests. Please sign your commits, and read CONTRIBUTING.md

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].