flannel is a network fabric for containers, designed for Kubernetes
Go C Makefile Shell
Latest commit 11e31e3 Apr 26, 2017 @tomdee tomdee committed on GitHub Merge pull request #693 from spacexnice/master
Keep route: [ 0.0.0.0/0 via ECS instance ] to work with alicloud DNAT…
Permalink
Failed to load latest commit information.
Documentation Merge pull request #633 from tomdee/remove-multiple-networks Apr 19, 2017
backend Merge pull request #693 from spacexnice/master Apr 26, 2017
dist Merge pull request #633 from tomdee/remove-multiple-networks Apr 19, 2017
logos logos: resized for readme Jul 28, 2015
network Remove the experimental support for multiple networks. Apr 19, 2017
pkg/ip Correcting format for pkg/ip/ipnet.go Nov 16, 2016
subnet Merge branch 'master' into fix Apr 19, 2017
vendor glide install Apr 19, 2017
version Version embedding for Go 1.4 and 1.5 Nov 6, 2015
.dockerignore BUILDS: Overhaul build process Jul 19, 2016
.gitignore Add iptables binaries Apr 19, 2017
.travis.yml Makefile: Push tags to flannel-git for all builds Sep 23, 2016
CONTRIBUTING.md Added boilerplate files Aug 28, 2014
DCO Added boilerplate files Aug 28, 2014
Dockerfile.amd64 Remove the experimental support for multiple networks. Apr 19, 2017
Dockerfile.arm Remove the experimental support for multiple networks. Apr 19, 2017
Dockerfile.arm64 Remove the experimental support for multiple networks. Apr 19, 2017
Dockerfile.ppc64le Remove the experimental support for multiple networks. Apr 19, 2017
Dockerfile.s390x Remove the experimental support for multiple networks. Apr 19, 2017
LICENSE Added boilerplate files Aug 28, 2014
MAINTAINERS MAINTAINERS: remove steevej Mar 16, 2017
Makefile Remove the experimental support for multiple networks. Apr 19, 2017
NOTICE Added boilerplate files Aug 28, 2014
README.md Documentation: Split README into multiple files Mar 28, 2017
glide.lock glide update Apr 19, 2017
glide.yaml glide update Apr 19, 2017
license-check.sh BUILDS: Overhaul build process Jul 19, 2016
main.go Remove the experimental support for multiple networks. Apr 19, 2017
packet-01.png diagram: update to reflect name change Sep 17, 2014

README.md

flannel

flannel Logo

Build Status

flannel is a virtual network that gives a subnet to each host for use with container runtimes.

Platforms like Kubernetes assume that each container (pod) has a unique, routable IP inside the cluster. The advantage of this model is that it reduces the complexity of doing port mapping.

Theory of Operation

flannel runs an agent, flanneld, on each host and is responsible for allocating a subnet lease out of a preconfigured address space. flannel uses etcd to store the network configuration, allocated subnets, and auxiliary data (such as host's IP). The forwarding of packets is achieved using one of several strategies that are known as backends. The simplest backend is udp and uses a TUN device to encapsulate every IP fragment in a UDP packet, forming an overlay network. The following diagram demonstrates the path a packet takes as it traverses the overlay network:

Life of a packet

Documenation