Building overlay Network Experimental Environment in docker
To support container communication across hosts, Docker provides overlay driver that allows users to create VxLAN-based overlay networks. VxLAN can encapsulate layer 2 data into UDP for transmission. VxLAN provides the same Ethernet layer 2 services as VLAN, but has stronger scalability and flexibility. For more details on VxLAN, please refer to the relevant section of CloudMan in "playing OpenStack for 5 minutes a day."
Docerk overlay network needs a key-value database to store network state information, including Network, Endpoint, IP and so on. Consul, Etcd, and ZooKeeper are all key-vlaue software supported by Docker, and we use Consul here.
Description of experimental environment
We will directly use the experimental environment created by docker-machine in the previous chapter. Practice various cross-host network scenarios on docker hosts host1 (192.168.56.104) and host2 (192.168.56.105), deploying supported components, such as Consul, on 192.168.56.101.
The easiest way is to run Consul as a container:
Docker run-d-p 8500 docker run-h consul-- name consul progrium/consul-server-bootstrap
After the container starts, you can access Consul through http://192.168.56.101:8500.
Next, modify the configuration file / etc/systemd/system/docker.service for host1 and host2's docker daemon.
-- cluster-store specifies the address of the consul.
-- cluster-advertise tells consul his connection address.
Restart docker daemon.
Systemctl daemon-reload
Systemctl restart docker.service
Host1 and host2 are automatically registered in the Consul database.
Ready, the experimental environment is as follows:
The next section creates an overlay network.