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

这篇具有很好参考价值的文章主要介绍了【云原生】Docker网络Overlay搭建Consul实现跨主机通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.overlay网络是什么?

实现overlay环境


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

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

 

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同网络文章来源地址https://www.toymoban.com/news/detail-630589.html

/ # 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

到了这里,关于【云原生】Docker网络Overlay搭建Consul实现跨主机通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用CNI网络插件(calico)实现docker容器跨主机互联

    目录 一.系统环境 二.前言 三.CNI网络插件简介 四.常见的几种CNI网络插件对比 五.Calico网络之间是如何通信的 六.配置calico让物理机A上的docker容器c1可以访问物理机B上的docker容器c2 6.1 安装部署etcd集群 6.2 安装部署docker 6.3 配置calico 6.4 使用Calico实现Docker容器跨主机互联 七.Kube

    2024年02月08日
    浏览(43)
  • 在Docker中自定义网络配置,实现容器与主机的连通性

    在Docker中自定义网络配置,实现容器与主机的连通性 【实验步骤】 [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 ONBOOT=yes [root@localhost ~]# systemctl restart network [root@localhost ~]# mkdir /opt/centos -p   [root@localhost ~]# mount /dev/cdrom /opt/centos/ mount: /dev/sr0 is write-protected, mounting read-onl

    2024年02月08日
    浏览(40)
  • docker与宿主机共享内存通信

    docker中的进程要与宿主机使用共享内存通信,需要在启动容器的时候指定 “–ipc=host” 选项。然后再编写相应的共享内存的程序,一个跑在宿主机上,另一个跑在docker上面。 shm_data.h shm_slave.c makefile shm_data.h shm_master.c makefile Dockerfile 运行时需要先下载docker,获取支持c语言编译

    2024年02月07日
    浏览(46)
  • Docker+Consul+Registrator 实现服务注册与发现

    第四阶段 时  间:2023年8月8日 参加人:全班人员 内  容: Docker+Consul+Registrator 实现服务注册与发现 目录 一、服务注册中心引言 CAP理论是分布式架构中重要理论: 二、服务注册中心软件 (一)ZooKeeper (二)Eureka (三)Etcd (四)Consul 常用的服务发现产品之间的比较: 三

    2024年02月13日
    浏览(56)
  • 【云原生-K8s】kubeadm搭建安装k8s集群v1.25版本完整教程【docker、网络插件calico、中间层cri-docker】

    从 k8s 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为k8s的容器运行时了,即从k8s v1.24开始不再使用docker了 但是如果想继续使用docker的话,可以在kubelet和docker之间加上一个中间层cri-docker。

    2024年02月03日
    浏览(45)
  • OpenWRT 中创建docker Openwrt和其他宿主机中的docker容器通信

    首先网络得支持多拨,否则没有意义,之所以这么折腾,是因为直接OpenWRT多拨的情况下,网心云从原先的映射公网型变成全锥型 openwrt主路由, cpu:Intel® Celeron® CPU J1900 @ 1.99GHz 内存:4G 网口:6口intel I211 千兆网口 原先计划是PVE,然后跑4个OpenWRT虚拟机,然而带不动,基本一

    2024年02月08日
    浏览(46)
  • Docker容器与虚拟化技术:Docker consul 实现服务注册与发现

    目录 一、理论 1.Docker consul 二、实验 1.consul部署 2. consul-template部署 三、总结 (1)服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现

    2024年02月11日
    浏览(52)
  • Python深度学习实战-基于tensorflow原生代码搭建BP神经网络实现分类任务(附源码和实现效果)

            前面两篇文章分别介绍了两种搭建神经网络模型的方法,一种是基于tensorflow的keras框架,另一种是继承父类自定义class类,本篇文章将编写原生代码搭建BP神经网络。 本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘

    2024年02月08日
    浏览(55)
  • 同一台宿主机不同的docker-compose下的容器互相通信;查看docker的network使用情况

    我的 docker 版本: 24.0.2 docker-compose 版本: 1.29.2 linux 是 ubuntu 20.04 在使用 docker 部署环境的时候大多用 docker-compose 来编排,参数的配置会清晰一点。 通常一个容器一个 docker-compose.yml 文件。 这就使得不同 docker-compose 下的容器不能自动的互相通信。 那么顺着这个思路往下想,

    2024年02月08日
    浏览(45)
  • docker导致远程主机无法访问,docker网段冲突导致主机网络异常无法访问

    背景:         公司分配的虚拟机是172网段的,在上面部署了docker、docker-compose、mysql、redis,程序用docker-compose管理,也平稳运行了一个多周,某天用FinalShell连主机重启docker容器,忽然断开连接,然后虚拟机就无法远程连接了,公司平台组通过后台连接虚拟机正常,网络正常

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包