flannel概述-每天5分钟玩转 Docker 容器技术(58)
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。
实验环境描述本章实验环境如图所示:
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
可以正常在 etcd 中存取数据了。
接下来需要安装和配置 flannel,这个工作略微复杂,我们下节完成。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/53771.html
linux相关文章
- docker搭建kafka集群实践
- Docker服务的删除本地镜像命令(docker rmi 镜像id)
- 【Docker 系列】docker 学习 三
- 【Docker 系列】docker 学习十,Compose 编写规则及wp 实战
- 在Linux系统中安装Docker容器(linux下安装docker)
- 【技术干货】Docker精华学习资料集锦,老司机快上车
- 在 overlay 中运行容器 – 每天5分钟玩转 Docker 容器技术(51)
- 外部世界如何访问容器? – 每天5分钟玩转 Docker 容器技术(37)
- 实现容器的底层技术 – 每天5分钟玩转 Docker 容器技术(30)
- Docker 镜像小结 – 每天5分钟玩转 Docker 容器技术(21)
- 搭建本地 Registry – 每天5分钟玩转 Docker 容器技术(20)
- RUN vs CMD vs ENTRYPOINT – 每天5分钟玩转 Docker 容器技术(17)
- Dockerfile 常用指令 – 每天5分钟玩转 Docker 容器技术(16)
- Docker 组件如何协作?- 每天5分钟玩转容器技术(8)
- 使用 Docker 轻松安装 MySQL 数据库(docker安装mysql)
- 的docker容器创建并使用Docker容器启动Redis数据库(创建并启动名为redis)