flannel in Action: Building Docker Cross-Host Container Networks from Scratch
flannel in Action: Building Docker Cross-Host Container Networks from Scratch I. Network Environment Planning etcd host IP: 192.168.8.88 hostname: docker-network Host1 IP: 192.168.8.188 hostname: web01 Host2 IP: 192.168.8.99 hostname: web02 II. etcd Host Configuration Step 1: Download and Extract etcd Download etcd-v3.6.0-linux-amd64.tar.gz package from github.com Copy the package to the etcd host /root directory and extract: 1 [root@docker-network ~]# tar -zxvf etcd-v3.6.0-linux-amd64.tar.gz Step 2: Install etcd Executable Files 1 2 [root@docker-network ~]# cd etcd-v3.6.0-linux-amd64 [root@docker-network etcd-v3.6.0-linux-amd64]# cp etcd* /usr/local/bin/ Step 3: Create Data Directory 1 [root@docker-network ~]# mkdir /var/lib/etcd Step 4: Configure and Start etcd Service Create etcd.service file: 1 [root@docker-network ~]# vim /usr/lib/systemd/system/etcd.service 1 2 3 4 5 6 [Unit] Description=etcd_service [Service] ExecStart=/usr/local/bin/etcd --name etcd1 --data-dir /var/lib/etcd --listen-client-urls http://192.168.8.88:2379,http://127.0.0.1:2379 --advertise-client-urls http://192.168.8.88:2379,http://127.0.0.1:2379 [Install] WantedBy=multi-user.target Reload system service configuration and start etcd: 1 2 3 [root@docker-network ~]# systemctl daemon-reload [root@docker-network ~]# systemctl enable etcd.service [root@docker-network ~]# systemctl restart etcd.service Verify etcd listening status: 1 2 3 [root@docker-network ~]# netstat -tulnp |grep :2379 tcp 0 0 192.168.8.88:2379 0.0.0.0:* LISTEN 1912/etcd tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 1912/etcd Step 5: Add flannel Network Configuration to etcd 1 etcdctl --endpoints http://127.0.0.1:2379 put /coreos.com/network/config '{"Network": "172.16.0.0/16", "SubnetLen": 24, "SubnetMin": "172.16.1.0","SubnetMax": "172.16.10.0", "Backend": {"Type": "vxlan"}}' The above content is all on one line. Verify that the configuration was written successfully ...