No Description

Tom Denham 0e65fd8b5d Add templates for PRs/Issues 7 years ago
.github 0e65fd8b5d Add templates for PRs/Issues 7 years ago
Documentation 1ab041f34e Merge pull request #633 from tomdee/remove-multiple-networks 8 years ago
backend 11e31e3327 Merge pull request #693 from spacexnice/master 7 years ago
dist 1ab041f34e Merge pull request #633 from tomdee/remove-multiple-networks 8 years ago
logos 170fd5de88 logos: resized for readme 9 years ago
network 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
pkg c254deaf7b Correcting format for pkg/ip/ipnet.go 8 years ago
subnet c55b98bd6a Merge branch 'master' into fix 8 years ago
vendor 1b8190be03 glide install 8 years ago
version cbac427350 Version embedding for Go 1.4 and 1.5 9 years ago
.dockerignore a8972ad5cd BUILDS: Overhaul build process 8 years ago
.gitignore 77ea67d61e Add iptables binaries 8 years ago
.travis.yml 56ef07bd0f Makefile: Push tags to flannel-git for all builds 8 years ago
CONTRIBUTING.md c1c060c005 Added boilerplate files 10 years ago
DCO c1c060c005 Added boilerplate files 10 years ago
Dockerfile.amd64 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
Dockerfile.arm 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
Dockerfile.arm64 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
Dockerfile.ppc64le 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
Dockerfile.s390x 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
LICENSE c1c060c005 Added boilerplate files 10 years ago
MAINTAINERS c2171f9dc5 MAINTAINERS: remove steevej 8 years ago
Makefile 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
NOTICE c1c060c005 Added boilerplate files 10 years ago
README.md bb68236217 Documentation: Split README into multiple files 8 years ago
glide.lock dbee0823c2 glide update 8 years ago
glide.yaml dbee0823c2 glide update 8 years ago
license-check.sh a8972ad5cd BUILDS: Overhaul build process 8 years ago
main.go 01afb49e72 Remove the experimental support for multiple networks. 8 years ago
packet-01.png 82195b1cc4 diagram: update to reflect name change 10 years ago

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