1. 课程导论:服务目录平台概述、Cilium网络策略在其中的角色、常见故障场景总览

1.1 服务目录平台概述

服务目录平台是现代企业 IT 治理与云原生转型的核心组件,它通过统一的抽象层将底层基础设施(Kubernetes、虚拟机、裸金属)与上层业务应用解耦。平台的核心能力包括:

  • 服务注册与发现:微服务启动后自动向目录注册元数据(名称、版本、端点、标签),消费者通过逻辑名称而非 IP 地址进行调用。
  • 策略驱动的访问控制:基于服务身份(Service Identity)而非网络 IP 段定义通信规则,实现零信任网络模型。
  • 多集群/混合云联邦:跨集群、跨区域的服务目录同步,使全局服务拓扑对应用透明。
  • 可观测性集成:自动生成服务依赖图、调用链指标和审计日志,为排障提供数据基础。
组件层 典型实现 职责
服务目录 API Kubernetes CRD + 聚合 API 定义 Service、ServiceBinding、ServiceClass 等资源
身份与策略引擎 SPIFFE/SPIRE + OPA 签发服务身份证书、评估访问策略
数据平面 Cilium (eBPF) + Envoy 执行网络策略、负载均衡、加密传输
观测与排障 Hubble + Grafana + Loki 流量抓取、策略审计、日志聚合
排障视角提示: 服务目录平台中 80% 的网络故障并非底层链路中断,而是策略配置与目录元数据之间的语义不一致。理解目录的抽象模型是定位 Cilium 策略问题的前提。

1.2 Cilium网络策略在其中的角色

Cilium 基于 eBPF 技术,在服务目录平台中承担 数据平面执行者 和 身份感知策略引擎 的双重角色。其核心价值体现在三个层面:

  1. 身份驱动的策略模型:Cilium 通过 CiliumIdentity 将 Kubernetes 标签、服务账户、SPIFFE ID 映射为安全标识,策略规则直接引用服务目录中的逻辑身份,而非 IP/CIDR。
  2. L3-L7 全栈策略:支持从网络层(TCP/UDP)到应用层(HTTP/gRPC/Kafka)的细粒度控制,例如仅允许 payment-service 对 ledger-service 的 POST /api/v1/transactions 请求。
  3. 服务依赖自动发现:Cilium 与 Hubble 联动,实时生成服务间通信拓扑,策略变更前可模拟影响范围,避免误阻断。
Cilium 在服务目录平台中的角色架构 Cilium 在服务目录平台中的角色架构 服务目录控制面 ServiceClass / ServiceBinding / 身份签发 (SPIRE) Cilium 策略引擎 (Identity-Aware) CiliumNetworkPolicy / CiliumClusterwideNetworkPolicy 身份映射: k8s:app=payment → CiliumIdentity:1234 Cilium 数据平面 (eBPF) XDP / TC 钩子 · 服务负载均衡 · 加密 (WireGuard/IPsec) L3/L4 策略执行 · L7 策略 (Envoy 代理) · 可观测性指标 Hubble 流量日志 策略审计 服务拓扑

1.3 常见故障场景总览

基于生产环境排障案例的统计,服务目录平台中 Cilium 网络策略相关的故障可归纳为以下六大类。本课程将逐一深入剖析每个场景的根因、排查方法和修复策略。

故障类别 典型现象 根因方向 课程章节
身份映射失效 服务 A 无法访问服务 B,但策略规则看起来正确 标签选择器不匹配、身份未同步、SPIRE 证书过期 第 3 章
策略顺序与优先级冲突 部分流量被意外放行或阻断 默认拒绝未生效、策略叠加顺序错误、集群策略与命名空间策略冲突 第 5 章
L7 策略解析失败 HTTP/gRPC 请求返回 403 或连接重置 Envoy 代理配置错误、协议检测失败、TLS 透传导致 L7 不可见 第 7 章
服务目录元数据不一致 策略引用已删除或重命名的服务 目录缓存未刷新、ServiceBinding 状态过期、跨集群同步延迟 第 9 章
Hubble 观测数据缺失 排障时看不到被拒绝的流量记录 Hubble 过滤规则遗漏、流日志采样率过低、eBPF map 溢出 第 11 章
性能退化与连接超时 策略生效后延迟飙升、吞吐下降 eBPF 程序复杂度超限、加密开销、策略规则数量过多 第 13 章
课程路线图: 本课程共 30 章,前 6 章夯实身份与策略基础,第 7–14 章深入 L7 策略与观测排障,第 15–20 章覆盖多集群与混合云场景,第 21–30 章聚焦性能调优、安全加固与生产实战案例。每章均包含可复现的排障步骤和 Cilium/Hubble 命令行示例。
常见故障场景分类与关联关系 常见故障场景分类与关联关系 服务目录平台 身份映射失效 标签/SPIFFE 不匹配 策略顺序与优先级冲突 默认拒绝/叠加规则 L7 策略解析失败 Envoy/协议检测 目录元数据不一致 缓存/同步延迟 Hubble 观测数据缺失 过滤/采样/eBPF map 性能退化与连接超时 eBPF 复杂度/加密
排障第一原则: 在服务目录平台中,永远不要假设策略规则“看起来正确”就等于实际生效。必须通过 hubble observe 实时流量和 cilium identity list 身份映射来验证。本课程所有案例均遵循“先观测、后分析、再变更”的排障流程。