18.flannel的配置
Kubernetes网络通信:
(1) 容器间通信:同一个Pod内的多个容器间的通信, lo
(2) Pod通信:Pod IP <--> Pod IP
(3) Pod与Service通信:PodIP <--> ClusterIP
(4) Service与集群外部客户端的通信;
CNI:
flannel
calico
canel
kube-router
... 解决方案:
虚拟网桥
多路复用:MacVLAN
硬件交换:SR-IOV
[root@master ~]# cat /etc/cni/net.d/-flannel.conflist
{
"name": "cbr0",
"plugins": [
{
"type": "flannel",
"delegate": {
"hairpinMode": true,
"isDefaultGateway": true
}
},
{
"type": "portmap",
"capabilities": {
"portMappings": true
}
}
]
}
flannel:
支持多种后端:
VxLAN
() vxlan
() Directrouting
host-gw: Host Gateway #不推荐,只能在二层网络中,不支持跨网络,如果有成千上万的Pod,容易产生广播风暴
UDP: 性能差 flannel的配置参数:
Network:flannel使用的CIDR格式的网络地址,用于为Pod配置网络功能;
10.244.0.0/ ->
master: 10.244.0.0/
node01: 10.244.1.0/
...
node255: 10.244.255.0./ 10.0.0.0/
10.0.0.0/
...
10.255.255.0/ SubnetLen:把Network切分子网供各节点使用时,使用多长的掩码进行切分,默认为24位; SubnetMin:10.244.10.0/ SubnetMax: 10.244.100.0/ Backend:vxlan, host-gw, udp
vxlan:
flannel Pod间跨主机通信原理抓包[root@master ~]# ip rdefault via 172.20.0.1 dev ens3 proto dhcp metric
10.244.0.0/ dev cni0 proto kernel scope link src 10.244.0.1
10.244.1.0/ via 10.244.1.0 dev flannel. onlink
10.244.2.0/ via 10.244.2.0 dev flannel. onlink
172.17.0.0/ dev docker0 proto kernel scope link src 172.17.0.1
172.20.0.0/ dev ens3 proto kernel scope link src 172.20.0.91 metric
从路由可以看出 Pod cni0 -----> flannel.1 -----> 物理网卡 -----> 对端
[root@master ~]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP group default qlen
link/ether ::::b2:ca brd ff:ff:ff:ff:ff:ff
inet 172.20.0.91/ brd 172.20.255.255 scope global noprefixroute dynamic ens3
valid_lft 2412sec preferred_lft 2412sec
: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UP group default
link/ether :::::b4 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/ brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
: flannel.: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default
link/ether :e1::::c1 brd ff:ff:ff:ff:ff:ff
inet 10.244.0.0/ scope global flannel.
valid_lft forever preferred_lft forever
: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UP group default qlen
link/ether 0a::0a:f4:: brd ff:ff:ff:ff:ff:ff
inet 10.244.0.1/ scope global cni0
valid_lft forever preferred_lft forever
: veth0f580b07@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue master cni0 state UP group default
link/ether a2:::9b:b5:dc brd ff:ff:ff:ff:ff:ff link-netnsid
: vethb8510761@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue master cni0 state UP group default
link/ether 1a::6b:::fc brd ff:ff:ff:ff:ff:ff link-netnsid
: vethfc114a8b@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue master cni0 state UP group default
link/ether fa:ec:f9:ee:: brd ff:ff:ff:ff:ff:ff link-netnsid
: veth023640f@if30028: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue master docker0 state UP group default
link/ether d2:8a::e6:8f: brd ff:ff:ff:ff:ff:ff link-netnsid
: br-973161700d44: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UP group default
link/ether :::2e:ec: brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/ brd 172.18.255.255 scope global br-973161700d44
valid_lft forever preferred_lft forever
: vethfdee34f@if13226: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue master docker0 state UP group default
link/ether 7e:3e:6a:e2::f0 brd ff:ff:ff:ff:ff:ff link-netnsid
: veth49aa01b@if13228: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue master br-973161700d44 state UP group default
link/ether b2:::6e:4d:da brd ff:ff:ff:ff:ff:ff link-netnsid
cni0 提供Pod网络共享的地址来源
flannel.1 是对数据包进行 vxlan封装
[root@master ~]# brctl show cni0
bridge name bridge id STP enabled interfaces
cni0 .0a580af40001 no veth0f580b07
vethb8510761
vethfc114a8b
[root@master ~]# brctl show flannel.
bridge name bridge id STP enabled interfaces
flannel. can't get info Operation not supported
抓包
15:13:26.796845 IP 172.20.0.93.52954 > 172.20.0.76.otv: OTV, flags [I] (0x08), overlay 0, instance 1
IP 10.244.1.175 > 10.244.2.223: ICMP echo request, id 3072, seq 221, length 64
18.flannel的配置的更多相关文章
- 18.flannel
18.flannel docker有四种常用网络 bridge joined opended 直接共享使用节点的网络名称空间 none k8s网络通信: 容器间的通信: 同一个Pod内的多个容器之间通 ...
- DOCKER学习_005:Flannel网络配置
一 简介 Flannel是一种基于overlay网络的跨主机容器网络解决方案,也就是将TCP数据包封装在另一种网络包里面进行路由转发和通信, Flannel是CoreOS开发,专门用于docker多机 ...
- Ubuntu 18.04 下配置 HAXM 加速 Android模拟器
Ubuntu 18.04 下配置 HAXM 加速 Android模拟器 最近在vmware环境下搭建ubuntu18.04开发环境,开始发现总是运行android模拟器在console提示加载如下错误 ...
- Ubuntu 18.04安装配置Apache Ant
Ubuntu 18.04安装配置Apache Ant 文章目录 Ubuntu 18.04安装配置Apache Ant 下载 执行以下命令 `/etc/profile`中配置环境变量 载入配置 测试 执 ...
- Ubuntu 18.04 安装配置 go 语言
Ubuntu 18.04 安装配置 go 语言 1.下载 下载 jdk 到 Downloands 文件夹下 cd 进入 /usr/local, 创建 go 文件夹, 然后 cd 进这个文件夹 cd / ...
- K8s二进制部署单节点 etcd集群,flannel网络配置 ——锥刺股
K8s 二进制部署单节点 master --锥刺股 k8s集群搭建: etcd集群 flannel网络插件 搭建master组件 搭建node组件 1.部署etcd集群 2.Flannel 网络 ...
- k8s1.4.3安装实践记录(1)-etcd、docker、flannel安装配置
虚拟机:VMware® Workstation 12 Pro 系统:CentOS Linux release 7.2.1511 (Core) 3.10.0-327.el7.x86_64 由于刚开始学习 ...
- CI 2.2 + smarty 3.1.18 完美整合配置成功
CI 2.2 + smarty 3.1.18 配置成功 一.准备文档下载 (CI 框架和smarty) 二.将Smarty-3.1.18 源码包里面的libs文件夹copy到ci的项目目录appli ...
- Ubuntu 18的网络配置
包括Ubuntu 18.04和18.10,设置为静态IP及DNS. sudo vim /etc/netplan/50-cloud-init.yaml network: ethernets: enp4s ...
随机推荐
- 如何使用纯CSS制作特效导航条?
先上张图,如何使用纯 CSS 制作如下效果? 在继续阅读下文之前,你可以先缓一缓.尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果. OK,继续.这个效果是我在业务开发的 ...
- json 按照字段分类
let arr = [ { Category:'A', Amount:, },{ Category:'B', Amount:, },{ Category:'A', Amount:, },{ Categ ...
- 设计模式系列之单例模式(Singleton Pattern)
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式.这种模式涉及到一个单一的类,该类负责创建自己的对象 ...
- ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门
一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...
- Oracle获取表字段名,字段类型,字段长度,注释
SELECT b.comments as 注释, a.column_name as 列名, a.data_type || '(' || a.data_length || ')' as 数据类型, a. ...
- 从0开始的Python学习009参数
默认参数 对于参数有时候我们希望他是可选的,前面介绍了函数柯里化,当然还有其他的解决方案.如果不想给某些参数提供值的话,就让这写参数使用默认值.在函数定义的时候给参数赋值使用(参数,参数=值..... ...
- 【转贴】一次 JDBC 与 MySQL 因 “CST” 时区协商误解导致时间差了 14 或 13 小时的排错经历
原文:https://juejin.im/post/5902e087da2f60005df05c3d ------------------------------------------------- ...
- zabbix监控Oracle
可监控项 使用zabbix监控oracle数据库需要借助第三方的插件,目前使用较多的是orabbix.目前维护到了1.2.3版本.关于oracle自带的监控项目有以下几个: DB Version (i ...
- Windows操作系统分类
Windows主要有桌面版和服务器版.移动版三个版本 桌面版现在主流是WindowsXP.WindowsVista.Windows7.Windows8.Windows10 其中WindowsXP已经被 ...
- 使用time+dd测试硬盘读写速度
命令:time dd if=/dev/zero bs=1M count=2048 of=direct_2G 此命令为在当前目录下新建一个2G的文件 Demo如下: 写速度: time dd if= ...