前言
本讲是从Docker系列讲解课程,单独抽离出来的一个小节,带你一起 深入了解在编排工具出现前,跨宿主机通信的两大得力干将overlay、macvlay,这也会后期学好K8s做好基本功铺垫,打下一个坚实的基础。
一、overlay
Overlay网络模式相比于桥接模式的特别之处在于,它可以自定多个--subnet子网网段,只有同一网络/段中的容器才可以相互交换信息(相互通信)。
需要注意的是如果设置了多个--subnet,也需要同步设定对应个数的--gateway网关,需要确保各子网网段不重叠。
如何查看容器的子网网段,docker insect contain_name即可,当然在docker run 容器时,也可以通过--subnet 指定子网网段 。
示例(了解范畴):
docker network create -d overlay\ --subnet 192.168.0.0./16\ --subnet 192.170.0.0./16\ --gateway = 192.168.0.100\ --gateway = 192.170.0.100\ --ip-range=192.168.1.0/24\ --aux-address="my-router=192.168.1.5" --aux-adress="my-switch=192.168.1.16" \ --aux-address="my-router=192.170.1.5" --aux-adress="my-switch=192.170.1.16" \ myoverlaynet
预告
通过对本知识点的学习,你将掌握,通过docker create 自定义网络-d自定义网络指定为overlay 网络模式,从而实现跨宿主机通信,同时可以了解一下consul镜像的使用。
注: Consul是一个分布式、高可用性和多数据中心感知工具,用于服务发现、配置和编排。Consul 支持大规模快速部署、配置和维护面向服务的架构。欲了解更多信息,请参阅 Consul架构指南。
1.docker pull 拉取consul镜像,并运行容器
docker pull consul #拉取镜像
docker images
docker run -d -p 8500:8500 --name consul consul:latest #启动sonsul容器
netstat -nalpt #查看端口占用情况
2.修改主/从节点的daemon.json,并重启docker和consul服务
1)修改主节点CentOS7.9
vim /etc/docker/daemon.json
注:在修改之前,你本地的这个文件可能只有一行,大概应该是仅配了(阿里)镜像加速。可参考如下配置,前两行可以不配置,使用默认的就可以。最后三行是要配的。
{
"graph":"/var/lib/docker",
"storage-driver":"overlay",
"registry-mirrors": ["https://2jdmaxpc.mirror.aliyuncs.com"],
"cluster-store":"consul://192.168.31.100:8500",
"cluster-advertise":"192.168.31.100:2375",
"live-restore":true
}
注意:修改的时候,注意引号要是英文的,除最后一行外,前面的每行尾部都有一个英文逗号(否则docker服务将无法正常启动!!)。
首行的graph是配置docker数据(镜像、容器等)默认存储位置,可以据需修改,默认位置就是/var/lib/docker,(有人习惯修改为/data/docker)。
第二行的storage-driver,是驱动模式指定为overlay。
第三行是配置的阿里云镜像仓库地址
第四行cluster-store,是配置sonsul集群的访问地址
第五行cluster-advertise,是广播通信地址和端口。
"live-restore":true 和 –restart=always用法和意义各不相同。
配置前者的意义在于即使docker的daemon守护进程关闭,其里面的容器依然保持运行,后者是指容器在docker run 启动时,佩带了该参数,则在出现故障(内存泄露等)时,自动重启容器。
systemctl daemo