calico网络模式(一文学会Calico网络自定义)

2025-08-05 15:30:01 0

calico网络模式(一文学会Calico网络自定义)

今天给各位分享一文学会Calico网络自定义的知识,其中也会对一文学会Calico网络自定义进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

一文学会Calico网络自定义

Calico支持多个容器网络选项,用于可伸缩性、网络性能和与现有基础设施的互操作性。

不同的网络实现更适合不同的环境。Calico提供了几种不需要封装的基于IP路由的网络实现。如果您的部署需要封装,Calico提供覆盖网络(IP in IP或VXLAN)。Calico还支持使用其他Kubernetes网络选项来执行策略。本文档帮助您为集群选择最佳的网络选项。

Calico提供了一些方法,允许pod连接到其他pod、主机和外部网络(例如internet)。

Calico网络:

Calico支持使用边界网关协议(BGP)将路由信息共享到网络中。Calico支持节点到节点的全网格部署(有和没有路由反射器),以及BGP直接对机架(ToR)路由器顶部的现场部署;允许流量直接路由到工作负载,而不需要NAT或封装。

Calico可以使用许多其他Kubernetes网络选项执行网络策略强制。

下表显示了使用Calico时常见的网络选项。

本节提供更多关于Calico的内置网络选项的细节:

Calico可以与你的路由器使用BGP对等。这提供了出色的性能和易于调试的非封装流量,以及广泛的网络拓扑和连接选项。

此选项还提供了接近主机到主机的性能级别,并允许网络直接看到流量。

当所有节点都在一个L2子网上时,如果底层网络不强制执行IP地址检查,Calico可以在节点之间路由pod流量,而不需要封装。如果您的网络由多个L2子网组成,那么您可以使用路由器在BGP上进行对等,或者使用跨子网封装来仅封装跨子网边界的流量。

如果不允许在集群外部进行工作负载访问或使用基础设施进行对等访问,就无法在pod和不属于Calico集群的目的地之间路由流量。

如果可能,我们建议运行Calico没有网络覆盖/封装。这提供了最高的性能和最简单的网络;离开您的工作负载的包是连接到网络上的包。

但是,当运行在底层网络上时,有选择地使用覆盖(IP中的IP或VXLAN中的IP)是非常有用的,因为底层网络不容易知道工作负载IP。Calico可以对:所有的流量,没有流量,或者只对跨越子网边界的流量进行封装。

IP中的IP或VXLAN封装也可以在子网之间选择性地使用——这提供了子网中未封装的流量的性能优势,适用于织物包含多个L2网络且无法进行对等连接的环境。例如,如果您在AWS中跨多个VPC/子网使用Calico网络,Calico可以选择性地只封装在VPC/子网之间路由的流量,而不封装在每个VPC/子网中运行。

缺省的节点到节点的BGP网格必须关闭,以启用其他BGP拓扑。为此,修改默认的BGP配置资源。

每个节点的BGP对等点应用于集群中的一个或多个节点。您可以通过精确地指定节点的名称或使用标签选择器来选择节点。

Calico 可以配置扮演成一个路由反射器。每个节点要充当路由反射器必须有一个集群ID——通常一个未使用的IPv4地址。

默认的,所有的calico 节点使用64512 autonomous system, 除非特殊指定。下面的命令把它改成64513.

您可以配置每个IP池不同封装配置。然而,你不能一个IP池内混合封装类型。

IP in IP和 VXLAN只支持IPv4地址。

Calico 只有一个选项来选择性地封装流量 ,跨越子网边界。我们建议使用 IP in IP 的 cross subnet 选项把开销降到最低。

注意:切换封装模式会导到正在连接的进程中断。

IP in IP封装可以选择性的执行, 并且仅用于通过子网边界的通信量 。

开启这个功能,设置 ipipMode 为 CrossSubnet

ipipMode 设置 Always

下表针对Calico环境列出了常见的MTU大小。 因为MTU是endpoints间网络路径的全局属性, 你应该设定最低MTU的MTU包可能需要的任何路径。

额外的报头用于在IP和VXLAN IP协议,降低了最小的MTU大小头。在IP使用20-byte头(IP, VXLAN使用50-byte头)。因此,我们建议如下:

当使用flannel的网络时,网络接口的MTU应该匹配flannel接口的MTU。 假如使用flannel的VXLAN, 使用上面的 calico MTU with VXLAN 列的大小。

当你设置MTU,它适用于新工作负载。MTU变化应用于现有的工作负载,必须重新启动calico nodes。

如果您使用的是IP in IP和/或VXLAN calico overlay 网络,设置隧道MTU匹配veth MTU配置的值。

IP在IP隧道作为tunlx出现(例如,tunl0),连同MTU大小。例如:

允许工作负载使用私有IP地址访问互联网,你可以用你现有NAT功能,或者你可以在Calico IPPool上开启natOutgoing。

在以下的示例中,我们创建一个Calicco IPPool,并开启natOutgoing 。Outbound NAT是在节点本地执行的。

您可以创建额外的IPPools不用于IP地址管理,防止NAT某些CIDR块。这是有用的,如果你想让节点NAT网络流量,但不是在某些内部ip范围。例如,如果您不想NAT流量10.0.0.0/8,您可以创建以下池。您必须确保集群之间的网络和10.0.0.0/8可路由。

针对calico节点配置IP自动检测,确保路由使用正确的P地址。

当你安装Calico在一个节点上时,一个IP地址和子网被自动检测。Calico提供几种方式去配置子网自动检测,和支持配置指定的IPs。

针对节点间的路由,每个calico节点必须配置一个IPv4地址 和/或 一个IPV6地址,当安装一个calico在一个节点上时,一个节点资源使用从主机检测到的路由信息自动创建。针对一些部署,你可能想要自动的更新检测,确保节点获取正确的IP地址。

默认的,Calico使用 first-found 方法,也就是说第一个接口第一个有效的IP地址(排除local interface,因为它是docker bridge).你可以使用以下方法的任一一种改变默认方法。

(1)使用一个能到达特定IP或domain的地址。

(2)使用正则的方式,去匹配接口(interface)

(3)使用正则的方式,去排除匹配的接口(skip interface)

(1) calico node container(start/restart),使用环境变量去设置节点的值

(2) 更新节点的资源

因为你可以通过配置环境变量和节点资源,去更改IP地址和子网,下表描述了这些值如何同步的。

由于默认的自动检测方法是 first valid interface found (first-found). 去使用不同的自动检测方法,使用 kubectl set env 命令指定方法。

(1)IP 或 domain name

(2)包含匹配的接口

(3)排除匹配的接口

在下列情况下,您可能需要配置一个特定的IP子网:

八、IP地址及封装模式切换
针对安装Calico到kubernetes集群中的每个节点,每个manifest包含所有需要的资源。

它安装如下的kubernetes资源:

Calico IPAM从IP pools中分配 IP地址。

如果要修改pods使用的默认IP地址范围,那么修改calico.yaml清单中的 CALICO_IPV4POOL_CIDR 。

默认情况下,清单支持跨子网的IP-in-IP封装。许多用户可能希望禁用IP-in-IP封装,例如在以下情况下。

如果要关闭IP-in-IP的封装,修改清单中的 CALICO-IPV4POOL_IPIP .

默认情况下,Calico清单支持IP-in-IP封装。如果您所在的网络阻塞了ip中的ip,比如Azure,您可能希望切换到Calico的VXLAN封装模式。要做到这一点,在安装时(以便Calico创建默认的IP池与VXLAN和没有IP-in-IP配置必须撤消):

K8s网络组件-Calico

广播域

ARP(地址解析协议)

三层交换机

VLAN(Virtual Local Area Network):虚拟局域网

VLAN的主要好处

路由器主要分为两个端口类型

功能

路由器的功能

路由

相关概念

容器之间通信

容器访问外网

infra container

pod通信

两个Pod在同一个Node上

两个Pod在不同Node上

概述

etcd方式

api方式-kubeadmin

api方式-二进制

查看Calico状态

工作模式

概述

工作流程

概述

calicoctl工具修改为BGP模式

工作流程

背景

解决

具体步骤:

01 关闭 node-to-node模式

02 配置指定节点充当路由反射器

3、使用标签选择器将路由反射器节点与其他非路由反射器节点配置为对等

4、查看节点的BGP连接状态

网络需求

方案一:专门准备一台Node负责转发来自办公网络

方案二:两方上层路由器使用BGP做路由交换

概述

应用场景

Pod网络入口方向隔离

Pod网络出口方向隔离

Demo

需求1:将default命名空间携带app=web标签的Pod隔离,只允许携带run=client1标签的Pod访问80端口

需求2:default命名空间下所有pod可以互相访问,也可以访问其他命名空间Pod,但其他命名空间不能访问default命名空间Pod

k8s网络之Calico网络-工作原理

***隐藏网址***

calico有两种模式:ipip(默认)、bgp,bgp效率更高。
如果宿主机在同一个网段,可以使用ipip模式;
如果宿主机不在同一个网段,pod通过BGP的hostGW是不可能互相通讯的,此时需要使用ipip模式(如果仍想使用bgp模式,除非你在中间路由器上手动添加路由)。

k8s calico flannel cilium 网络性能测试

结论:

点评:
带宽: calico+ipip 》 flannel+vxlan 》 cilium+vlan
速度: calico+ipip 》 flannel+vxlan 》 cilium+vlan
稳定性:cilium+vlan 》 calico+ipip 》 flannel+vxlan

calico 作为老牌网络解决方案,可圈可点,已被 github 等公司用于生产。
flannel 配置简单,性能弱低于 calico,redis 测试中稍占上风。大并发下稳定性稍低。
***隐藏网址***
(说明:本来还准备比较一下 kube-router ,不过网络没有调通,暂时无法测试。)

一个问题:
flannel 的 host-gw 模式、flannel+vxlan+DirectRouting 模式、calico 关闭 ipip 模式、kube-router 这些部署情况下,跨主机的容器不通,感觉原因应该是同一个问题。
主机A ping 主机B 上的容器,容器有回包,但是只到了主机B,之后就被丢弃了。
欢迎探讨,一起研究。
待问题解决后,再把这些模式测试对比。

测试环境:
硬件:三台物理机,千兆网卡,单网卡,处于同一网段(在同一个二层网络中)
OS:Ubuntu 18.04,内核 4.15
k8s: 1.10.0
kube-proxy: ipvs 模式
flannel : 0.10 版本, vxlan模式(默认设置)
calico: 3.1 版本,ipip 模式(默认设置)
cilium: 1.0 版本,vxlan 模式(默认设置)

测试方法:

简述Kubernetes Calico网络组件实现原理

Calico是一个基于BGP的纯三层的网络方案,与OpenStack、Kubernetes、AWS、GCE等云平台都能够良好地集成。
Calico在每个计算节点都利用Linux Kernel实现了一个高效的vRouter来负责数据转发。每个vRouter都通过BGP协议把在本节点上运行的容器的路由信息向整个Calico网络广播,并自动设置到达其他节点的路由转发规则。
Calico保证所有容器之间的数据流量都是通过IP路由的方式完成互联互通的。Calico节点组网时可以直接利用数据中心的网络结构(L2或者L3),不需要额外的NAT、隧道或者Overlay Network,没有额外的封包解包,能够节约CPU运算,提高网络效率。我推荐你去看看时速云,他们是一家全栈云原生技术服务提供商,提供云原生应用及数据平台产品,其中涵盖容器云PaaS、DevOps、微服务治理、服务网格、API网关等。大家可以去体验一下。 如果我的回答能够对您有帮助的话,求给大大的赞。

关于calico网络模式到此分享完毕,希望能帮助到您。

calico网络模式(一文学会Calico网络自定义)

本文编辑:admin

更多文章:


变形金刚完整历史(变形金刚是什么时候诞生的)

变形金刚完整历史(变形金刚是什么时候诞生的)

大家好,变形金刚完整历史相信很多的网友都不是很明白,包括变形金刚是什么时候诞生的也是一样,不过没有关系,接下来就来为大家分享关于变形金刚完整历史和变形金刚是什么时候诞生的的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本

2025年12月25日 12:45

previous的短语(以前的,先前的英文)

previous的短语(以前的,先前的英文)

其实previous的短语的问题并不复杂,但是又很多的朋友都不太了解以前的,先前的英文,因此呢,今天小编就来为大家分享previous的短语的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录以前的,先前的英文“早先

2025年12月18日 06:00

activitythread工作原理(ViewModel的原理)

activitythread工作原理(ViewModel的原理)

其实activitythread工作原理的问题并不复杂,但是又很多的朋友都不太了解ViewModel的原理,因此呢,今天小编就来为大家分享activitythread工作原理的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧

2026年5月26日 05:00

substr函数的功能(substr函数怎么用)

substr函数的功能(substr函数怎么用)

各位老铁们好,相信很多人对substr函数的功能都不是特别的了解,因此呢,今天就来为大家分享下关于substr函数的功能以及substr函数怎么用的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录substr函数怎

2025年9月18日 18:00

maven配置文件放哪里(maven打包时如何把包下面的XML配置文件也包含)

maven配置文件放哪里(maven打包时如何把包下面的XML配置文件也包含)

大家好,maven配置文件放哪里相信很多的网友都不是很明白,包括maven打包时如何把包下面的XML配置文件也包含也是一样,不过没有关系,接下来就来为大家分享关于maven配置文件放哪里和maven打包时如何把包下面的XML配置文件也包含的

2025年9月12日 17:30

compensation 单词(compensation同义词)

compensation 单词(compensation同义词)

“compensation 单词”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看compensation 单词(compensation同义词)!本文目录compensation同义词C单词中的ion后缀compensati

2025年9月10日 19:15

carry网络用语(c指的是什么意思啊)

carry网络用语(c指的是什么意思啊)

大家好,carry网络用语相信很多的网友都不是很明白,包括c指的是什么意思啊也是一样,不过没有关系,接下来就来为大家分享关于carry网络用语和c指的是什么意思啊的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录c

2026年3月10日 23:15

boards翻译(主板英文怎么说)

boards翻译(主板英文怎么说)

大家好,boards翻译相信很多的网友都不是很明白,包括主板英文怎么说也是一样,不过没有关系,接下来就来为大家分享关于boards翻译和主板英文怎么说的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录主板英文怎么说

2025年7月28日 15:30

mentality是什么意思(victim mentality是什么意思)

mentality是什么意思(victim mentality是什么意思)

大家好,今天小编来为大家解答以下的问题,关于mentality是什么意思,victim mentality是什么意思这个很多人还不知道,现在让我们一起来看看吧!本文目录victim mentality是什么意思village mentali

2026年1月13日 09:00

microchip单片机有什么不同(Microchip、NXP、Fujitsu、Texas Instruments、Freescale 、STC几家单片机厂商各自特点及应用领域)

microchip单片机有什么不同(Microchip、NXP、Fujitsu、Texas Instruments、Freescale 、STC几家单片机厂商各自特点及应用领域)

大家好,如果您还对microchip单片机有什么不同不太了解,没有关系,今天就由本站为大家分享microchip单片机有什么不同的知识,包括Microchip、NXP、Fujitsu、Texas Instruments、Freescale

2026年9月20日 07:15

css样式工具(css样式只能修改不能删除)

css样式工具(css样式只能修改不能删除)

本篇文章给大家谈谈css样式工具,以及css样式只能修改不能删除对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录css样式只能修改不能删除w

2026年1月23日 18:30

redistributable x86(Microsoft Visual C++ 2015 Redistributable x86是系统自带的吗)

redistributable x86(Microsoft Visual C++ 2015 Redistributable x86是系统自带的吗)

各位老铁们,大家好,今天由我来为大家分享redistributable x86,以及Microsoft Visual C++ 2015 Redistributable x86是系统自带的吗的相关问题知识,希望对大家有所帮助。如果可以帮助到大

2025年7月24日 10:15

企业网站建设有哪些好处?企业网站建设的优势、好处是什么

企业网站建设有哪些好处?企业网站建设的优势、好处是什么

今天给各位分享企业网站建设有哪些好处的知识,其中也会对企业网站建设有哪些好处进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录企业网站建设有哪些好处企业网站建设的优势、好处是什么最常见企业网站公司有哪些企业网站建

2025年7月4日 21:00

readprocessmemory(U盘出现仅完成部分的ReadProcessMemory 或WriteProcessMemory请求)

readprocessmemory(U盘出现仅完成部分的ReadProcessMemory 或WriteProcessMemory请求)

大家好,如果您还对readprocessmemory不太了解,没有关系,今天就由本站为大家分享readprocessmemory的知识,包括U盘出现仅完成部分的ReadProcessMemory 或WriteProcessMemory请求的

2025年10月5日 22:00

power query拆分列的拆分依据(在wps或excel里面,在一段文本里面把两个数字按大小挑出来)

power query拆分列的拆分依据(在wps或excel里面,在一段文本里面把两个数字按大小挑出来)

大家好,今天小编来为大家解答以下的问题,关于power query拆分列的拆分依据,在wps或excel里面,在一段文本里面把两个数字按大小挑出来这个很多人还不知道,现在让我们一起来看看吧!本文目录在wps或excel里面,在一段文本里面把

2025年12月4日 07:15

according to legend(英语作文关于历史人物 少于100字数)

according to legend(英语作文关于历史人物 少于100字数)

本篇文章给大家谈谈according to legend,以及英语作文关于历史人物 少于100字数对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本

2026年7月3日 01:15

java数组的长度怎么看(java中如何判断一个数组的长度呢比如我申请了一个数组int [] arr = new int[8];)

java数组的长度怎么看(java中如何判断一个数组的长度呢比如我申请了一个数组int [] arr = new int[8];)

这篇文章给大家聊聊关于java数组的长度怎么看,以及java中如何判断一个数组的长度呢比如我申请了一个数组int [] arr = new int[8];对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录java中如何判断一个数

2025年6月23日 17:30

deserts怎么读(deserts怎么读)

deserts怎么读(deserts怎么读)

本篇文章给大家谈谈deserts怎么读,以及deserts怎么读对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录deserts怎么读dese

2026年3月15日 02:15

mysql与大数据(mysql怎么处理大数据)

mysql与大数据(mysql怎么处理大数据)

各位老铁们好,相信很多人对mysql与大数据都不是特别的了解,因此呢,今天就来为大家分享下关于mysql与大数据以及mysql怎么处理大数据的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录mysql怎么处理大数据

2026年8月23日 08:15

excel函数总和(excel求和函数是什么)

excel函数总和(excel求和函数是什么)

其实excel函数总和的问题并不复杂,但是又很多的朋友都不太了解excel求和函数是什么,因此呢,今天小编就来为大家分享excel函数总和的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录excel求和函数是什么e

2025年12月10日 08:30

近期文章

char ch用法(c语言char ch)
2026-09-24 18:45:02
本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索