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

上一节我们在 flannel 网络中部署了容器,本节讨论 flannel 的连通和隔离特性。

flannel 网络连通性

测试 bbox1 和 bbxo2 的连通性:

bbox1 能够 ping 到位于不同 subnet 的 bbox2,通过 traceroute 分析一下 bbox1 到 bbox2 的路径。

  1. bbox1 与 bbox2 不是一个 subnet,数据包发送给默认网关 10.2.40.1(docker0)。

  2. 根据 host1 的路由表(下图),数据包会发给 flannel.1。

  3. flannel.1 将数据包封装成 VxLAN,通过 enp0s8 发送给 host2。

  4. host2 收到包解封装,发现数据包目的地址为 10.2.17.2,根据路由表(下图)将数据包发送给 flannel.1,并通过 docker0 到达 bbox2。

数据流向如图所示:

另外,flannel 是没有 DNS 服务的,容器无法通过 hostname 通信。

flannel 网络隔离

flannel 为每个主机分配了独立的 subnet,但 flannel.1 将这些 subnet 连接起来了,相互之间可以路由。本质上,flannel 将各主机上相互独立的 docker0 容器网络组成了一个互通的大网络,实现了容器跨主机通信。flannel 没有提供隔离。

flannel 与外网连通性

因为 flannel 网络利用的是默认的 bridge 网络,所以容器与外网的连通方式与 bridge 网络一样,即:

  1. 容器通过 docker0 NAT 访问外网

  2. 通过主机端口映射,外网可以访问容器

详细讨论可参考前面 bridge 网络相关章节。

以上是 flannel vxlan 的相关知识点,下一节我们讨论 flannel host-gw backend。

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

flannel 的连通与隔离 - 每天5分钟玩转 Docker 容器技术(61)相关推荐

  1. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)

    在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster  Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 04使用模板显示内容
  2. py导入包异常跳出_Python运行Unittest作为包导入错误
  3. 写给前端工程师的 Flutter 详细教程
  4. ClientDataSet建立索引和排序
  5. 215. 数组中的第K个最大元素 golang
  6. 一个百分号%引起的事故
  7. 计算机第十三套试题,2012年计算机二级VB第十三套上机试题及解析
  8. (二)移动 GPU 和桌面 GPU 的差距有哪些?
  9. ws2812 程序设计与应用(1)DMA 控制 PWM 占空比原理及实现(STM32)
  10. mac安装软件的一般目录
  11. 为什么光合作用要叶绿素?
  12. Win7电脑右下角声音图标小喇叭出现红叉没有声音解决方案
  13. 一度智信电商开网店怎么样?
  14. 【NeurIPS 2019】Yoshua Bengio报告:深度学习系统从1代到2代,未来将朝何处发展?
  15. Tensorflow 源码编译笔记(C++/C层)
  16. cubemx—编码器测速(其中遇到的问题分析以及部分解决办法)
  17. java liferay 框架_liferay6.2-生成布局模板
  18. 安装SQL Server 2000时“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误的排除
  19. 自定义镜像上传阿里云
  20. 页面图钉_图钉—将REST API转变为实时API的开源库

热门文章

  1. JavaScript之如何对客户端进行检测
  2. SparkSQL使用之Thrift JDBC server
  3. 属性(Properties)和字段在C#中的关系
  4. ruid/euid/suid
  5. linux 里常用的几个查找命令
  6. linux下如何将mysql加入环境变量
  7. Ext4文件系统架构分析(一)
  8. Linux 小知识翻译 - 「架构」(arch)
  9. Canvas VS . SVG
  10. 为打击网络喷子 Instagram禁评论攻击