2019独角兽企业重金招聘Python工程师标准>>>

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,这个工作略微复杂,我们下节完成。

转载于:https://my.oschina.net/u/2397560/blog/1518972

flannel 概述 - 每天5分钟玩转 Docker 容器技术(58)相关推荐

  1. DaemonSet 典型应用场景 - 每天5分钟玩转 Docker 容器技术(129)

    Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本.DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本. DaemonS ...

  2. 部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)

    上节我们通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署. 安装 Pod 网络 要 ...

  3. Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)

    Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 Kubernetes Cluster ...

  4. 通过例子理解 k8s 架构 - 每天5分钟玩转 Docker 容器技术(122)

    为了帮助大家更好地理解 Kubernetes 架构,我们部署一个应用来演示各个组件之间是如何协作的. 执行命令 kubectl run httpd-app --image=httpd --replic ...

  5. 17、《每天5分钟玩转Docker容器技术》学习--Multi-host网络

    ------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...

  6. k8s 各种网络方案 - 每天5分钟玩转 Docker 容器技术(170)

    网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 Core ...

  7. 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)

    上一节我们讨论了 Service 部署的两种模式:global mode 和 replicated mode.无论采用 global mode 还是 replicated mode,副本运行在哪些节点 ...

  8. 如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

    上一节已经部署好了 Graylog,现在学习如何用它来管理日志. 首先启动测试容器. docker run -d \ --log-driver=gelf \ --log-opt gelf-addres ...

  9. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

最新文章

  1. 用Leangoo泳道完美实现Scrum任务看板
  2. str_repeat() 函数
  3. 采用dlopen、dlsym、dlclose dlopen dlerror加载动态链接库【总结】
  4. python中set函数是什么数据类型_阿博Python之路-详解Set数据类型
  5. 11gR2 RAC GoldenGate的HA配置
  6. DOM树和Render树的创建
  7. 旗正规则引擎内存表出错的原因及解决方法
  8. mysql下载是port报错_mysql group replication添加复制节点报错
  9. Root Motion的脚本处理
  10. 20165329 四则运算2
  11. winForm连接数据库(sqlserver2005)
  12. c语言仿宋gb2312字体,仿宋gb2312字体
  13. xy苹果助手安装_xy苹果助手
  14. 合并报表和汇总报表之如何合并报表
  15. 数学归纳法与递归推演
  16. 设置chrome浏览器在一个标签页中打开链接自动跳转到新标签页
  17. java浮点数计算程序_计算器程序.可以准确进行浮点数运算
  18. 另一大短视频网址无水印下载,爱了吗?
  19. Editplus如何设置中文页面
  20. unity 控制点 贝塞尔曲线_Handles.DrawBezier 绘制贝塞尔曲线

热门文章

  1. 详解亚马逊:物流为何是电商命脉
  2. 开发人员绩效考核中有效bug数的统计
  3. C语言宏定义使用技巧
  4. ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件!
  5. 以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格
  6. 用好ASP.NET 2.0的URL映射
  7. strcpy,memcpy和memmove区别
  8. 【Qt】调用Python函数:无参数、单个参数、多个参数、数组参数
  9. php 指定表格字体大小_PHPExcel根据单元格值设置字体/背景颜色
  10. Java项目:生活旅行分享平台(java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql)