本文介绍: 将数据包原封不动的传递到目标容器。覆盖网络是建立在另一个网络之上并由其基础设施支持的虚拟网络。一个分组封装在另一个分组内来将网络服务与底层基础设施分离。在将封装的数据包转发到端点后。容器之间只能通过在主机上做端口映射进行通信。这种端口映射方式对很多集群应用来说极不方便。按实现原理可分别直接路由方式、桥接方式。从不同宿主机容器到其他宿主机容器。所看到的配置是一致的。对接收到的数据进行封包和转发。容器都具有全集群唯一的虚拟。容器之间直接使用自己的。创建一个新的虚拟网卡。故配置文件中还要设置。
跨主机通信
Docker
默认的网络环境下
,
单台主机上的
Docker
容器可以通过
docker0
网桥直接通信
,
而不同主机上的
Docker
容器之间只能通过在主机上做端口映射进行通信。
默认的网络环境下
,
单台主机上的
Docker
容器可以通过
docker0
网桥直接通信
,
而不同主机上的
Docker
容器之间只能通过在主机上做端口映射进行通信。
这种端口映射方式对很多集群应用来说极不方便。
如果能让
Docker
容器之间直接使用自己的
IP
地址进行通信
,
会解决很多问题。
Docker
容器之间直接使用自己的
IP
地址进行通信
,
会解决很多问题。
按实现原理可分别直接路由方式、桥接方式
(
如
pipework)
、
Overlay
隧道方式
(
如
flannel
、
ovs+gre)
等
(
如
pipework)
、
Overlay
隧道方式
(
如
flannel
、
ovs+gre)
等
Flannel特点
1.
使集群中的不同
Node
主机创建的
Docker
容器都具有全集群唯一的虚拟
IP
地址。
使集群中的不同
Node
主机创建的
Docker
容器都具有全集群唯一的虚拟
IP
地址。
2.
建立一个覆盖网络
(overlay network),
通过这个覆盖网络
,
将数据包原封不动的传递到目标容器。覆盖网络是建立在另一个网络之上并由其基础设施支持的虚拟网络。覆盖网络通过将
建立一个覆盖网络
(overlay network),
通过这个覆盖网络
,
将数据包原封不动的传递到目标容器。覆盖网络是建立在另一个网络之上并由其基础设施支持的虚拟网络。覆盖网络通过将
一个分组封装在另一个分组内来将网络服务与底层基础设施分离。在将封装的数据包转发到端点后
,
将其解封装。
,
将其解封装。
3.
创建一个新的虚拟网卡
flannel0
接收
docker
网桥的数据
,
通过维护路由表
,
对接收到的数据进行封包和转发
(vxlan)
。
创建一个新的虚拟网卡
flannel0
接收
docker
网桥的数据
,
通过维护路由表
,
对接收到的数据进行封包和转发
(vxlan)
。
4. etcd
保证了所有
node
上
flanned
所看到的配置是一致的。同时每个
node
上的
flanned
监听
etcd
上的数据变化
,
实时感知集群中
node
的变化。
保证了所有
node
上
flanned
所看到的配置是一致的。同时每个
node
上的
flanned
监听
etcd
上的数据变化
,
实时感知集群中
node
的变化。
为了兼容
flannel,
将默认开启
v2
版本
,
故配置文件中还要设置
:
flannel,
将默认开启
v2
版本
,
故配置文件中还要设置
:
vi
/
etc
/
profile
export ETCDCTL_API
=
2
#
指定
etcdctl
命令的版本为
v2
source
/
etc
/
profile
api 2
使用方法
使用方法
ETCDCTL_API
=
2
etcdctl set key valueETCDCTL_API
=
2
etcdctl ls
/ETCDCTL_API
=
2
etcdctl del
/ —
prefix
api 3
使用方法
使用方法
ETCDCTL_API
=
3
etcdctl put key value
=
3
etcdctl put key value
ETCDCTL_API
=
3
etcdctl get
/
=
3
etcdctl get
/
ETCDCTL_API
=
3
etcdctl del
/ —
prefix
=
3
etcdctl del
/ —
prefix
flannel
安装与配置
安装与配置
下载或上传
flannel
安装包
flannel
安装包
创建
flannel
安装目录
flannel
安装目录
mkdir
–
p
/
opt
/
flannel
解压到安装目录
tar xzf flannel
–
v0
.
11.0
–
linux
–
amd64
.
tar
.
gz
–
C
/
opt
/
flannel
查看解压后文件
cd
/
opt
/
flannel
&&
ls
为
flannel
创建一个
systemd
服务
,
用于后台启动
flannel
创建一个
systemd
服务
,
用于后台启动
vim
/
etc
/
systemd
/
system
/
flanneld
.
servicesystemctl daemon
–
reload
&&
systemctl restart flanneld
验证
flannel
网络
flannel
网络
ifconfig
docker
配置
配置
查看
flannel
分配的网络参数
(
在
Flannel
运行之后
,
会生成一个环境变量文件
,
包含了当前主机要使用
flannel
通讯的相关参数
flannel
分配的网络参数
(
在
Flannel
运行之后
,
会生成一个环境变量文件
,
包含了当前主机要使用
flannel
通讯的相关参数
cat
/
run
/
flannel
/
subnet
.
env
创建
Docker
运行参数
(
使用
flannel
提供的脚本将
subnet.env
转写成
Docker
启动参数
Docker
运行参数
(
使用
flannel
提供的脚本将
subnet.env
转写成
Docker
启动参数
/
opt
/
flannel
/
mk
–
docker
–
opts
.
sh
–
d
/
run
/
flannel
/
docker_opts
.
env
–
c
创建好的启动参数位于
/run/flannel/docker_opts.env
文件中
,
可使用
cat
命令查看
/run/flannel/docker_opts.env
文件中
,
可使用
cat
命令查看
cat /run/flannel/docker_opts.env
修改
Docker
启动参数
Docker
启动参数
vim
/
lib
/
systemd
/
system
/
docker
.
service
下面是
docker.service
要修改的地方
docker.service
要修改的地方
重新加载
systemd
配置
,
并重启
Docker
systemd
配置
,
并重启
Docker
systemctl daemon
–
reload
&&
systemctl restart docker
&&
systemctl status docker
查看是否应用成功
ifconfig
测试
flannel
flannel
docker run
–
it
—
name
=
centos centos bash
cat
/
etc
/
hosts
docker inspect bridge
从不同宿主机容器到其他宿主机容器
ping
–
c3
192.168
.
27.120ping
–
c3
10.0
.
20.2
原文地址:https://blog.csdn.net/m0_67771087/article/details/135494951
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_57122.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。