Kubernetes网络方案 Flannel和calico
摘抄某博客
1. Flannel
Flannel是为kubernetes设计的一个非常简洁的多节点三层网络方案,解决不同host上的容器互联问题,原理是为每个host分配一个subnet,容器从此subnet中分配IP,这些IP可以在host间路由,容器间无需NAT和port mapping就可以跨主机通信,每个subnet都是从一个更大的IP池中划分的,flannel会在每个host上面运行一个守护进程flanneld,其职责就是从大池子中分配subnet,为了各个主机间共享信息,flannel用etcd存放网络配置、已分配的subnet、host的IP 等信息。
Flannel的节点间有三种通信方式:
1. VXLAN:默认配置,利用内核级别的VXLAN来封装host之间传送的包。
2. Host-gw:二层网络配置,不支持云环境,通过在host的路由表中直接创建到其他主机subnet的路由条目。
3. Udp:通常用于debug
提示:Subnet在主机上的设置路径/run/flannel/subnet.env
2. Calico
Calico是一个比较完整的项目,比较注重安全转为云环境设置,是一个三层的数据中心网络架构,无需依托overlay网络,经过生产环境的验证。
Calico在每个计算节点利用Linux Kernel实现了一个高效的vRouter来负责数据转发,而每个vRouter通过BGP协议负责把自己上运行的workload的路由信息向整个Calico网络内传播,小规模部署可以直接互联,大规模部署可通过指定的BGP route reflector来完成。
Calico基于iptables还提供了丰富而灵活的网络Policy,保证通过各个节点上的ACLs来提供workload的多租户隔离、安全组以及其他可达性限制等功能。
3. NetworkPolicy
1) kube-apiserver必须开启运行时extensions/v1beta1/networkpolicies,即设置启动参数:--runtime-config=extensions/v1beta1/networkpolicies=true
2) kubelet必须启用cni网络插件,即设置启动参数:--network-plugin=cni
3) kube-proxy必须启用iptables代理模式,这是默认模式,可以不用设置
4) kube-proxy不得启用--masquerade-all,这会跟calico冲突
5) 安装calico组件
6) Namespaces中添加
annotations:
net.beta.kubernetes.io/network-policy: |
{
"ingress": {
"isolation": "DefaultDeny"
}
}
实现多租户,namespaces之间隔离
Kubernetes网络方案 Flannel和calico的更多相关文章
- Kubernetes网络方案的三大类别和六个场景
欢迎访问网易云社区,了解更多网易技术产品运营经验. 本文章根据网易云资深解决方案架构师 王必成在云原生用户大会上的分享整理. 今天我将分享个人对于网络方案的理解,以及网易云在交付 Kubernetes ...
- Kubernetes网络插件Flannel的三种工作模式
跨主机通信的一个解决方案是Flannel,由CoreOS推出,支持3种实现:UDP.VXLAN.host-gw 一.UDP模式(性能差) 核心就是通过TUN设备flannel0实现(TUN设备是工作在 ...
- Kubernetes网络之Flannel工作原理
目录 1.Docker网络模式 1.1 bridge网络的构建过程 1.2 外部访问 2.Kubernetes网络模式 2.1 同一个Pod中容器之间的通信 2.2 不同Pod中容器之间的通信 2.3 ...
- kubernetes网络之Flannel
简介 Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址. 在默认的Dock ...
- 容器中跨主机的网络方案-flannel
容器中的网络是建立docker集群的重要内容. 本文将介绍如何用flannel实现容器的多节点互通. 下图是flannel的实现原理,摘自: http://docker-k8s-lab.readthe ...
- k8s网络之Flannel网络
k8s网络主题系列: 一.k8s网络之设计与实现 二.k8s网络之Flannel网络 三.k8s网络之Calico网络 简介 Flannel是CoreOS团队针对Kubernetes设计的一个网络规划 ...
- 浅谈K8S cni和网络方案
此文已由作者黄扬授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在早先的k8s版本中,kubelet代码里提供了networkPlugin,networkPlugin是一组接 ...
- DevOps专题|玩转Kubernetes网络
Kubernetes无疑是当前最火热的容器编排工具,网络是kubernetes中非常重要的一环, 本文主要介绍一些相应的网络原理及术语,以及kubernetes中的网络方案和对比. Kubernete ...
- [转帖]Kubernetes CNI网络最强对比:Flannel、Calico、Canal和Weave
Kubernetes CNI网络最强对比:Flannel.Calico.Canal和Weave https://blog.csdn.net/RancherLabs/article/details/88 ...
随机推荐
- ansible--03
一. Ad-hoc命令简介 1. 格式:ansible <host> [opion] 2. option参数: -v:输出详细的执行过程, -vvv最详细的结果 -i:指定inventor ...
- 在yii中使用memcache
yii中可以很方便的使用memcache 一.配置在main.php的components中加入cache配置 array( 'components'=>array( 'cache'=>a ...
- Discuz!教程之删除注释云平台JS,加快DISCUZ访问
很多站长反应打开网站的时候有个http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1一直在加载中,导致网页打开速度很慢,这个时候你可以按本文教程 ...
- 造成MySQL全表扫描的原因
全表扫描是数据库搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止.通常在数据库中,对无索引的表进行查询一般称为全表扫描:然而有时候我们即便添加了索引,但当我们的SQL语句写的不合理的时候也 ...
- Linux 无法连接网络排查方法
.hosts文件增加 127.0.0.1 对localhost的解析. .检查/etc/resove.cnf dns配置是否正确 .route命令检查是否有默认路由,没有就 route add 网段 ...
- P1134 阶乘问题
题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001, ...
- 0CO_PC_01 成本对象控制: 计划/实际数据
用户提出要取生产订单的成本分析明细,分析目标和实际的差异. 查了一下,可以使用 BW标准数据源:0CO_PC_01 其中,值类型:10(实际).20(计划).30(目标) 货币类型:20(成本控制范围 ...
- PHP原生开发的各大音乐平台API接口
支持以下音乐平台 网易云音乐 QQ音乐 酷狗音乐 酷我音乐 虾米音乐 百度音乐 一听音乐 咪咕音乐 荔枝FM 蜻蜓FM 喜马拉雅FM 全民K歌 5sing原创 5sing翻唱 若是数据获取失败 方案一 ...
- 定心丸!ZipperDown漏洞分析与修复建议
本文由 网易云发布. 近日,盘古实验室对外披露了ZipperDown漏洞,该漏洞是盘古团队针对不同客户的iOS应用安全审计的过程中发现的,大约有10%的iOS应用会受到此漏洞的影响. 利用此漏洞可以 ...
- 关于VC++6.0与WIN10系统不兼容的解决办法
记得第一次接触C语言,用的第一个编译器就是VC++6.0.当时自己的是Win10系统,第一次安装就打不开,后来网上一查说是系统兼容性的问题.今天室友突然想安装VC++6.0,也遇到了兼容的问题,我就帮 ...