Container Networking Reference
A collection of tools and references around container networking accompanying my O’Reilly book Container Networking.
Networking 101
Linux kernel
Docker
Kubernetes
Official documentation
3rd-party articles
SDN
- canal: policy-based networking for cloud native applications (see also Project Calico)
- Cilium: secure network connectivity and loadbalancing based on BPF
- Contiv: unifies containers, VMs, and bare metal with a single networking fabric
- Contrail: commercial SDN by Juniper (see also Tungsten Fabric)
- flannel: virtual network that gives a sub-net to each host for use with a container runtime
- Open vSwitch: multilayer virtual switch supporting standards such as NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP, 802.1ag
- OpenVPN: open source VPN
- Project Calico: provides secure network connectivity by managing a flat layer 3 network, using IP-in-IP tunneling or overlays such as flannel
- Tungsten Fabric: network virtualization for providing connectivity and security for virtual, containerized or bare-metal workloads
- Weave Net: cloud native networking toolkit that creates virtual networks, enables automatic discovery and offers DNS, IPAM, and a distributed virtual firewall
DNS
- CoreDNS: a DNS server written in Go
- kubernetes-incubator/external-dns: configure external DNS servers (AWS Route53, Google CloudDNS and others) for Ingresses and services
- Kubernetes DNS: part of Kubernetes proper, schedules a DNS pod and service, and configures the
kubelet
s to tell individual containers to use the DNS Service’s IP to resolve DNS names
- SkyDNS: a distributed service for announcement and discovery of services built on top of etcd
- WeaveDNS: a DNS server answering name queries on a Weave network
Proxies and load balancers
- coreos/corelb: a loadbalancer built on coreinit and NGINX
- Envoy: cloud-native proxy supporting HTTP/2 and gRPC
- HAProxy: load balancing and proxying for TCP and HTTP-based apps
- kube-proxy: Kubernetes built-in East-West traffic service proxy (managing IPtables entries)
- MetalLB: a load-balancer implementation for bare metal Kubernetes clusters using ARP, NDP, or BGP.
- NGINX Reverse Proxy: configuring NGINX as a reverse proxy
- Træfik: a HTTP reverse proxy and load balancer
Ingress and gateways
Service Meshes
- Conduit: an ultralight service mesh for Kubernetes
- Istio: an open platform to connect, manage, and secure microservices
- Linkerd: a transparent proxy to be deployed as a service mesh
Other