目录
overlay
Overlay 网络是一种网络虚拟化技术,它将容器网络流量封装在宿主机网络之上,从而允许容器跨主机通信。Overlay 网络使用封装协议(如 VXLAN)来封装原始网络包,使其能够在底层物理网络中传输。
consul
在 Docker 中使用 Overlay 网络时,可以通过 Consul 保存网络状态信息,以实现服务发现和配置管理。Consul 提供了键值存储、健康检查和服务发现等功能,可以帮助管理和维护分布式系统中的服务状态。
部署测试环境
环境信息
主机名 | IP地址 | 操作系统版本 |
consul | 192.168.0.128 | ubuntu-20.04.5 LTS |
docker-node01 | 192.168.0.129 | ubuntu-20.04.5 LTS |
docker-node02 | 192.168.0.130 | ubuntu-20.04.5 LTS |
下载consul镜像
docker search consul
docker pull progrium/consul
启动consul容器
docker run -d --restart always -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server --bootstrap -ui-dir /ui
下面是对 docker run
命令中各个参数的解释:
-d
: 在后台运行容器,并打印容器 ID。--restart always
: 如果容器退出,总是重新启动容器。-p 8400:8400
: 将容器的 8400 端口映射到宿主机的 8400 端口。-p 8500:8500
: 将容器的 8500 端口映射到宿主机的 8500 端口。-p 8600:53/udp
: 将容器的 8600 端口映射到宿主机的 53 端口,并指定传输协议为 UDP。这是用于 DNS 查询的。-h node1
: 设置容器的主机名为node1
。progrium/consul
: 使用progrium/consul
镜像来创建容器。-server
: 指定当前节点为 Consul 服务器节点。--bootstrap
: 启动一个 Consul 服务器节点,并引导整个集群。-ui-dir /ui
: 指定 UI 文件所在的目录,用于启动 Consul 的 Web UI。
容器生成以后可以用浏览器访问验证服务是否正常运行,访问http://192.168.0.128:8500
加入consul服务器
三台服务器开启2376端口
ufw allow 2376
在另外两台docker节点修改docker启动文件,consul为安装了consul的那台主机
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 后面加上
--cluster-store=consul://192.168.0.128:8500 --cluster-advertise=ens33:2376
重启docker
systemctl daemon-reload
systemctl restart docker
查看是否加入成功
192.168.0.128:8500/ui在主页的key/value下的docker下nodes看到其他节点的IP