Cilium 1.19:升级前该核对什么#
若你正规划从 1.18 升到 1.19.0(2026-02-04),这版 minor 的「含金量」主要在运维契约变化:Multi-Pool IPAM 从 Beta 转正、数据面 IPsec 与 BPF 主机路由可组合、Ztunnel 进入 Beta、网络策略与 Cluster Mesh 默认更严、BGP v1 Peering Policy 被移除。对平台工程师而言,值得保留的不是幻灯片逐条朗读,而是一张「升级前检查单」:策略是否跨集群、DNS 是否用 **.、BGP CRD 是否仍 v1、IPAM 是否要多池、可观测是否要开 Option 136。本期 eCHO 为 GitHub Release 走读,无现场集群 demo;下文按主题归纳可落地项,命令与 Helm 字段以 v1.19 文档 为准,口述性能数字单独标注。
升级与发布全貌#
Release 载明约 2934 commits、1010+ 贡献者。官方明确:使用 Network Policies、Cluster Mesh、LoadBalancer IPAM 或 BGP 时,升级前应阅读 1.19 Upgrade Notes,否则可能在策略语义或 BGP CRD 上踩坑。

Select Clusters Explicitly(#40609):策略 selector 未写 cluster 时,默认只允许本集群流量。以前依赖「隐式全集群」的 Cluster Mesh 规则需要显式补 cluster 名,否则跨集群服务会突然不通 — 这是 1.19 最值得优先 diff 的 breaking 行为之一。
Actively Deny Connections(#41406):egress 被 Network Policy 拒绝时,可回 ICMPv4 Destination unreachable,让客户端尽快失败,而不是黑洞式丢包。能力为 experimental,且仅 IPv4 egress。
# Helm(v1.19,默认 none)
policyDenyResponse: icmp
Agent 等价:--policy-deny-response=icmp。见 Policy intro — Deny Response。

DNS 多级通配:matchPattern 支持 **.example.com 前缀,可匹配 foo.bar.example.com 等多级子域,但 不匹配 父域 example.com 本身;若策略同时要管 apex,需另写 matchName(策略语言 — DNS)。升级说明指出:既有 **. 规则语义可能变化,上线前应用 staging 集群回放 DNS 策略。
弃用与引擎重构:Kafka 协议匹配(beta)、ToRequires / FromRequires 字段弃用;策略引擎内部重构为后续 minor 铺路(#39906 等)— 用户面主要是弃用字段迁移。
数据面:IPsec、Multi-Pool IPAM、Gateway#
BPF Host Routing + IPsec(#41997):在 kube-proxy replacement、BPF masquerade 与 IPsec 同时开启时,转发可走 eBPF 主机路由,减少传统路由查找开销。Upgrade Notes 写明会自动启用 eBPF Host Routing;节点内核需包含 CVE-2025-37959 修复。演讲者提到短连接 CRR 约 30% 提升 — 未出现在 Release 或文档,勿写入容量规划。
Multi-Pool IPAM(Stable,#40460):Helm 设 ipam.mode=multi-pool;CiliumPodIPPool(cilium.io/v2alpha1)新增 spec.podSelector,用 Pod 标签选池而无需改 Pod spec。文档要求:每个 IP family 必须且仅能匹配一个 pool,否则分配失败。Release 写明可与 IPsec + direct routing 联用,适合按池划分地址段并加密跨子网流量(multi-pool 概念)。池级注解仍包括 ipam.cilium.io/ip-pool 等。
Gateway API:Cilium 在 GAMMA 场景下支持 GRPCRoute(#41936),与既有 HTTPRoute 能力对齐;gRPC 负载均衡在 Cilium 数据面已久,1.19 主要是 API 面对齐。Release 写依赖 Gateway API v1.4;gateway-api 文档 页脚仍写 v1.3.0 — 以 Release 与 go.mod 为准。
Encryption strict mode:IPsec / WireGuard 均可开 strict,未加密节点间流量直接丢弃(#39239 等)— Release 有述,本期口述较简。若你已在用 WireGuard 或 IPsec 透明加密,升级时建议对照 Upgrade Notes 检查是否与 kube-proxy replacement、masquerade 模式冲突。
Ztunnel Beta(namespace 级纳管)#
Ztunnel 标为 Beta(#42766 等):Cilium 作控制面负责 workload 发现、证书签发;Pod netns 内通过 iptables 将 TCP 重定向到本地 ztunnel,实现透明加密。不支持 Pod 级开关,仅 namespace 标签;与 Cluster Mesh 不兼容(ztunnel 文档)。
encryption:
enabled: true
type: ztunnel
# 先按文档生成 secrets,再纳管 namespace
kubectl label namespace <ns> io.cilium/mtls-enabled=true
Helm 等价:--set encryption.enabled=true --set encryption.type=ztunnel。Mutual Authentication(out-of-band)在 1.19 默认关闭(#42665);若目标是 workload mTLS,文档倾向先试 Ztunnel。Beta 阶段应预留回滚路径,并在非生产集群验证与现有 CiliumNetworkPolicy 的交互。
LoadBalancer 与 port-forward:前者由云或 Cilium BGP/LB 数据面暴露 VIP;后者经 kube-apiserver 代理,适合调试。二者可并存访问同一 Service,但路径与可观测性完全不同 — 见 K8s port-forward 与 LoadBalancer Service(Cilium 上 LB 路径为演讲者归纳)。
Host Firewall:VRRP / IGMP#
keepalived VIP、IGMP 组播等流量没有 TCP/UDP 端口,旧版 host firewall 常因未知 L4 被丢弃。1.19 在 host 规则中支持 VRRP / IGMP(#39872、#41949),需集群开启 --enable-extended-ip-protocols。
# v1.19.0 examples/policies/host/allow-extended-protocols.yaml
toPorts:
- protocol: VRRP # 或 IGMP

口述中的 port: "0" 未出现在官方示例 — 部署前用 cilium policy validate 或集群实测确认 CRD 接受形态。
可观测性:IP 追踪与 Hubble 过滤#
IPv4 Option 136(Stream ID)在路径上标记流,Hubble 用同一 ID 串联(#41306):
helm install cilium oci://quay.io/cilium/charts/cilium --version 1.19.0 \
--namespace kube-system \
--set bpf.monitorTraceIPOption=136
hubble observe --ip-trace-id <id>
hubble observe --encrypted # #43096
hubble observe --unencrypted
安装字段为 bpf.monitorTraceIPOption(非口述的 bpfMonitor.trace)。CLI 上 IP 追踪用 --ip-trace-id,--trace-id 是另一类过滤器(Hubble CLI)。「经 NAT 仍可追踪」为演讲者口述,官方教程未写死该场景。
FlowLog 聚合(#42011):在 dynamic export 上配置 fieldAggregate、aggregationInterval、fieldMask 等,向 SIEM 发送聚合事件,Hubble 仍保留完整流 — 功能在 CHANGELOG/Helm 注释中成立,尚无与 Release highlights 同级的独立教程。典型动机是降低 Elasticsearch/Splunk 写入量,同时用 includeFilters 只导出关心的 verdict 或 namespace;aggregationInterval 需与 fieldAggregate 同时非空且大于 0 才生效(见 Helm hubble.export 与仓库内 valid-flowlogs-config.yaml)。
PLPMTUD、Helm OCI、BGP 与其它网络项#

PLPMTUD(#42012):用 TCP 在 endpoint netns 探测路径 MTU;Helm 键 pmtuDiscovery.packetizationLayerPMTUDMode 等。统一最低内核版本表 Release 未给出,需查 PR 或在目标节点实测。
Helm 分发:除 helm repo add cilium https://helm.cilium.io 外,可用 OCI:
helm install cilium oci://quay.io/cilium/charts/cilium --version 1.19.0 \
--namespace kube-system
见 Helm 安装 — 两种源并存,文档未宣布淘汰经典仓库。
BGP breaking change:CiliumBGPPeeringPolicy(v1)已移除,需迁移到 cilium.io/v2 的 CiliumBGPClusterConfig、CiliumBGPPeerConfig、CiliumBGPAdvertisement 等(Upgrade Notes)。1.19 还增加 Interface 类型通告、可覆盖 BGP session 源地址、无 endpoint 时撤回路由等运维向能力(Release BGP 小节)— 但若仍引用 v1 Peering Policy YAML,升级会直接失败,应优先改 GitOps 清单。同页还可关注:BIG TCP in tunnels(#43416)、IPv6 underlay(#40324)、L2 Announcements IPv6 ND、IPv6 Service loopback — 均以 Release 为准。
未闭合边界#
| 断言 | 状态 |
|---|---|
| BPF+IPsec「~30% TCP CRR」 | 演讲者口述,无官方 benchmark |
hubble observe --trace-id 做 IP 追踪 | 应为 --ip-trace-id |
Host policy port: "0" | 部分核验,以示例 YAML + 实测为准 |
| PLPMTUD / BIG TCP 内核门槛 | 需按节点查 PR/能力 |
Release 将 v1.19 与 Cilium 十周年并列;贡献入口 slack.cilium.io、Contributing。KubeCon 阿姆斯特丹议程见 Cilium at KubeCon EU 2026。书籍发行日、下期 1.20 嘉宾等为口述,不作技术契约。
延伸阅读:v1.19.0 Release · 文档首页 · Upgrade Notes · IP 包追踪教程



