容器学习之跨主机通信解决方案flannel

        flannel 是 CoreOS 开发的容器网络解决方案,是第三方容器跨主机通信常用解决方案之一。flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 host 间路由,容器间无需 NAT 和 port mapping 就可以跨主机通信。 每个 subnet 都是从一个更大的 IP 池中划分的,flannel 会在每个主机上运行一个叫 flanneld 的 agent,其职责就是从池子中分配 subnet。为了在各个主机间共享信息,flannel 用 etcd(与 consul 类似的 key-value 分布式数据库)存放网络配置、已分配的 subnet、host 的 IP 等信息。

下面开始准备实验环境,实验需要3台虚拟机,一台虚拟机用作配置etcd,另外两台虚拟机host1和host2用作测试主机间通信。

etcd虚拟机为centos7.6,可以通过yum install -y etcd,在安装etcd之前需要先安装epel-release.noarch。

yum -y install epel-release.noarch
yum -y install etcd

安装etcd后修改etcd.conf配置文件

/etc/etcd/etcd.conf

配置etcd.service文件
/usr/lib/systemd/system/etcd.service
重新加载daemon-reload,启动etcd服务
 systemctl daemon-reload
 systemctl restart etcd.service

配置etcd的网络信息,IP地址池,子网信息,后端backend

验证并查看etcd的网络信息

到这里etcd环境配置完成,接下来配置host1和host2的flannl环境

在host1和host2虚拟机上安装flannel软件包

yum -y install epel-release.noarch
yum install -y flannel

在host1和host2上配置flanneld文件

/etc/sysconfig/flanneld

根据/run/flannel/subnet.env信息配置docker.service中bip和mtu

配置完成后重启docker服务

systemctl daemon-reload
systemctl restart docker.service

在host1和host2上查看网卡信息,发现增加了flannel网卡

查看flannel的vxlan信息

在host1和host2上分别创建容器并测试跨主机间通信

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值