cilium 有哪个 CRD 资源支持指定 vxlan 的 VNI ID 么? 类似 实现 VPC 的功能
根据我查找的资料,在 Cilium 中 目前没有 一个 CRD 资源可以让用户在 Kubernetes 内部为每个 “overlay 隧道” 明确指定一个 VXLAN VNI ID(即 VNI = VXLAN Network Identifier)来隔离类似 VPC 的网络。以下是整理分析:
✅ 支持的 VXLAN 功能
- Cilium 支持 VXLAN(overlay)模式,可通过
tunnelProtocol: vxlan来指定使用 VXLAN 隧道。(docs.cilium.io) - 在 VTEP(VXLAN Tunnel Endpoint)集成中,Cilium 支持将第三方 VTEP 设备接入,允许外部设备通过 VXLAN 与 Cilium 管理的 pod 通信。(docs.cilium.io)
- 在这些文档中,有提到 “VXLAN network identifier (VNI) must be configured as VNI 2” 的静态值用于 VTEP 集成示例。(docs.cilium.io)
❓ 为什么没有 “指定每个 overlay 分段 VNI” 的 CRD
- 虽然文档提到 VNI = 2 的固定值 (在 VTEP 集成场景);这意味着 Cilium 内部使用了一个固定 VNI 编号。(docs.cilium.io)
- 但在 Helm values 或 ConfigMap 的配置项里,并未见有 “vni id” 或 “vxlanVNI” 之类可配置字段。比如在 Helm-Reference 中,支持的字段主要是
tunnelProtocol、tunnelPort、underlayProtocol等。(docs.cilium.io) - 在 Cilium 文档中也没有提及为不同租户或不同 “网络段” 分配不同 VNI 的机制。Cilium 的隔离主要是通过标签、安全身份(identity)等方式实现,并不是通过传统网络中的 “VNI 分段” 来操作。(docs.cilium.io)
🔍 如果你想实现类似 “VPC-style 隔离” 的效果,有几个替代方案
- 可以使用不同的 Namespace + NetworkPolicy + CiliumIdentity 来隔离流量,而不是依赖 VNI。
- 如果你确实需要物理/Overlay 层面的隧道隔离(即不同 VNI),可能需要结合外部网络设备(如 VTEP、EVPN Fabric)来与 Cilium 配合。Cilium 的 VTEP 集成功能说明了这一点。(Medium)
- 或者,考虑是否切换为支持多 VNI 多租户的 overlay 网络插件,或者在 Cilium 源码/社区功能中查看是否有 roadmap 支持“多 VNI”配置。
如果你愿意,我可以帮你查下 “Cilium 最近版本(如 v1.20+)是否增加了按租户/网络段支持 VNI 配置” 的功能,看是否有正在开发中的 CRD 或提案。你要吗?
我查了一下 Cilium(v1.20+)中关于 “按租户/网络段 VNI 配置” 的功能支持情况,结果是:目前没有明确文档或 CRD 提案 表明已经支持每租户指定一个 VNI 的能力。下面是详细分析。
✅ 已支持 / 已有功能
以下是与 VNI/租户隔离相关,但 不完全等同 “为每租户指定 VNI” 的功能:
-
Cilium 支持 “VXLAN Tunnel Endpoint (VTEP) Integration (beta)” 功能:文档指出该功能允许第三方 VTEP 设备通过 VXLAN 与 Cilium 托管的 Pods 互通。文档明确指出 “The VXLAN network identifier (VNI) must be configured as VNI 2” 。(docs.cilium.io)
- 这说明 Cilium 已经能与 VXLAN overlay + VTEP 设备交互,但 VNI 是固定值 2,而非 “每个租户不同 VNI” 的灵活映射。
-
在 GitHub 上,有一个 feature proposal 叫 “multi-tenant filter on CCNP” (#36054) 提出基于
tenantId标签对 CCNP(Cluster-wide CiliumNetworkPolicy)进行租户隔离。(GitHub)- 该提案属于网络策略/多租户隔离范畴,但并未涉及 VNI 或物理/overlay 隧道层之 “VNI 映射” 功能。
-
在 Cisco 社区文章 “Cilium with N9K EVPN Fabric with different Tenants Access” 提出 Cilium + EVPN Fabric 场景中可做 BGP community 区分租户。(community.cisco.com)
- 但那是用户案例/博客,不为 Cilium 核心项目功能声明,也未说明 Cilium 内部有 CRD 支持 “每租户 VNI” 映射。
❓ 尚未支持 /缺乏明确功能
- 没有在 Cilium 官方文档中找到 “为每个租户(namespace 或标签)指定 VNI ID” 的配置项或 CRD。
- 在 VTEP 集成文档中,VNI 被硬编码为 2,而非可配置多值。(docs.cilium.io)
- 在功能提案中,多租户隔离主要集中在网络策略/可视化控制,而非 overlay 隧道层的 VNI 分区。
- 未在 GitHub issue / feature-proposal 中发现 “Tenant → VNI mapping CRD” 或 “租户映射 VNI ID” 关键词被开发或合并。
🧭 小结与建议
-
如果你的目标是 “为不同租户 (Namespace/标签) 指定不同 VNI ID,使每租户 overlay 隧道逻辑隔离”,目前 Cilium 不提供开箱功能 实现这一点。
-
若要落地该功能,你可能需要:
- 在 Cilium 外部(控制平面/Operator)维护租户→VNI 映射逻辑,并通过节点/配置写入 nvlan/VXLAN device 或 Fabric 配置。
- 使用 Cilium 的 VTEP 模式作为起点(虽然固定 VNI=2,目前限制较多)。
- 或者与 Cilium 社区/开发者沟通,看看是否有计划将该功能纳入将来版本(可以查看 Cilium 的 roadmap 或加入 SIG Networking 讨论)。
-
在决策过程中,你可以查看:Cilium 的 GitHub “design-cfps” 仓库、issue 标签
kind/feature+ “vni”/“tenant”关键词、以及 roadmap 文件,看是否未来版本有引入此类功能。
如果你愿意,我可以帮你 查找 Cilium GitHub 仓库中所有关于 “VNI” 的 issue/PR(包括草案/讨论) ,并整理出 “是否在开发中/预计版本” 的清单。你要吗?
我查了一下 Cilium(v1.20+)中关于 “按租户/网络段 VNI 配置” 的功能支持情况,结果是:目前没有明确文档或 CRD 提案 表明已经支持每租户指定一个 VNI 的能力。下面是详细分析。
✅ 已支持 / 已有功能
以下是与 VNI/租户隔离相关,但 不完全等同 “为每租户指定 VNI” 的功能:
-
Cilium 支持 “VXLAN Tunnel Endpoint (VTEP) Integration (beta)” 功能:文档指出该功能允许第三方 VTEP 设备通过 VXLAN 与 Cilium 托管的 Pods 互通。文档明确指出 “The VXLAN network identifier (VNI) must be configured as VNI 2” 。(docs.cilium.io)
- 这说明 Cilium 已经能与 VXLAN overlay + VTEP 设备交互,但 VNI 是固定值 2,而非 “每个租户不同 VNI” 的灵活映射。
-
在 GitHub 上,有一个 feature proposal 叫 “multi-tenant filter on CCNP” (#36054) 提出基于
tenantId标签对 CCNP(Cluster-wide CiliumNetworkPolicy)进行租户隔离。(GitHub)- 该提案属于网络策略/多租户隔离范畴,但并未涉及 VNI 或物理/overlay 隧道层之 “VNI 映射” 功能。
-
在 Cisco 社区文章 “Cilium with N9K EVPN Fabric with different Tenants Access” 提出 Cilium + EVPN Fabric 场景中可做 BGP community 区分租户。(community.cisco.com)
- 但那是用户案例/博客,不为 Cilium 核心项目功能声明,也未说明 Cilium 内部有 CRD 支持 “每租户 VNI” 映射。
❓ 尚未支持 /缺乏明确功能
- 没有在 Cilium 官方文档中找到 “为每个租户(namespace 或标签)指定 VNI ID” 的配置项或 CRD。
- 在 VTEP 集成文档中,VNI 被硬编码为 2,而非可配置多值。(docs.cilium.io)
- 在功能提案中,多租户隔离主要集中在网络策略/可视化控制,而非 overlay 隧道层的 VNI 分区。
- 未在 GitHub issue / feature-proposal 中发现 “Tenant → VNI mapping CRD” 或 “租户映射 VNI ID” 关键词被开发或合并。
🧭 小结与建议
-
如果你的目标是 “为不同租户 (Namespace/标签) 指定不同 VNI ID,使每租户 overlay 隧道逻辑隔离”,目前 Cilium 不提供开箱功能 实现这一点。
-
若要落地该功能,你可能需要:
- 在 Cilium 外部(控制平面/Operator)维护租户→VNI 映射逻辑,并通过节点/配置写入 nvlan/VXLAN device 或 Fabric 配置。
- 使用 Cilium 的 VTEP 模式作为起点(虽然固定 VNI=2,目前限制较多)。
- 或者与 Cilium 社区/开发者沟通,看看是否有计划将该功能纳入将来版本(可以查看 Cilium 的 roadmap 或加入 SIG Networking 讨论)。
-
在决策过程中,你可以查看:Cilium 的 GitHub “design-cfps” 仓库、issue 标签
kind/feature+ “vni”/“tenant”关键词、以及 roadmap 文件,看是否未来版本有引入此类功能。
如果你愿意,我可以帮你 查找 Cilium GitHub 仓库中所有关于 “VNI” 的 issue/PR(包括草案/讨论) ,并整理出 “是否在开发中/预计版本” 的清单。你要吗?
我查了一下 Cilium(v1.20+)中关于 “按租户/网络段 VNI 配置” 的功能支持情况,结果是:目前没有明确文档或 CRD 提案 表明已经支持每租户指定一个 VNI 的能力。下面是详细分析。
✅ 已支持 / 已有功能
以下是与 VNI/租户隔离相关,但 不完全等同 “为每租户指定 VNI” 的功能:
-
Cilium 支持 “VXLAN Tunnel Endpoint (VTEP) Integration (beta)” 功能:文档指出该功能允许第三方 VTEP 设备通过 VXLAN 与 Cilium 托管的 Pods 互通。文档明确指出 “The VXLAN network identifier (VNI) must be configured as VNI 2” 。(docs.cilium.io)
- 这说明 Cilium 已经能与 VXLAN overlay + VTEP 设备交互,但 VNI 是固定值 2,而非 “每个租户不同 VNI” 的灵活映射。
-
在 GitHub 上,有一个 feature proposal 叫 “multi-tenant filter on CCNP” (#36054) 提出基于
tenantId标签对 CCNP(Cluster-wide CiliumNetworkPolicy)进行租户隔离。(GitHub)- 该提案属于网络策略/多租户隔离范畴,但并未涉及 VNI 或物理/overlay 隧道层之 “VNI 映射” 功能。
-
在 Cisco 社区文章 “Cilium with N9K EVPN Fabric with different Tenants Access” 提出 Cilium + EVPN Fabric 场景中可做 BGP community 区分租户。(community.cisco.com)
- 但那是用户案例/博客,不为 Cilium 核心项目功能声明,也未说明 Cilium 内部有 CRD 支持 “每租户 VNI” 映射。
❓ 尚未支持 /缺乏明确功能
- 没有在 Cilium 官方文档中找到 “为每个租户(namespace 或标签)指定 VNI ID” 的配置项或 CRD。
- 在 VTEP 集成文档中,VNI 被硬编码为 2,而非可配置多值。(docs.cilium.io)
- 在功能提案中,多租户隔离主要集中在网络策略/可视化控制,而非 overlay 隧道层的 VNI 分区。
- 未在 GitHub issue / feature-proposal 中发现 “Tenant → VNI mapping CRD” 或 “租户映射 VNI ID” 关键词被开发或合并。
🧭 小结与建议
-
如果你的目标是 “为不同租户 (Namespace/标签) 指定不同 VNI ID,使每租户 overlay 隧道逻辑隔离”,目前 Cilium 不提供开箱功能 实现这一点。
-
若要落地该功能,你可能需要:
- 在 Cilium 外部(控制平面/Operator)维护租户→VNI 映射逻辑,并通过节点/配置写入 nvlan/VXLAN device 或 Fabric 配置。
- 使用 Cilium 的 VTEP 模式作为起点(虽然固定 VNI=2,目前限制较多)。
- 或者与 Cilium 社区/开发者沟通,看看是否有计划将该功能纳入将来版本(可以查看 Cilium 的 roadmap 或加入 SIG Networking 讨论)。
-
在决策过程中,你可以查看:Cilium 的 GitHub “design-cfps” 仓库、issue 标签
kind/feature+ “vni”/“tenant”关键词、以及 roadmap 文件,看是否未来版本有引入此类功能。
如果你愿意,我可以帮你 查找 Cilium GitHub 仓库中所有关于 “VNI” 的 issue/PR(包括草案/讨论) ,并整理出 “是否在开发中/预计版本” 的清单。你要吗?
我进行了更深入的搜索(在 Cilium GitHub 仓库中使用关键词如 “vni”, “vxlan id”, “tenant”, “overlay segmentation”)并整理如下 扩展结果。这些结果中并 未 发现一个明确标注为 “租户→VNI 映射” 功能在开发中,但为你提供当前相关讨论的全面视图。
🔍 扩展搜索结果清单
| # | 链接 | 标题 | 状态 | 关联内容概述 |
|---|---|---|---|---|
| 1 | Issue #15852 (GitHub) | “Add node cilium annotation for VXLAN integration with …” | 已关闭 (2021) | 讨论在节点注解中增加 VXLAN 集成字段。备注中指出:“VNI field is used for identity and not a virtual network”——意味着该字段不是用作租户隔离网络标识。 |
| 2 | Issue #36491 (GitHub) | “Network broken when using an overlay network based on Wireguard …” | 已关闭 (2024) | 与 overlay 网络(Wireguard 背后)出错相关,不涉及 VNI 多租户或租户 ‑ VNI 映射。 |
| 3 | Issue #41858 (GitHub) | “Network Policies are not applied to overlay networks” | 开放中 (2025) | 与策略/overlay 网络适配有关。未提及 VNI/租户隔离。 |
| 4 | Documentation 页 “VXLAN Tunnel Endpoint (VTEP) Integration (beta)” (docs.cilium.io) | 官方文档 | 已发布 (beta) | 功能使第三方 VTEP 设备能与 Cilium 管理的 Pods 用 VXLAN 互通。文档明确:VNI 必须配置为 2。说明目前 VNI 固定值,不支持每租户不同 VNI。 |
| 5 | Cisco 社区文章 “Cilium with N9K EVPN Fabric with different Tenants Access” (community.cisco.com) | 外部博客/方案 | 已发布 (2024) | 描述 Cilium 与 Cisco Nexus EVPN Fabric 集成,使用 BGP community 区分不同租户。但这是外部方案/用户实现,不是 Cilium 核心仓库的功能提案。 |
| 6 | Cisco 社区博客 “Cisco N9K EVPN Fabric with Kubernetes in multiple VRF/tenant” (community.cisco.com) | 外部博客/方案 | 已发布 (2024) | 说明了在多 VRF/tenant 场景下 Cilium Enterprise 与 Fabric 的实现。虽然提及租户隔离,但也不是 Cilium 开源项目中 “租户→VNI 映射” 的明确功能。 |
✅ 分析结果
- 在当前公开的 GitHub issue/PR 中,没有找到 明确标注 为 “为每个租户指定不同 VNI ID(VXLAN 隧道)” 的功能请求或正在开发的 feature。
- 官方文档中提及的 VTEP 整合,VNI 是固定值
2,其实说明此功能还没有走向“多 VNI”或“租户 VNI 映射”这一步。 - 虽然社区有较多“Cilium + EVPN Fabric +租户” 的实践和博客(如第 5 和 6 项),但这些属于用户或厂商集成方案,并不等同于 Cilium 主项目已纳入的 CRD/feature。
🧭 建议下一步监控/关注点
为了持续跟踪这一功能(租户→VNI 映射)是否将在未来加入,我建议你:
- 在 Cilium 仓库 issue 搜索关键词如
"tenant vni","multiple vni","vxlan network id per tenant","overlay segmentation tenant"。 - 关注 Cilium 的设计提案区(如
design/,cfps/目录)是否有 “multi‑VNI” 或 “tenant overlay” 类提案。 - 检查 Cilium 的 Roadmap(通常在官网或 GitHub Releases Notes)是否列出 “multi‑tenant overlay segmentation”或 “VNI per namespace” 类功能。
- 如果你是用户或潜在实现者,也可在 Cilium 社区(Slack/Discuss)发起请求或查看是否已有类似需求被登记。