Cilium 术语

基础技术术语

术语
定义
Cilium 中的作用
eBPF
在 Linux 内核沙箱里动态运行字节码的技术,无需内核模块或 sidecar
Cilium 的数据路径基石,所有网络/安全/观测逻辑都以 eBPF 程序挂载到内核 hook 上执行
XDP​ (eXpress Data Path)
在网卡驱动层最早处理包的技术
Cilium NodePort/LoadBalancer 加速档位,包不等 skb 分配就处理完,延迟最低
TC​ (Traffic Control)
Linux 网络设备 ingress/egress hook
Cilium 做策略执行、封装/解封装的主要挂载点
Socket LB
在 socket 系统调用(connect/sendmsg/recvmsg)层做服务负载均衡
Cilium 替代 kube-proxy 的核心机制——东西向流量在 connect() 时直接选 backend,免去 per-packet NAT
BPF Map
eBPF 程序使用的内核哈希表/LRU 表
存放 Service 表、backend 表、CT(连接跟踪)、NAT 映射、policy 映射等,O(1) 查找、增量更新
CT​ (Connection Tracking)
连接状态跟踪
Cilium 用 BPF map 实现,替代 iptables 的 nf_conntrack,无全局锁竞争

安装与部署术语

术语
定义
作用
kube-proxy replacement
用 eBPF 完全替代 kube-proxy 的 iptables/ipvs 规则
通过 kubeProxyReplacement=true 开启;Service 的 ClusterIP/NodePort/LoadBalancer 全由 eBPF 处理
k8sServiceHost / k8sServicePort
Cilium agent 直连 API server 的地址
kube-proxy-free 场景必填——因为没有 kube-proxy 实现 kubernetes 这个 Service,Cilium 必须直连
--skip-phases=addon/kube-proxy
kubeadm init 时跳过 kube-proxy DaemonSet 安装
Cilium kube-proxy-free 部署的前置必要条件
Cilium CLI
cilium install 命令行工具
快速部署 Cilium,自动探测环境
Helm Chart
Cilium 官方 Helm 包
GitOps 场景(Argo CD/Flux)首选,所有参数通过 values.yaml 固化
cilium-agent
每台节点上的 Cilium 主进程(DaemonSet)
watch K8s API 的 Service/EndpointSlice/Policy 变更,编译并加载 eBPF 程序、更新 BPF Map
cilium-operator
集群级单例(或多副本)
处理 IPAM 池管理、CRD 清理、BGP CP 资源协调等集群级任务

路由与封装术语(routingMode / tunnel)

术语
定义
作用
routingMode: tunnel
节点间建立 UDP 隧道网格,Pod 包外层封装节点 IP
对底层网络要求最少——只要节点 IP 通 + 放行 UDP 端口
routingMode: native
不封装,Pod 包直接交给 Linux 内核路由
无封装、全 MTU、线速;要求底层网络能路由 PodCIDR
tunnel: vxlan
VXLAN 封装,UDP 8472,Header 固定 50B
tunnel 模式的默认协议,兼容性最好
tunnel: geneve
Geneve 封装,UDP 6081,Header 可变长
支持把 Cilium identity 和 DSR service info 编码进 Option;VXLAN 不支持隧道 DSR
autoDirectNodeRoutes
Cilium 自动在主机路由表加直连路由
仅同 L2 有效;跨子网必须 false
ipv4NativeRoutingCIDR
声明哪些 CIDR 走 native routing
native 模式必配,告诉 Cilium "这些 PodCIDR 走内核路由,别封装"
BPF masquerade
用 eBPF 做 SNAT 替代 iptables
bpf.masquerade=true 开启,性能优于 iptables SNAT
BPF host routing
用 eBPF 处理主机出口路由
绕过主机协议栈,进一步降低延迟(要求内核 ≥ 5.10)

负载均衡术语(loadBalancer.*)

术语
定义
作用
loadBalancer.mode: snat
默认模式,backend 回包经 LB 节点反向 SNAT
通用兼容,但 backend 看不到真实客户端 IP,回程多一跳
loadBalancer.mode: dsr
Direct Server Return,backend 直接回客户端
保留客户端真实 IP、回程少一跳;要求底层关源 IP 校验;VXLAN 隧道不支持,必须 geneve
loadBalancer.mode: hybrid
TCP 走 DSR + UDP 走 SNAT
生产推荐,兼顾 DSR 收益与 UDP 兼容性
loadBalancer.algorithm: random
默认算法,每包独立随机选 backend
无状态,backend 变更时所有连接重映射
loadBalancer.algorithm: maglev
Google Maglev 一致性哈希算法
backend 增删时无关 backend 重映射 ≤ 1%;只对南北向(外部→Service)生效,东西向走 socket-LB 不经 Maglev
maglev.tableSize
查找表大小,必须素数
建议 > 单 Service 最大 backend 数 × 100;65521 支撑 ~650 backend
maglev.hashSeed
集群级哈希种子
集群内所有 agent 必须一致,否则同一客户端在不同节点落到不同 backend
loadBalancer.acceleration: native
用 XDP 加速 NodePort/LB 入站
网卡驱动支持 native XDP 时开启(i40e/mlx5/bnxt 等)
dsrDispatch
DSR 模式下 service info 的携带方式
opt(native 同 L2)/ geneve(隧道场景)/ ipip
externalTrafficPolicy
外部流量是否跨节点转发
Local 保留客户端 IP;Cluster 默认允许跨节点
internalTrafficPolicy
内部 Pod→Service 是否允许跨节点
Local 仅本节点 backend(DaemonSet 类场景);Cluster 默认

IPAM 与对外发布术语

术语
定义
作用
IPAM​ (IP Address Management)
Pod IP 分配管理
cluster-pool(裸金属默认)/ kubernetes(kube-controller 分配)/ eni(AWS)/ azure(AKS)
cluster-pool
Cilium Operator 通过 CiliumNode CRD 给每节点分一段 PodCIDR
裸金属/自建集群最常用的 IPAM 模式
clusterPoolIPv4PodCIDRList
集群 PodCIDR 总池
跨子网大集群给 /12 留 4x 扩容余量
clusterPoolIPv4MaskSize
每节点 PodCIDR 掩码
24 = 每节点 254 Pod;25 = 128 Pod
LB IPAM​ (LoadBalancer IP Address Management)
管理 LoadBalancer 类型 Service 的 IP 分配
Cilium 内置,替代 MetalLB
CiliumLoadBalancerIPPool
定义 LB IP 地址池的 CRD
从运维段抠一段 IP 给 LB Service 用
L2 Announcement
通过 ARP/NDP 在 L2 广播域通告 LB IP
替代 MetalLB L2 模式;跨子网无效(ARP 出不了广播域)
CiliumL2AnnouncementPolicy
L2 通告策略 CRD
指定哪个 interface、哪个节点做 ARP 应答
ENI mode
AWS 场景 Pod IP 直接从 AWS ENI 分配
VPC 内原生可路由,无 SNAT、无封装
Prefix Delegation
AWS ENI 前缀委托,一次给 /28(16 个 IP)
大幅提升单节点 Pod 密度

BGP 术语(跨子网核心)

术语
定义
作用
BGP​ (Border Gateway Protocol)
自治系统间的路由协议
Cilium 用来向物理网络通告 PodCIDR/LB IP
ASN​ (Autonomous System Number)
BGP 的"自治域编号"
私有段 64512-65534;Cilium 侧 localASN,TOR 侧 peerASN;AS 不同走 eBGP
TOR​ (Top of Rack)
机柜顶部交换机
Cilium BGP 的邻居,peerAddress 就是 TOR 的 SVI IP
Spine-Leaf
数据中心 CLOS 拓扑
TOR(Leaf)上联 Spine,Spine 间 ECMP
eBGP
AS 不同的 BGP 邻居
Cilium 与 TOR 的标准建邻方式(TTL=1,单跳)
iBGP
AS 相同的 BGP 邻居
需要 multi-hop + route reflector,配置复杂
Cilium BGP Control Plane
Cilium 1.12+ 内置的 BGP 能力
每台节点 cilium-agent 自带 GoBGP,替代外挂 Bird/FRR
CiliumBGPClusterConfig
按 nodeSelector 分组定义 BGP 实例的 CRD
用户侧按 rack 写,operator 自动生成 NodeConfig
CiliumBGPPeerConfig
peer 通用参数(timers、GR、family)的 CRD
全局复用一份
CiliumBGPAdvertisement
宣告什么前缀(PodCIDR/Service)的 CRD
全局复用一份
CiliumBGPNodeConfig
每台节点的实际 BGP 实例
operator 自动生成,用户不写
ECMP
Equal-Cost Multi-Path,等价多路径
TOR/Spine 层面实现多节点多路径负载

网络策略与安全术语

术语
定义
作用
Identity
基于 Pod label 的身份标识(数字哈希)
Cilium 安全模型的基石——"按身份决策,不按 IP"
CiliumNetworkPolicy (CNP)
Cilium 的 L3/L4/L7 网络策略 CRD(命名空间级)
扩展 K8s NetworkPolicy,支持 L7(HTTP/gRPC/Kafka/DNS)
CiliumClusterwideNetworkPolicy (CCNP)
集群级 CNP
跨命名空间的策略
Endpoint
Cilium 管理的网络端点(通常是 Pod)
每个 Endpoint 有自己的 eBPF 程序和数据路径
CiliumEndpoint (CE)
描述 Pod 网络身份的 CRD
大规模集群数量巨大,需开 CiliumEndpointSlice 打包
L3/L4 Policy
基于身份+端口/协议的策略
eBPF 直接丢包,性能极高
L7 Policy
基于 HTTP method/path、gRPC、Kafka topic 的策略
通过 Envoy proxy(嵌入 Cilium agent)实现
Host Firewall
主机层面的防火墙策略
保护节点自身流量
Transparent Encryption
透明加密(IPsec/WireGuard)
Pod 间通信加密
Egress Gateway
出站流量网关
统一 SNAT 出口,便于防火墙策略

可观测性与运维术语

术语
定义
作用
Hubble
Cilium 的可观测性层
提供流级别网络可见性,无需 sidecar
Hubble Relay
Hubble 中继组件
聚合所有节点的流事件,端口 4244/TCP
Hubble UI
Hubble 可视化界面
服务依赖图、流日志查询
hubble observe
CLI 实时观察流量
hubble observe --verdict DROPPED 调试 NetworkPolicy 最有效
Service Map
服务依赖关系图
基于 Hubble 流数据自动构建
Cilium Status
cilium status 查看数据路径状态
验证 kube-proxy replacement、BGP、Hubble 等是否生效
BPF Map Sizing
eBPF map 大小调优
bpf.mapDynamicSizeRatio 按节点内存比例自动扩
Distributed LRU
1.18+ 的 CT/NAT 分布式 LRU
替代 node-global LRU,防高并发自旋
Cluster Mesh
多集群互联
跨集群 Service 发现、故障转移
Bandwidth Manager
带宽管理(EDT/BBR)
基于 eBPF 的拥塞控制

术语间的关系图

eBPF/XDP 是基石
  ↓
Cilium 用 eBPF 实现:
  ├── 路由封装(routingMode: tunnel/native + vxlan/geneve)
  ├── 负载均衡(kubeProxyReplacement + loadBalancer.mode + Maglev)
  ├── IPAM(cluster-pool/eni + LB IPAM)
  ├── BGP CP(跨子网通告 PodCIDR)
  ├── 网络策略(Identity + CNP + L7 via Envoy)
  └── 可观测性(Hubble)
  ↓
跨子网场景的两大路径:
  ├── 无 BGP → tunnel + vxlan(封装,零网络耦合)
  └── 有 BGP → native + BGP CP(无封装,性能最优)
 
posted @ 2026-08-07 13:58  小吉猫  阅读(8)  评论(0)    收藏  举报