tip:本节课的学习视频没有找到,所以有的地方可能不是很清晰。

可选的几种网络方案

openvswitch



是一种主流的虚拟化大二层技术

灵活 对现有物理网络没要求 业界主流

软件封装导致性能低 复杂度比较高 Trouble Shooting难

路由技术



一种结合了Linux路由功能的“正统”网络技术

常规路由技术

使用传统网络技术

简单

高性能

与现有网络融为一体

灵活性低

新设计的Flannel

Flannel网络方案详解



原始数据是在起始节点的 Flannel服务上进行UDP封装 的,投递到目的节点后就被 另一端的Flannel服务还原成 了原始的数据包,两边的 Docker服务都感觉不到这个 过程的存在。

用Etcd存储子网拓扑与路由表 怎么确保每个Node上的Dockers引擎用不同的IP地址段,这个事情看起来很诡异,但真相十分简单。其实只是

单纯的因为Flannel通过Etcd分配了每个节点可用的IP地址段后,偷偷的修改了Docker的启动参数,见下图。



这个IP范围是由Flannel自动分配的,由Flannel通过保存在Etcd服务中的记录确保它们不会重复。



需要在每台Node上都安装flannel。flannel软件的下载地址为 https://github.com/ coreos/ flannel/releases。将下载的压缩包 flannel--linux-amd64.tar.gz解压,把二进制文件 flanneld和mk-docker-opts.sh复制到/usr/bin(或其他PATH环境变 量中的目录),即可完成对flannel的安装。

使用systemd系统为例对flanneld服务进行配置。 编辑服务配置文件/usr/lib/systemd/system/flanneld.service:

[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
Before=docker.service
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flanneld EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=/usr/bin/flanneld -etcd-endpoints=${FLANNEL_ETCD} $FLANNEL_OPTIONS [Install]
RequiredBy=docker.service
WantedBy=multi-user.target

编辑配置文件/etc/sysconfig/flanneld,设置etcd的URL地址(Master上安装的etcd节点地址)

FLANNEL_ETCD="http://192.168.1.128:4001"

在启动flannel之前,需要在etcd中添加一条网络配置记录,这个配置将用于 flannel分配给每个Docker的虚拟IP地址段。

# etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'

由于flannel将覆盖docker0网桥,所以如果Docker服务已启动,则停止 Docker服务,然后systemctl restart flanneld

在每个节点上执行:

sudo mk-docker-opts.sh -i
source /run/flannel/subnet.env
sudo rm /var/run/docker.pid
sudo ifconfig docker0 ${FLANNEL_SUBNET}

重启动一次Docker,这样配置就完成了。

Flannel很新颖很不错 实际在可控的网络里,路由的方案则性能

最好,适合生产用,配合Quagga 来做到 自动路由更新

Docker系列(十二):Kubernetes的分布式网络实践的更多相关文章

  1. Docker系列(十):Kubernetes集群入门

    kubenetes安装 官网:https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/getting-started- guide ...

  2. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  3. SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据

    原文:SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Se ...

  4. Alamofire源码解读系列(十二)之请求(Request)

    本篇是Alamofire中的请求抽象层的讲解 前言 在Alamofire中,围绕着Request,设计了很多额外的特性,这也恰恰表明,Request是所有请求的基础部分和发起点.这无疑给我们一个Req ...

  5. struts2官方 中文教程 系列十二:控制标签

    介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项 ...

  6. 爬虫系列(十二) selenium的基本使用

    一.selenium 简介 随着网络技术的发展,目前大部分网站都采用动态加载技术,常见的有 JavaScript 动态渲染和 Ajax 动态加载 对于爬取这些网站,一般有两种思路: 分析 Ajax 请 ...

  7. Docker系列(二):通过Docker安装使用 Kubernetes (K8s)

    Docker社区版从17.12版本开始已经提供了对Kubernetes的支持.但是由于其安装过程依赖的镜像服务在国内访问很不稳定,很多朋友都无法配置成功.我们提供了一个简单的工具帮助大家开启Docke ...

  8. Alamofire源码解读系列(十二)之时间轴(Timeline)

    本篇带来Alamofire中关于Timeline的一些思路 前言 Timeline翻译后的意思是时间轴,可以表示一个事件从开始到结束的时间节点.时间轴的概念能够应用在很多地方,比如说微博的主页就是一个 ...

  9. 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

随机推荐

  1. LeetCode 67. Add Binary【个位补0,不必对齐】【easy】

    Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...

  2. Activiti学习笔记目录

    1.Activiti学习笔记1 — 下载与开发环境的配置: 2.Activiti学习笔记2 — HelloWorld: 3.Activiti学习笔记3 — 流程定义: 4.Activiti学习笔记4 ...

  3. 2018-12-22-WPF-在绑定表达式添加计算

    title author date CreateTime categories WPF 在绑定表达式添加计算 lindexi 2018-12-22 16:12:56 +0800 2018-12-22 ...

  4. mysql连接数问题备份

    一. max_connections 这是是查询数据库当前设置的最大连接数 mysql> show variables like '%max_connections%';+----------- ...

  5. caffe安装 总结

    用的是matlab2018a,搞了一天 ubuntu 系统下的Caffe环境搭建 https://blog.csdn.net/hjimce/article/details/48781693 caffe ...

  6. Android开发 SeekBar开发记录

    前言 开发记录博客不是讲解使用博客,更多的是各种功能与点子的记录 基本使用 <SeekBar android:layout_width="match_parent" andr ...

  7. MySQL语句基本操作增删改查

    select * from 表名; --------->效率低

  8. Windows taskkill

    TASKKILL [/S system [/U username [/P [password]]]]         { [/FI filter] [/PID processid | /IM imag ...

  9. Linux课程---15、域名相关

    Linux课程---15.域名相关 一.总结 一句话总结: 先购买域名,再备案,再解析,域名即可使用 1.域名备案是怎么回事(比如二级域名,三级域名)? 每个二级域名需要备案一次,三级域名不需要备案, ...

  10. 资源-Android:Android

    ylbtech-资源-Android:Android 1.返回顶部 1. https://developer.android.google.cn/studio 2. 2.返回顶部 1. 1.1 1.2 ...