整体架构图
========================================================================================================
【 外部网络 / INTERNET 】
========================================================================================================
│ ▲
│ (1) 外部 IPv4 用户请求 │ (5) 真正的 IPv4 流量出网
│ [源: 1.1.1.1 -> 目的: HAProxy IPv4] │ [源: 192.168.250.X -> 目的: 4.4.4.4]
▼ │
┌───────────────────────────────────────────────────────────────────────────────────────┴──────────────┐
│ 【 外部独立双栈虚拟机网关 A / B 】(同时部署 HAProxy 与 Jool,互不干扰) │
│ │
│ [ 物理网卡 1 ] (自动获取公网): 具备外网 IPv4 访问能力 & 获得 `2408:` 公网 IPv6 │
│ [ 物理网卡 2 ] (静态分配 ULA) : 网关 A = `fd01:1010:1111:1::100/64` │
│ 网关 B = `fd01:1010:1111:1::101/64` │
│ │
│ ┌───────────────────────────────────────────┐ ┌───────────────────────────────────────────┐ │
│ │ 【 网关 A 】 │ │ 【 网关 B 】 │ │
│ │ - HAProxy (L7 代理, HTTP 注入 XFF 保持源IP)│ │ - HAProxy (L7 代理, HTTP 注入 XFF 保持源IP)│ │
│ │ - Jool (L3 内核态有状态 NAT64 核心翻译官) │ │ - Jool (L3 内核态有状态 NAT64 核心翻译官) │ │
│ └────────────────────┬──────────────────────┘ └────────────────────┬──────────────────────┘ │
└───────────────────────┼─────────────────────────────────────────────────┼────────────────────────────┘
│ │
│ (2) 转换为纯内网 IPv6 转发 │ (4) 剥离外壳, 转换为真正的 IPv4
│ [源: 网关 -> 目的: Istio VIP] │ [从 64:ff9b::4.4.4.4 提取出 4.4.4.4]
▼ │
==========================================================================┴=============================
【 物理网络 (二层扁平交换域): fd01:1010:1111::/48 】
========================================================================================================
│ ▲
│ (3) 物理二层交换流转 │ (3) 触发 Cilium 策略引流
│ [目的地: fd01:1010:1111:1::11] │ eBPF 内核级健康检查 (1s/次)
▼ │ 自动负载均衡/毫秒级漂移
┌─────────────────────────────────────────────────────────────────────────────────┴────────────────────┐
│ 【 纯 IPv6 Kubernetes 集群 (Cilium netkit) 】 │
│ │
│ ================================================================================================== │
│ 【 K8s 虚拟网络总网段 (Overlay/eBPF 动态驱动): fd01:1010:2222::/48 】 │
│ ================================================================================================== │
│ │
│ ┌──────────────────────────────────────────┐ ┌──────────────────────────────────────────┐ │
│ │ K8s Node 1 (宿主机物理 IP) │ │ K8s Node 2 (宿主机物理 IP) │ │
│ │ `fd01:1010:1111:1::11/64` │ │ `fd01:1010:1111:1::12/64` │ │
│ │ │ │ │ │
│ │ ┌────────────────────────────────────┐ │ │ ┌────────────────────────────────────┐ │ │
│ │ │ Istio Ingress Gateway │ │ │ │ 业务 Pod A │ │ │
│ │ │ - 纯虚拟网段, 绑定纯 IPv6 │ │ │ │ - 虚拟 IP: `fd01:1010:2222:10::5` │ │ │
│ │ │ - 解析 XFF/Proxy v2 拿到真实 IPv4 │ │ │ │ - MTU 跟随宿主机物理网卡 (1500) │ │ │
│ │ └─────────────────┬──────────────────┘ │ │ └─────────────────┬──────────────────┘ │ │
│ │ │ │ │ │ │ │
│ │ ▼ 纯虚拟 eBPF 路由 │ │ ▼ (1) 请求外部 IPv4 │ │
│ │ ┌───────────────────┐ │ │ ┌───────────────────┐ │ │
│ │ │ 业务 Pod B │ │ │ │ CoreDNS │ │ │
│ │ └───────────────────┘ │ │ │ - 启用 dns64 插件 │ │ │
│ │ │ │ └───────────────────┘ │ │
│ │ ┌────────────────────────────────────┐ │ │ ┌────────────────────────────────────┐ │ │
│ │ │ Cilium Agent │ │ ◄────────► │ │ Cilium Agent │ │ │
│ │ │ - 驱动 Node 1 Pod 池: │ │ 跨节点 netkit│ │ - 驱动 Node 2 Pod 池: │ │ │
│ │ │ `fd01:1010:2222:10::/64` │ │ 零隧道封包开销│ │ `fd01:1010:2222:11::/64` │ │ │
│ │ └────────────────────────────────────┘ │ │ └────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────┘ └──────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ K8s Service 虚拟网段 ClusterIP (锁死掩码, 对 CPU 查表最友好): `fd01:1010:2222:99::/112` │ │
│ └────────────────────────────────────────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
IPv6 网络地址规划
我们使用 fd01:1010:1111::/48 专门作为真实的物理/宿主机网络;
我们使用 fd01:1010:2222::/48 专门作为集群内部的虚拟网络。
1. 物理网络规划(真实虚拟机、物理机、网卡 IP)
该网段属于您本地二层交换机的物理网络范围。所有机器的物理网卡、网关都配置在这里:
角色 / 机器名称 建议物理静态 IPv6 地址 说明
物理网络根网段 fd01:1010:1111::/48 整个物理机房/实验室的二层大网。
物理接口标准子网 fd01:1010:1111:1::/64 所有真实服务器接口所在的标准子网。
Jool 网关虚拟机 fd01:1010:1111:1::100/64 独立网关的内网静态卡 IP。
HAProxy 虚拟机 fd01:1010:1111:1::200/64 边缘双栈负载均衡的内网静态卡 IP。
K8s Node 1 宿主机 fd01:1010:1111:1::11/64 节点 1 的物理物理网卡 IP。
K8s Node 2 宿主机 fd01:1010:1111:1::12/64 节点 2 的物理物理网卡 IP。
2. 虚拟网络规划(K8s 内部,由 Cilium eBPF 动态驱动)
该网段在物理世界上完全不存在,不需要在任何交换机或宿主机网卡上配置,完全由 Cilium 在内核层通过 netkit 进行虚拟路由:
角色 / 场景 K8s / Cilium 配置网段 说明与设计原理
K8s 虚拟总网段 fd01:1010:2222::/48 告诉 K8s 的 Pod 总池子是这个范围。
K8s Node 1 Pod 池 fd01:1010:2222:10::/64 Cilium 自动分配给 Node 1 内部 Pod 的子网(满足单节点 110+ Pod)。
K8s Node 2 Pod 池 fd01:1010:2222:11::/64 Cilium 自动分配给 Node 2 内部 Pod 的子网。
K8s Service 网段 fd01:1010:2222:99::/112 虚拟 ClusterIP 网段,固定 112 位掩码,完美压榨 CPU 查表性能。
3. 外部 NAT64 转换大门
• 64:ff9b::/96:全球通用的知名标准前缀。
📌 完美的参数对照(这就绝对不会冲突了)
后续初始化 K8s 集群时,参数要这样填:
• --pod-network-cidr=fd01:1010:2222::/48
• --service-cidr=fd01:1010:2222:99::/112
cilium netkit网络拓扑图
Pod A (fd00:1010:1000:10::5)
│
│ (通过 netkit 钩子,eBPF 直接将包打入宿主机内核)
▼
宿主机内核 (Cilium eBPF 查表)
│
│ (发现目的地是 64:ff9b::/96,直接触发 BPF_REDIRECT)
▼
物理网卡 (通过扁平的二层网络,直接将原始 IPv6 包发往 Jool 网关)
│
▼
Jool 虚拟机 (fd00:1010:1000:1::100) -> 翻译成 IPv4 出网
🔒 原创版权声明
本文标题:纯IPv6 kubernetes集群架构图
版权来源:Infraservicenow
⚠️ 重要声明:本站所有文章均为原创技术文档,未经作者书面正式授权,严禁任何形式转载、复制、摘抄、二次发布。
如需转载、引用、整理发布,请务必提前联系作者获得授权,违者将依法追究侵权责任。
© 2026 Infraservicenow All Rights Reserved. 保留所有权利。