<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Flannel VS Calico :: Ay Docs</title>
    <link>https://ops.docs.72602.space/using/k8s/flannel_vs_calico/index.html</link>
    <description>Calico 和 Flannel 是 Kubernetes 中最著名和最常见的两种网络插件（CNI），但它们的设计哲学、实现方式和能力有显著区别。&#xA;简单来说：&#xA;Flannel 追求的是简单和易用，提供足够的基础网络功能。 Calico 追求的是性能和功能，提供强大的网络策略和高性能网络。 下面我们从多个维度进行详细对比。&#xA;核心对比一览表 特性 Flannel Calico 核心设计哲学 简单、最小化 高性能、功能丰富 网络模型 Overlay 网络 纯三层路由（可选 Overlay） 数据平面 VXLAN（推荐）、Host-gw、UDP BGP（推荐）、VXLAN、Windows 性能 较好（VXLAN有封装开销） 极高（BGP模式下无封装开销） 网络策略 不支持（需安装Cilium等） 原生支持（强大的网络策略） 安全性 基础 高级（基于标签的微隔离） 配置与维护 非常简单，几乎无需配置 相对复杂，功能多配置项也多 适用场景 学习、测试、中小型集群，需求简单 生产环境、大型集群、对性能和安全要求高 深入剖析 1. 网络模型与工作原理 这是最根本的区别。&#xA;Flannel (Overlay Network)：&#xA;工作原理：它在底层物理网络之上再构建一个虚拟的“覆盖网络”。当数据包从一个节点的Pod发送到另一个节点的Pod时，Flannel会将它封装在一个新的网络包中（如VXLAN）。 类比：就像在一封普通信件（Pod的原始数据包）外面套了一个标准快递袋（VXLAN封装），快递系统（底层网络）只关心快递袋上的地址（节点IP），不关心里面的内容。到达目标节点后，再拆开快递袋，取出里面的信。 优势：对底层网络要求低，只要节点之间IP能通即可，兼容性好。 劣势：封装和解封装有额外的CPU开销，并且会增加数据包的大小（ overhead），导致性能略有下降。 Calico (Pure Layer 3)：&#xA;工作原理（BGP模式）：它不使用封装，而是使用BGP路由协议。每个K8s节点都像一个路由器，它通过BGP协议向集群中的其他节点宣告：“发往这些Pod IP的流量，请送到我这里来”。 类比：就像整个数据中心是一个大的邮政系统，每个邮局（节点）都知道去往任何地址（Pod IP）的最短路径，信件（数据包）可以直接投递，无需额外包装。 优势：性能高，无封装开销，延迟低，吞吐量高。 劣势：要求底层网络必须支持BGP或者支持主机路由（某些云平台或网络设备可能需要特定配置）。 注意：Calico也支持VXLAN模式（通常用于网络策略要求BGP但底层网络不支持的场景），但其最佳性能是在BGP模式下实现的。&#xA;2. 网络策略 这是两者功能性的一个巨大分水岭。&#xA;Flannel：本身不提供任何网络策略能力。它只负责打通网络，让所有Pod默认可以相互通信。如果你需要实现Pod之间的访问控制（微隔离），你必须额外安装一个网络策略控制器，如 Cilium 或 Calico本身（可以只使用其策略部分，与Flannel叠加使用）。</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate></lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/using/k8s/flannel_vs_calico/index.xml" rel="self" type="application/rss+xml" />
  </channel>
</rss>