flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)
博客专区 > CloudMAN 的博客 > 博客详情
flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)
CloudMAN 发表于2个月前
flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)
  • 发表于 2个月前
  • 阅读 16
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: flannel 是 CoreOS 开发的容器网络解决方案,本章我们将通过实践掌握 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 等信息。

数据包如何在主机间转发是由 backend 实现的。flannel 提供了多种 backend,最常用的有 vxlan 和 host-gw,我们将在本章讨论这两种 backend。其他 backend 请参考 https://github.com/coreos/flannel。

接下来我们就开始实践 flannel。

实验环境描述

本章实验环境如图所示:279.png

etcd 部署在 192.168.56.101,host1 和 host2 上运行 flanneld,首先安装配置 etcd。

安装配置 etcd

在 192.168.56.101 上运行如下脚本: 

ETCD_VER=v2.3.7

DOWNLOAD_URL=https://github.com/coreos/etcd/releases/download

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

mkdir -p /tmp/test-etcd && tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/test-etcd --strip-components=1

cp /tmp/test-etcd/etcd* /usr/local/bin/


该脚本从 github 上下载 etcd 的可执行文件并保存到 /usr/local/bin/,启动 etcd 并打开 2379 监听端口。

etcd -listen-client-urls http://192.168.56.101:2379 -advertise-client-urls http://192.168.56.101:2379

测试 etcd 是否可用:

etcdctl --endpoints=192.168.56.101:2379 set foo "bar"

etcdctl --endpoints=192.168.56.101:2379 get foo


280.png

可以正常在 etcd 中存取数据了。

接下来需要安装和配置 flannel,这个工作略微复杂,我们下节完成。

二维码+指纹.png

标签: Docker 容器 教程
共有 人打赏支持
粉丝 278
博文 259
码字总数 156837
×
CloudMAN
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: