日志过了 mTLS 那一关,下一个问题是指给谁:同一个 audit-gateway,K8s 里有三种 Service——headless、ClusterIP、还有那个叫 multi 的陷阱。四级台阶讲清一件事:TLS 在边缘终止,负载均衡要到每个 Pod。
全链路七跳,本页覆盖接入两跳:终端 Agent → envoy mTLS(本页)→ audit-gateway(本页)→ Kafka → Flink ETL → std topic → StarRocks。envoy 是大门,gateway 是收发室,两个都不许有单点。
二十八句确定性短句,分四组:入口与端口、TLS 终止与转发、三种 Service、副本与高可用。
三张图:envoy→headless→3 Pod 链路(可点击)、三种 Service 对比表、per-Pod 健康检查时序。
上游选择台:分别选 headless / ClusterIP / multi,看 DNS 返回、envoy 视角、健康检查能力、结论四栏联动。加六题自测与排障三连。
六镜头:入口三扇门 → 边缘终止 → DNS 魔法 → 逐 Pod 把脉 → multi 陷阱 → 无单点收尾。成片已交付 · 01:33。
主角:envoy-gateway(Deployment ×2)与 audit-gateway(Deployment ×3)
一句话:TLS 在边缘终止,负载均衡到每个 Pod。
三个数字:30015 正式入口 · 3 个 Pod IP · 1 个失效 endpoint(multi)。
解决两件事:不可信网络的身份验证(mTLS)· 上游无单点(headless + 健康检查)。
Agent(gRPC+mTLS) → envoy :30015 ×2(TLS 终止)→ 查 headless DNS → 3 × PodIP:8285 → 逐 Pod LB + 健康检查 → audit-gateway ×3(校验 token/租户)→ Kafka
以下每句话都来自交接材料(部署手册、envoy 配置、设计方案 v5)。读不懂的句子,去 L2 找对应的结构图。
三张图:先看 envoy 到 3 个 Pod 的完整链路,再把三种 Service 摆上同一张表对比,最后看健康检查怎么剔除坏 Pod。
同一个 audit-gateway,三种 Service 形态给 envoy 的世界完全不同。分别点选,看 DNS 返回什么、envoy 能做什么健康检查、最终结论是什么。玩完做六题自测。
已答 0 / 6 · 正确 0 · 正确率 0%
1. Agent 的正式上报入口是?
2. envoy 的 gRPC 上游应该指向哪个 Service?
3. audit-gateway-multi 为什么禁止用作上游?
4. ClusterIP Service 用作 gRPC 上游的局限是?
5. 上游健康状态在哪里观察?
6. 30016 调试口的正确用法是?
get endpoints audit-gateway-headless 必须返回 3 个 Pod IP:8285。返回 0 个 = Service/标签配错。
envoy Admin :9901/clusters 看 3 个上游是否全 healthy;有 removed 说明健康检查在剔除坏 Pod。
openssl s_client 带 client 证书连 30015,看到 Verify return code: 0 (ok) 即 mTLS 链路通。
六镜头讲完「指给谁」这个决定:三扇门、边缘终止、DNS 魔法、逐 Pod 把脉、multi 陷阱、无单点收尾。画面里的端口、副本数、endpoint 状态与 L1–L3 同源。
规格:1920×1080 · 30fps · 01:33 · H.264 + AAC · 中文配音(zh-CN-Yunxi 逐句合成,每句实测时长均落在自己的字幕窗口内)+ 画面内嵌字幕。底部常驻进度轨随镜头推进点亮。
镜头 1 · 入口三扇门
画面:envoy 城堡三扇门亮起——30015 重锁(mTLS)、30016 敞门(调试)、30017 中锁(HTTP)。
旁白:所有终端要进的,是 30015 这扇门。门上两把锁:你的证书,和我的证书。
镜头 2 · TLS 在边缘终止
画面:加密隧道抵达城堡即拆开,城内道路全部明文,证书卡片留在门房。
旁白:密文只走不可信的路。过了门,内网明文换吞吐;要换证书,只动这一处门房。
镜头 3 · headless 的 DNS 魔法
画面:envoy 问 DNS,返回的不是 VIP 而是三张 Pod 名片,虚线直连三个房间。
旁白:headless 不设总机。DNS 报出三个真名,envoy 一个个直连——这才叫认识每个 Pod。
镜头 4 · 逐 Pod 把脉
画面:envoy 给三个 Pod 依次号脉,Pod-2 变灰被移出圆桌,恢复后又被请回。
旁白:认识,就要负责。健康检查逐个把脉,病了移出,好了请回——九千一百端口上看得一清二楚。
镜头 5 · multi 陷阱
画面:multi 门牌金光闪闪,推门是一条断头路,路牌写「无 selector · 1 失效 endpoint」。
旁白:名字最像的那个,恰恰是陷阱。指给 multi,流量就进了死胡同——部署手册把它标成禁地。
镜头 6 · 收尾:无单点
画面:两座城门、三个房间全景图,任意一个熄灭,路线自动改道,日志流不断。
旁白:两扇门、三个房间,谁坏了都有人顶上。这就是入口的设计:验证身份,然后,永不单点。
① 边缘终止 TLS
证书集中管理,内网明文换吞吐,轮换只动边缘。
② headless 上游
per-Pod 负载均衡 + 主动健康检查,ClusterIP 做不到。
③ per-Pod 健康检查
坏 Pod 剔除、恢复加回,全部 envoy 内完成。
④ ×2 与 ×3
接入层与解析层独立扩缩,各自无单点。
⑤ multi 前车之鉴
无 selector + 失效 endpoint = 指向空地址。
⑥ 端口各司其职
上报 30015、调试 30016、HTTP 30017,永不混用。