19、跨宿主机容器间的通讯之overlay(重叠网络)

版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin

1.#先来说一下什么是VLAN
虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网,由于交换机端口有两种VLAN属性,其一是VLANID,其二是VLANTAG,分别对应VLAN对数据包设置VLAN标签和允许通过的VLANTAG(标签)数据包,不同VLANID端口,可以通过相互允许VLANTAG,构建VLAN。VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN不一定是一个广播域,VLAN之间的通信并不一定需要路由网关,其本身可以通过对VLANTAG的相互允许,组成不同访问控制属性的VLAN,当然也可以通过第3层的路由器来完成的,但是,通过VLANID和VLANTAG的允许,VLAN可以为几乎局域网内任何信息集成系统架构逻辑拓扑和访问控制,并且与其它共享物理网路链路的信息系统实现相互间无扰共享。VLAN可以为信息业务和子业务、以及信息业务间提供一个相符合业务结构的虚拟网络拓扑架构并实现访问控制功能。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。

2. VXLAN详解

3.## 创建docker03主机
01机器创建目录,把下载好的rpm包移动并打包,发送到03的机器上并安装
[root@docker01 ~]#   mkdir docker_rpm
[root@docker01 ~]#  find /var/cache/yum/ -type f -name "*.rpm"|xargs mv -t docker_rpm/
[root@docker01 ~]#  tar zcf docker_rpm docker_rpm.tar.gz
[root@docker01 ~]#  scp -rp docker_rpm.tar.gz root@172.16.1.12:/root
 
[root@docker03 ~]#   ll
-rw-r--r--  1 root root 113548677 Jun 10 23:34 docker_rpm.tar.gz
[root@docker03 ~]   # tar xf docker_rpm.tar.gz
4.## 配置阿里的Base源(优化时已经配好了)
[root@docker03 ~/docker_rpm]#   yum localinstall *.rpm -y
 
5.## 启动docker并加入永久开机自启
[root@docker01 ~]#   systemctl enable docker
[root@docker01 ~]#   systemctl start docker
[root@docker01 ~]#   systemctl status docker


6.## docker03上: consul存储ip地址的分配
#把consul镜像上传到03机器上
[root@docker03 ~]#  docker image load -i docker_progrium_consul.tar.gz 

7.##启动容器
[root@docker03 ~]# docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstra

8.##打开浏览器查看
10.0.0.13:8500

9.##docker01、02上编辑配置文件
]#  vim  /etc/docker/daemon.json
{
  "cluster-store": "consul://10.0.0.13:8500",
  "cluster-advertise": "10.0.0.11:2376"
}

systemctl restart docker


10.##打开浏览器查看是否添加了节点信息
http://10.0.0.13:8500/ui/#/dc1/kv/docker/nodes/

11.##创建overlay网络(在01和02机器上操作)
docker network create -d overlay --subnet 172.26.0.0/16 --gateway 172.26.0.1  ol1


12.## 启动容器测试
[root@docker01 ~]#  docker run -it --network ol1 --name test02  alpine:latest  /bin/sh

每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网

posted @ 2022-06-03 11:50  kirin(麒麟)  阅读(229)  评论(0)    收藏  举报
Δ