
通过VXLAN隧道技术实现通信,低层物理网络为Underlay,上层逻辑网络为Overlay。
================
192.168.1.11节点1配置:
================
# wget https://github.com/etcd-io/etcd/releases/download/v3.5.12/etcd-v3.5.12-linux-amd64.tar.gz -O /home/etcd-v3.5.12-linux-amd64.tar.gz
# tar zxvf etcd-v3.5.12-linux-amd64.tar.gz
# cd etcd-v3.5.12-linux-amd64
# nohup ./etcd --name docker-node1 \
--initial-advertise-peer-urls http://192.168.1.11:2380 \
--listen-peer-urls http://192.168.1.11:2380 \
--listen-client-urls http://192.168.1.11:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.1.11:2379 \
--initial-cluster-token etcd-cluster \
--initial-cluster docker-node1=http://192.168.1.11:2380,docker-node2=http://192.168.1.12:2380 \
--initial-cluster-state new \
--log-level info \
--logger zap \
--log-outputs stderr&
================
192.168.1.12节点2配置:
================
# wget https://github.com/etcd-io/etcd/releases/download/v3.5.12/etcd-v3.5.12-linux-amd64.tar.gz -O /home/etcd-v3.5.12-linux-amd64.tar.gz
# tar zxvf etcd-v3.5.12-linux-amd64.tar.gz
# cd etcd-v3.5.12-linux-amd64
# nohup ./etcd --name docker-node2 \
--initial-advertise-peer-urls http://192.168.1.12:2380 \
--listen-peer-urls http://192.168.1.12:2380 \
--listen-client-urls http://192.168.1.12:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.1.12:2379 \
--initial-cluster-token etcd-cluster \
--initial-cluster docker-node1=http://192.168.1.11:2380,docker-node2=http://192.168.1.12:2380 \
--initial-cluster-state new \
--log-level info \
--logger zap \
--log-outputs stderr&
==================
检查集群状态(任一节点):
==================
# cd etcd-v3.5.12-linux-amd64
# ./etcdctl cluster-health
# ./etcd --version
etcd Version: 3.5.12
Git SHA: e7b3bb6cc
Go Version: go1.20.13
Go OS/Arch: linux/amd64
====================
两个节点分别重启docker服务:
====================
192.168.1.11节点1:
# systemctl stop docker
# /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=etcd://192.168.1.11:2379 --cluster-advertise=192.168.1.11:2375&
192.168.1.12节点2:
# systemctl stop docker
# /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=etcd://192.168.1.12:2379 --cluster-advertise=192.168.1.11:2375&
==============================================
通过一个节点创建overlay网络(每创建一个新的网络会出创建新的网段):
==============================================
# docker network create -d overlay demo-network
注:-d 使用overlay驱动,或者--driver=overlay
# docker network ls
查看demo-network详细信息:
# docker network inspect demo-network
在另一个节点上执行以下命令发现两个节点已通过etcd实现数据同步:
# ./etcdctl ls /docker/nodes
===============================
使用创建的overlay网络demo-network创建容器:
===============================
192.168.1.11节点1:
# docker run -d --name test1 --network demo-network busybox /bin/sh -c "while true; do sleep 3600; done"
192.168.1.11节点2:
# docker run -d --name test2 --network demo-network busybox /bin/sh -c "while true; do sleep 3600; done"
结论:验证两个容器可以跨节点互通。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




