欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

docker中搭建overlay 网络实验环境

程序员文章站 2022-10-14 09:32:35
为支持容器跨主机通信,docker 提供了 overlay driver,使用户可以创建基于 vxlan 的 overlay 网络。vxlan 可将二层数据封装到 udp...

为支持容器跨主机通信,docker 提供了 overlay driver,使用户可以创建基于 vxlan 的 overlay 网络。vxlan 可将二层数据封装到 udp 进行传输,vxlan 提供与 vlan 相同的以太网二层服务,但是拥有更强的扩展性和灵活性。有关 vxlan 更详细的内容可参考 cloudman 在《每天5分钟玩转 openstack》中的相关章节。

docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息,包括 network、endpoint、ip 等。consul、etcd 和 zookeeper 都是 docker 支持的 key-vlaue 软件,我们这里使用 consul。

实验环境描述

我们会直接使用上一章 docker-machine 创建的实验环境。在 docker 主机 host1(192.168.56.104)和 host2(192.168.56.105)上实践各种跨主机网络方案,在 192.168.56.101 上部署支持的组件,比如 consul。

最简单的方式是以容器方式运行 consul:

docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap

容器启动后,可以通过 http://192.168.56.101:8500 访问 consul。

docker中搭建overlay 网络实验环境

接下来修改 host1 和 host2 的 docker daemon 的配置文件/etc/systemd/system/docker.service

docker中搭建overlay 网络实验环境

--cluster-store 指定 consul 的地址。
--cluster-advertise 告知 consul 自己的连接地址。

重启 docker daemon。

systemctl daemon-reload  

systemctl restart docker.service

host1 和 host2 将自动注册到 consul 数据库中。

docker中搭建overlay 网络实验环境

准备就绪,实验环境如下:

docker中搭建overlay 网络实验环境

下一节创建 overlay 网络。