flannel,etcd,docker

news2024/12/30 2:20:38

bridge容器

听有容器连接到桥就可以使用外网,使用nat让容器可以访问外网使用ipas指令查看桥,所有容器连接到此桥,ip地址都是172.17.0.0/16网段,桥是启动docker服务后出现,在centos使用bridge-utils安装

跨主机的容器 网络连接 A=>mysql        B=>java容器

将A -p3306:3306

1.安装bridge-utils

[root@docker ~]# yum -y install bridge-utils

2.查看进程

[root@docker ~]# brctl show 
bridge name    bridge id        STP enabled    interfaces
docker0        8000.024247b004cb    no        

[root@docker ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
0791e5b559a2   bridge    bridge    local
a9058e4eb605   host      host      local
b5976cf678d1   none      null      local

3.创建主机

docker run -d -p80:80 centos:nginx

docker run -it --network host centos:latest /bin/bash        类似于主机的容器,进入容器

yum -y install httpd        下载httpd

[root@docker /]# echo "=======" > /var/www/html/index.html        写入页面
[root@docker /]# httpd -k start         开启httpd服务
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::cad1:833a:a57c:8cc3. Set the 'ServerName' directive globally to suppress this message
[root@docker /]# curl localhost        在容器内可以访问到
=======
退到主机
[root@docker ~]# curl 192.168.2.81        用Ctrl+P+Q退出,进行访问,可以访问到
=======

跨主机容器之间的通讯

flannel

overlay 覆盖型网络,不支持路由转发,通过数据etcd数据库保存子网信息以及网络分配信息
给每台主机分配一个网段
通过udp传输数据包

实操:

主机名                ip                功能                软件

node1                x.x.x.10        主控主机        etcd flannel docker

node2                x.x.x.11        被控制主机      etcd docker

1.安装 flannel(数据分配) etcd(数据库)

[root@node1 ~]# yum -y install etcd
[root@node1 ~]# yum -y install flannel        node1和node2都下载

2.配置启动etcd

[root@node1 ~]# vim /etc/etcd/etcd.conf 

[root@node1 ~]# systemctl start etcd.service 
[root@node1 ~]# netstat -lnput | grep 2379        查看端口状态
tcp6       0      0 :::2379                 :::*                    LISTEN      1285/etcd           
[root@node1 ~]# netstat -lnput | grep 4001
tcp6       0      0 :::4001                 :::*                    LISTEN      1285/etcd           

[root@node1 ~]# systemctl  enable  etcd        开机自启

3.存取

[root@node1 ~]# etcdctl set testdir/testkey0 1000        存
1000

[root@node1 ~]# etcdctl get testdir/testkey0        取
1000

4.测试集群健康

[root@node1 ~]# etcdctl -C http://192.168.2.10:4001 cluster-health
member 8e9e05c52164694d is healthy: got healthy result from http://192.168.2.10:2379
cluster is healthy
5.修改flannel配置文件

[root@node1 ~]# vim /etc/sysconfig/flanneld 

6.指定之后容器的ip地址的开头,向数据库存入网端信息

[root@node1 ~]# etcdctl mk /atomic.io/network/config '{ "Network" : "172.20.0.0/16" }'
{ "Network" : "172.20.0.0/16" }
[root@node1 ~]# etcdctl get /atomic.io/network/config
{ "Network" : "172.20.0.0/16" }
7.启动flannel

[root@node1 ~]# systemctl start flanneld.service 
[root@node1 ~]# systemctl enable flanneld.service 
[root@node1 ~]# ip a s
3: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none 
    inet 172.20.87.0/16 scope global flannel0
       valid_lft forever preferred_lft forever
    inet6 fe80::1ca4:371f:8807:91b9/64 scope link flags 800 
       valid_lft forever preferred_lft forever
8.安装docker

9.查看flannel子网ip

[root@node1 ~]# cat /run/flannel/subnet.env 
FLANNEL_NETWORK=172.20.0.0/16
FLANNEL_SUBNET=172.20.87.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false
[root@node1 ~]# 
10.配置docker环境

[root@node1 ~]# scp  root@192.168.2.81:/etc/docker/daemon.json /etc/docker/        从配好的机器复制过来

 [root@node1 ~]# vim /usr/lib/systemd/system/docker.service

[root@node1 ~]# vim /etc/docker/daemon.json

[root@node1 ~]# systemctl daemon-reload 
[root@node1 ~]# systemctl restart docker.service 
[root@node1 ~]# cat /run/flannel/subnet.env 
FLANNEL_NETWORK=172.20.0.0/16
FLANNEL_SUBNET=172.20.87.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false
[root@node1 ~]# vim /etc/docker/daemon.json 

[root@node1 ~]# systemctl restart docker.service 
[root@node1 ~]# docker pull centos        拉取基础镜像

11.对node2进行配置

[root@node2 ~]# vim /etc/sysconfig/flanneld 

[root@node2 ~]# ip a s
3: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none 
    inet 172.20.11.0/16 scope global flannel0
       valid_lft forever preferred_lft forever
    inet6 fe80::7f1d:c425:a9:e718/64 scope link flags 800 
       valid_lft forever preferred_lft forever
[root@node2 ~]# cat /run/flannel/subnet.env 
FLANNEL_NETWORK=172.20.0.0/16
FLANNEL_SUBNET=172.20.11.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false
 

在node1中

[root@node1 ~]# docker run -it centos:latest /bin/bash
[root@c5351f566cca /]# [root@node1 ~]# 
[root@node1 ~]# docker inspect c5 | grep IPADD
[root@node1 ~]# docker inspect c535 | grep IPAdd
            "SecondaryIPAddresses": null,
            "IPAddress": "172.20.87.2",
                    "IPAddress": "172.20.87.2",
在node2配置docker然后开启一个容器

[root@node2 ~]# docker run -it  centos:latest /bin/bash
[root@2e6c4d8d8921 /]# ping 172.20.87.1
PING 172.20.87.1 (172.20.87.1) 56(84) bytes of data.
64 bytes from 172.20.87.1: icmp_seq=1 ttl=61 time=1.42 ms
64 bytes from 172.20.87.1: icmp_seq=2 ttl=61 time=0.540 ms
64 bytes from 172.20.87.1: icmp_seq=3 ttl=61 time=0.392 ms
--- 172.20.87.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.392/0.782/1.416/0.453 ms
显示可以ping通node1中的172.20.87.1就可以了。

小结:

1.安装flanner

        yum -y install flanner

2.配置flannel 配置其要访问的etcd数据库所在的位置

        vim /etc/sysconfig/flanner

# Flanneld configuration options  

# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://192.168.2.10:2379"


# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/atomic.io/network"

# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

3.启动flannel

        systemctl start flanneld

4.查看flannel分配的ip网段

        cat /run/flanneld/subnet

5.安装docker

6.将flannel分配的网段写入到daemon.json中

        

[root@node2 ~]# cat /etc/docker/daemon.json

{
        "registry-mirrors": [
                "https://do.nark.eu.org",
                "https://dc.j8.work",
                "https://docker.m.daocloud.io",
                "https://dockerproxy.com",
                "https://docker.mirrors.ustc.edu.cn",
                "https://docker.nju.edu.cn"
        ],
    "hosts": [
                "tcp://0.0.0.0:2375",
                "unix:///var/run/docker.sock"
        ],
    "insecure-registries":[
        "http://192.168.2.81:5000"
    ],
    "bip" : "172.20.11.1/24",
    "mtu" : 1472

}

7.重启docker,如果不能重启,就修改一下远程管理

        systemctl restart docker.service

8.拉取一个centos镜像

        docker pull centos

        docker run -it centos:latest /bin/bash 

9.ping node1容器的ip地址

        ping 172.20.87.1

总结工作原理

1.使用flannel为docker主机(宿主机)分配网段

2.网段的信息以及ip的信息保存在etcd数据库中

3.当flannel开始运行的时候,会从etcd数据库中读取{ "Network" : "172.20.0.0/16" },随机为当前的主机添加一个flannel0网卡172.20.87.1

4.配置docker的daemon文件,让docker0网卡变成和flannel的网段一致,之后docker下创建的容器的ip就在flannel的网段控制之内

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2085390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一次使用PyCharm写C++(失败)

前言&#xff1a; 由于我已经非常习惯使用PyCharm远程连接服务器了&#xff0c;我认为非常方便&#xff0c;所以希望C也能直接用Pycharm。于是尝试在PyCharm上部署C环境。 但是&#xff0c;我失败了。如果您知道问题所在&#xff0c;欢迎给我留言。我认为Pycharm并没有编译C/C…

Windows电脑微信可以登录发消息,但是网页打不开的解决方法:刷新DNS缓存

遇到的问题 今天实验室的电脑突然网页打不开&#xff0c;baidu上不了&#xff0c;chrome浏览器也上不了。但是ping baidu.com能够ping通&#xff0c;github pull也可以&#xff0c;网易云可以听歌。也就是说网络是通的&#xff0c;但是浏览器无法上网。 解决方法 我是通过 W…

直播商城APP开发指南:基于多商户商城系统源码的实现

对于开发者而言&#xff0c;构建一个功能完备、性能优越的直播商城APP已经成为当前技术领域的一个重要方向。本文将以多商户商城系统源码为基础&#xff0c;深入探讨如何高效开发一个直播商城APP。 一、多商户商城系统的核心概念 多商户商城系统是一种支持多个商家在同一平台…

深度解读SGM41511电源管理芯片I2C通讯协议REG09寄存器解释

REG09 是 SGM41511 的第十个寄存器&#xff0c;地址为 0x09。这是一个只读&#xff08;R&#xff09;寄存器&#xff0c;用于报告各种故障状态。上电复位值&#xff08;PORV&#xff09;为 xxxxxxxx&#xff0c;表示上电时的初始状态是不确定的。这个寄存器提供了充电器当前故障…

【Python机器学习】NLP词频背后的含义——从词频到主题得分

目录 TF-IDF向量及词形归并 主题向量 一个思想实验 一个主题评分算法 一个LDA分类器 LDiA TF-IDF向量&#xff08;词项频率—逆文档频率向量&#xff09;可以帮助我们估算词在文本块中的重要度&#xff0c;我们使用TF-IDF向量和矩阵可以表明每个词对于文档集合中的一小段…

【hot100篇-python刷题记录】【跳跃游戏】

R6-贪心算法 符合贪心的原因是&#xff1a; 我们要走到最后可以每次都选择尽可能远的来走&#xff0c;其次&#xff0c;能走到该步意味着该步以前都能到达。因此&#xff0c;局部最优解可以代表全局最优解。 class Solution:def canJump(self, nums: List[int]) -> bool:#最…

全志/RK安卓屏一体机:智能家居中控屏,支持鸿蒙国产化

智能家居中控屏 智能家居中控屏功能 智能中控屏作为全屋智能解决方案中的重要组成部分&#xff0c;融合智能开关面板、智能音箱、万能遥控、可视对讲、智能网关等设备&#xff0c;用一块屏承担起联动控制、人机交互、信息显示、个性化服务等功能。 智能中控屏是智能家居控制管…

cesium 轨迹线

在智慧城市项目中&#xff0c;轨迹线一般用来表现城市道路的流动效果。和cesium动态线篇效果类似&#xff0c;只是这里是通过设置高亮占比&#xff0c;而不是通过传入一张图片。 1. 自定义TrialFlowMaterialProperty类 1.1. 自定义 TrialFlowMaterialProperty 类 /** Descri…

MES管理系统助力印刷企业实现智能化工艺流程

在印刷这一古老而充满活力的行业中&#xff0c;科技的浪潮正以前所未有的速度重塑着每一个生产环节。随着制造业数字化转型的深入&#xff0c;引入MES管理系统&#xff0c;为印刷企业带来了从原材料入库到成品出库的全流程智能化变革&#xff0c;不仅提升了生产效率&#xff0c…

基于SpringBoot+Vue+MySQL的网上商城系统

系统背景 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们生活水平的不断提高&#xff0c;日常生活中人们对网上商城购物系统方面的要求也在不断提高&#xff0c;购物的人数更是不断增加&#xff0c;使得网上商城购物系统的开发成为必需而且紧迫的事情。网上商…

无人机图传通信模组,抗干扰、稳定传输,8公里图传模组原理

在蔚蓝的天空下&#xff0c;无人机如同自由的精灵&#xff0c;穿梭于云间&#xff0c;为我们捕捉那些令人心动的瞬间。而在这背后&#xff0c;有一项技术正悄然改变着航拍的世界&#xff0c;那就是无人机图传通信模组。今天&#xff0c;就让我们一起揭开它的神秘面纱&#xff0…

在蓝桥云课ROS中快速搭建Arduino开发环境

普通方式 一步步慢悠悠的搭建和讲解需要5-6分钟&#xff1a; 如何在蓝桥云课ROS中搭建Arduino开发环境 视频时间&#xff1a;6分40秒 高效方式 如何高效率在蓝桥云课ROS中搭建Arduino开发环境 视频时间&#xff1a;1分45秒 配置和上传程序到开发板 上传程序又称为下载程序h…

匠心服务·智启新程丨2025华清远见新品发布会在北京隆重举行

2024年8月23日&#xff0c;华清远见教育科技集团的“匠心服务智启新程”2025新品发布会在北京隆重举行。云集多位行业专家学者、知名企业代表&#xff0c;聚焦市场新动向&#xff0c;站在行业技术最前沿&#xff0c;以多元化视角深入解读当前行业面临的新机遇新挑战&#xff0c…

信创环境下怎么做好信创防泄露?

为实现信创环境下的数据防泄露和“一机两用”标准落地&#xff0c;依靠十几年的沙盒技术积累&#xff0c;研发出了支持统信UOS/麒麟等信创OS的沙箱&#xff0c;配合零信任SDP网关&#xff0c;提高数据安全&#xff0c;实现“一机两用”安全解决方案。 信创防泄漏的需求 信创环…

从每 N 行找出需要数据拼成一行

Excel某表格不规范&#xff0c;每两行6列对应规范表格的一行3列&#xff0c;分别是&#xff1a;第1行第1列或第2行第1列&#xff08;两者重复&#xff0c;取其一即可&#xff09;、第2行第2列、第1行第3列。 ABC1John DoeCompany A2John Doejohn.doeexample.com3Jane SmithCom…

盘点国内外好用的12款文件加密软件|2024年好用的加密软件有哪些

在当今信息化时代&#xff0c;企业和个人都面临着数据泄露的风险。为了保护敏感信息&#xff0c;文件加密软件已经成为不可或缺的工具。本文将盘点国内外好用的12款文件加密软件&#xff0c;并提供其在2024年的使用推荐&#xff0c;帮助用户更好地保护数据安全。 1. 安秉加密软…

【html+css 绚丽Loading】 000024 八方流转杖

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

储能电池热失控监测系统的关键应用场景与安全防护

​ ​储能电池热失控监测系统主要应用于以下几个关键领域&#xff0c;以确保电池系统的安全、稳定运行&#xff0c;并预防因热失控引发的安全事故&#xff1a; ​ ​1.大型可再生能源发电储能 ​ ​这类应用常见于太阳能光伏电站、风力发电场等场景&#xff0c;其中储…

锂电池的使用真有所谓的小技巧吗

个人体会&#xff0c;真有的。 避免&#xff1a;过充过放 使用时间超过8年的锂电&#xff0c;风险很高。 网络信息繁杂 充斥着大量不明所以的内容。 自己实践才行。 掌握方式不合适&#xff0c;必须换电池了。 换过屏幕和电池&#xff0c;使用过程中损坏了。 2015年使用…

5个适合初学者的机器学习算法:线性回归、逻辑回归、决策树、随机森林和K近邻【源码与示例】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…