docker容器技术篇:安装与配置flannel

server/2024/10/18 2:20:08/

Docker安装与配置flannel
flannel是什么?
Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址;通俗的将就是通过flannel接管docker集群的网络,保障docker集群中容器的网络不会冲突。
但在默认的Docker配置中,每个节点上的Docker服务会分别负责所在节点容器的IP分配。这样导致的一个问题是,不同节点上容器可能分配相同的内外IP地址。

**实验环境:
虚拟机IP地址 操作系统 安装的软件
**
在这里插入图片描述

docker_9">一 安装docker(两台虚拟机都是一样的安装方法,这里只演示其中一台虚拟机的截图)

1.1关闭selinux

在这里插入图片描述

1.2开启内核转发

在这里插入图片描述
在这里插入图片描述

1.3关闭防火墙并禁用(本地虚拟机可关闭,公网服务器不能关闭)

在这里插入图片描述

docker_17">1.4安装docker

在这里插入图片描述

docker_19">1.5启动docker并设置开机自启动

在这里插入图片描述

二 安装etcd(两台虚拟机都是一样的安装方法,这里只演示其中一台虚拟机的截图)

2.1 etcd是什么

etcd是一种开源的分布式统一键值存储,用于分布式系统或计算机集群的共享配置、服务发现和的调度协调。etcd 有助于促进更加安全的自动更新,协调向主机调度的工作,并帮助设置容器的覆盖网络。注意这个协调主机工作,分布式系统都会面临的一个问题,就是多个节点之间的数据共享,这个和团队协作的道理是一样的道理,成员可以分头干活,但总是需要共享一些必须的信息,比如谁是 leader, 都有哪些成员,依赖任务之间的顺序协调等。所以分布式系统要么自己实现一个可靠的共享存储来同步信息,要么依赖一个可靠的共享存储服务,而 Etcd 就是这样一个服务;这段话不是我写的,我没想到比这更容易让人理解的表达,原文出自博客园博主–yuxiaoba。

2.2 安装etcd

在这里插入图片描述
在这里插入图片描述

2.3 备份配置文件

在这里插入图片描述

2.4 修改配置文件

在这里插入图片描述
在这里插入图片描述

2.5 启动etcd并设置开机自启动

在这里插入图片描述

2.6 查看etcd集群状态

在这里插入图片描述
能看到两个节点上的etcd服务信息,说明配置成功

flannel_37">三 安装与配置flannel(两台虚拟机都是一样的安装方法,这里只演示其中一台虚拟机的截图)

flannel_38">3.1 安装flannel

在这里插入图片描述

3.2 备份配置文件

在这里插入图片描述

flannel_42">3.3 修改flannel配置文件

在这里插入图片描述
在这里插入图片描述

flannelkeyslave1_45">3.4 配置etcd中关于flannel的key(只需要在slave1上执行即可)

etcdctl mk /atomic.io/network/config ‘{“Network”:“10.10.0.0/16”, “SubnetMin”: “10.10.1.0”, “SubnetMax”: “10.10.254.0”}’
上面的2处红色字体部分必须一致,可以自定义但是必须和配置文件保持一致
子网范围为 10.10.0.0/16,最小子网开始为10.10.1.0 最大子网结束为10.10.254.0,至此自定义子网信息我们已经写入完毕。
在这里插入图片描述

flannel_50">3.5 启动flannel并查看状态

在这里插入图片描述
在这里插入图片描述

flannel_53">3.6 查看flannel网卡信息

此时两台docker主机的网络已经不在同一个网段了
在这里插入图片描述
在这里插入图片描述

dockerflannel_57">3.7 指定docker中默认的网络为flannel

上面只是安装了flannel网络,还需要指定docker中默认的网络为flannel,要不然容器仍然使用默认网络(bridge)
Slave1:
修改/usr/lib/systemd/system/docker.service文件
在这里插入图片描述
在这里插入图片描述
修改/run/flannel/subnet.env文件
在这里插入图片描述
在这里插入图片描述
Slave2:
修改/usr/lib/systemd/system/docker.service文件
在这里插入图片描述
在这里插入图片描述
修改/run/flannel/subnet.env文件
在这里插入图片描述
在这里插入图片描述

dockerflannel_73">3.8 重启dockerflannel再次查看网络

此时两台docker主机的网络已经不在同一个网段了
Slave1:
在这里插入图片描述
Slave2:
在这里插入图片描述

3.9 测试两个节点的容器是否可以通信

在这里插入图片描述
这里用的是centos镜像
Slave1:
在这里插入图片描述
Slave2:
在这里插入图片描述
在这里插入图片描述

3.10 如果ping不通,请检查以下内核转发是否开启,防火墙是否关闭,iptables底层默认规则(清除规则)

希望对您有用,有不对的地方希望不吝赐教,欢迎在评论区留言,分享你的看法。


http://www.ppmy.cn/server/7988.html

相关文章

利用Django中的缓存系统提升Web应用性能

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在构建现代Web应用时,性能通常是至关重要的考虑因素之一。为了提高用户体验和应…

第24天:安全开发-PHP应用文件管理模块显示上传黑白名单类型过滤访问控制

第二十四天 一、PHP文件管理-显示&上传功能实现 如果被抓包抓到数据包,并修改Content-Type内容 则也可以绕过筛查 正常进行上传和下载 二、文件上传-$_FILES&过滤机制实现 无过滤机制 黑名单过滤机制 使用 explode 函数通过点号分割文件名,…

Python第四次作业

主程序 import MyTriangles1 float(input("请输入边长1:")) s2 float(input("请输入边长2:")) s3 float(input("请输入边长3:"))r MyTriangle.isvalid(s1, s2, s3) if r:a MyTriangle.area(s1, s2, s3)print("面积为:&quo…

Rust 中 Actor 并发模型的实践与使用

简介 Actor 模型是一种并行计算模型,提供了一种用于构建并发、分布式系统的形象办法。在 Actor 模型中,计算被示意为独立的、轻量级的计算单元,称为 Actor,能够发送和接管音讯并进行本地计算。 作为一种通用的消息传递编程模型,被广泛用于构建大规模可伸缩分布式系统。其…

第15届蓝桥杯题解

A题 结果:2429042904288 思路很简单 前20个数分别是 20 24 40 48 60 72 80 96 100 120 140 144 160 168 180 192 200 216 220 240 第2 4 6 8 12 ...n个数分别是24的 1倍 2倍 3倍 4倍 6倍 n/2倍 所以第202420242024 个数就是 24的 101210121012倍 B题 答案&am…

【配电网故障定位】基于二进制蝙蝠算法的配电网故障定位 33节点配电系统故障定位【Matlab代码#80】

文章目录 【获取资源请见文章第6节:资源获取】1. 配电网故障定位2. 二进制蝙蝠算法3. 算例展示4. 部分代码展示5. 仿真结果展示6. 资源获取 【获取资源请见文章第6节:资源获取】 1. 配电网故障定位 配电系统故障定位,即在配电网络发生故障的…

JMeter组件--配置元件--JSON断言

JSON断言(JSON Assertion) 可以对 Jmeter 取样器的响应消息以 JSON 方式进行检查;检测响应报文返回的特征值,进而判断取样器在业务上是否正确; 右键 >>> 添加 >>> 断言 >>> JSON断言&…

跨平台SIP 客户端-linphone下载、使用、开启视频H264

linphone 介绍 Linphone 是一种开源的语音和视频通信应用程序,它提供了基于互联网协议(IP)的实时通信功能。用于语音/视频通话、即时消息和电话会议的开源 SIP 电话。它适用于移动和桌面环境(iOS、Android、GNU/Linux、macOS、Win…