【Cilium / eBPF】Gateway API / 南北向边界:与本系列东西向焦点的分工
内容提要
本文探讨Cilium v1.20中南北向Gateway与东西向数据面的边界,旨在明确排障责任:东西向问题聚焦身份、策略等五轴,南北向问题则关注Gateway/Envoy。启用Gateway时需检查东西向基线、固定CNI及加密配置,并拆分北段(入口)与南段(后端)证据包,以防误判。
延伸解读
南北向与东西向的排障坐标差异
本文强调,Cilium Gateway 的南北向 L7 数据面由用户态 Envoy 处理,而东西向数据面依赖 BPF 和身份策略。排障时需区分:包在进入监听器前的问题归 Gateway/Envoy,包成为 Pod 间流量后的问题归五轴。混淆两者会导致值班在 Hubble Policy denied 与 Envoy 路由之间空转,延长 MTTR。
组合回归风险与上线检查单
文章指出,Gateway API 与云 CNI chaining、native routing、WireGuard 加密等组合可能引发跨节点南北向流量黑洞,且 Hubble 不显示 drop。因此,启用 Gateway 前必须确认东西向基线正常,并固定 CNI 模式、KPR、加密等四元组。否则,出问题时难以定位,只能猜测。
证据包拆分:北段与南段
针对外部客户超时类工单,建议将证据包拆为北段和南段:北段包含 Gateway/Route 状态、Envoy 日志等,南段包含后端 Pod identity、Hubble verdict 等。只提供北段可能将后端 CNP deny 误判为网关故障,只提供南段则可能将证书错误误判为 Cilium 丢包。
Ingress 与 Gateway 的并存陷阱
许多集群同时存在 Ingress 和 Gateway API,但字段同名(如 ingress identity)不代表实现同栈。若默认流量仍走 Ingress,却将 Hubble 中的 ingress identity 解释为 Gateway,会导致误判。平台应选定一个南北向实现作为默认,避免长期双默认增加心智负担。
Q&A
Cilium中南北向流量和东西向流量的排障责任如何划分?
南北向流量(集群外客户端到集群内服务)的排障重点在Gateway/Envoy,而东西向流量(Pod到Pod)的排障重点在身份、策略、Service BPF LB、加密等五轴。当包还在集群外进入监听器时,先查Gateway/Envoy;当包已成为Pod身份之间的东西向流时,先查五轴。
Cilium v1.20中Gateway API支持了哪些新特性?
Cilium v1.20将Gateway API支持推进到上游v1.6.1,包括BackendTLSPolicy(网关到后端的TLS与证书校验)和HTTPRoute的更多流量控制(如CORS、额外重定向码等)。
启用Cilium Gateway前需要检查哪些东西向基线?
需要确认东西向基线已绿(第13篇轴一至四在无Gateway时已有runbook),固定四元组(CNI chaining与否、native/tunnel、KPR开闭、加密模式),确保身份可读(能用Hubble区分world/ingress与后端Pod identity),检查回程与健康检查(外部LB→Gateway监听端口与hostNetwork/NodePort无冲突),并确保回滚面(关掉Gateway后东西向五轴仍可独立值班)。
哪些症状表明问题仍属于东西向五轴,而不是Gateway?
如果Gateway已返回200,但服务网格内A→B偶发deny,属于轴二/三;经ClusterIP访问后端失败,绕过Gateway直连也失败,属于轴四/五或轴一;同节点通、跨节点挂,且未改Gateway,先怀疑加密/路由。这些症状与监听器无关,应继续用五轴排障。
哪些症状表明需要离开东西向坐标系,转向Gateway/Envoy排障?
如果HTTPRoute未附着、监听器未编程、TLS证书未就绪,应查Gateway API控制器或Envoy admin;仅Host header/路径错误导致404,Hubble显示入口已转发,属于L7路由配置;xDS/NACK、Envoy cluster耗尽,应使用Envoy排障方言;外部LB→NodePort与Gateway hostNetwork端口冲突,属于南北向部署拓扑问题。
在Cilium中,南北向和东西向的观测仪表盘有何不同?
东西向值班仍使用第12篇的最小仪表盘,关注cilium_endpoint_state、Hubble identity等;南北向应追加监听器就绪、BackendTLS、嵌入Envoy指标等信号。对于外部客户5xx/超时,先看Gateway/Envoy指标与访问日志,不要只看cilium_endpoint_state;已过Gateway后端互调失败,看Hubble后端identity,不要只改HTTPRoute重试。
对于外部客户超时类工单,如何拆分北段和南段证据包?
北段证据包应包含Gateway/Route状态、嵌入Envoy失败旗标或访问日志状态码、监听器是否编程;南段证据包应包含后端Pod identity、Hubble verdict/reason、是否经ClusterIP、是否应加密。只有北段没有南段,会把后端CNP deny误判成网关坏了;只有南段没有北段,会把证书/路由错误误判成Cilium丢包。
Cilium Gateway与东西向数据面的关系是什么?
Cilium Gateway是南北向入口,与东西向数据面正交。可以选择Cilium CNI + 外部Envoy Gateway,或Cilium CNI + Cilium Gateway,或其他CNI + Cilium不负责Gateway。选了Cilium不等于必须用Cilium Gateway;用了Cilium Gateway不等于可以不会东西向五轴。ADR应分两行写:东西向数据面与南北向入口实现。