【云原生】Docker网络Overlay搭建Consul实现跨主机通信

简介: 【云原生】Docker网络Overlay搭建Consul实现跨主机通信

1.overlay网络是什么?

       在Docker中,Overlay网络是一种容器网络驱动程序,它允许在多个Docker主机上创建一个虚拟网络,使得容器可以通过这个网络相互通信。

       Overlay网络使用VXLAN(Virtual Extensible LAN)技术来实现多主机之间的通信。每个Docker主机上的容器都可以加入Overlay网络,并且它们可以像在同一台主机上一样进行通信,而不需要了解底层主机的网络配置。

       当容器发送网络请求时,Overlay网络驱动程序将请求封装为VXLAN包,并通过底层主机的物理网络发送到目标容器所在的主机。目标主机上的Overlay网络驱动程序将VXLAN包解封,并将请求传递给目标容器。

Overlay网络具有以下特点:

  1. 跨主机通信:容器可以在不同的Docker主机上运行,并通过Overlay网络进行通信。
  2. 自动路由:Overlay网络驱动程序自动处理容器之间的路由,使得容器可以直接通过容器名称进行通信。
  3. 安全性:Overlay网络使用加密和身份验证来保护容器之间的通信,确保数据的安全性。
  4. 可扩展性:Overlay网络可以在多个主机上创建数千个容器,并且能够自动处理容器的动态添加和删除。
  5. 灵活性:Overlay网络可以与其他网络驱动程序(如Bridge、Host等)一起使用,以满足不同的网络需求。

       Overlay网络是Docker中常用的网络驱动程序之一,它提供了跨主机通信的能力,使得容器在分布式环境中能够方便地进行网络通信。

实现overlay环境

部署环境

主机名 IP
consul 192.168.2.5
node1 192.168.2.6
node2 192.168.2.7

 

1.在consul主机下载consul镜像

[root@localhost ~]# docker pull  progrium/consul

2.启动consul容器

[root@localhost ~]# docker run -d --restart always -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server -bootstrap -ui-dir /ui
3ae189bff461fc03e004598c399b5746085918a84effc0cea8c15306bfa53e3b

3.将三台主机防火墙关闭

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables-save

4.在所有node上指定consul服务器选项

[root@localhost ~]# vi /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2376 --cluster-store=consul://192.168.2.5:8500 --cluster-advertise=ens33:2376
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

注意:这里需要将docker版本降低才可以连接consul

[root@localhost ~]# yum -y remove docker-ce
[root@localhost ~]# yum -y install docker-ce-20.10.24-3.el7

5.完成后,在node上其中一个

[root@localhost ~]# docker network create -d overlay --subnet 192.168.6.0/24 --gateway 192.168.6.254 ov_net1

6.分别在两个节点上创建的overlay网络生成容器,验证overlay网络

#node1操作
[root@localhost ~]# docker run -it --name test1 --network ov_net1 busybox
#node2操作
[root@localhost ~]# docker run -it --name test2--network ov_net1 busybox

7.相互ping同网络

/ # ping 192.168.6.1
PING 192.168.6.1 (192.168.6.1): 56 data bytes
64 bytes from 192.168.6.1: seq=0 ttl=64 time=0.450 ms
64 bytes from 192.168.6.1: seq=1 ttl=64 time=0.272 ms
64 bytes from 192.168.6.1: seq=2 ttl=64 time=0.379 ms
目录
相关文章
|
28天前
|
Cloud Native 算法 区块链
站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准
gRPC是云原生时代高效通信标准,基于HTTP/2实现,支持四种服务方法。通过.proto文件定义接口,生成多语言Stub,实现跨语言调用。其请求响应结构清晰,结合Headers、Data帧与Trailers,保障高性能与可扩展性,广泛应用于微服务架构中。
83 0
|
4月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
10月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
348 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
8月前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
208 23
|
11月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
310 61
|
10月前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
416 6
|
10月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
940 7
|
11月前
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
138 4
|
12月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
254 5
|
12月前
|
调度 Docker 容器
docker swarm创建覆盖网络
【10月更文挑战第16天】
163 5