【Istio 控制面】控制面全景:从 CRD 到 xDS 的翻译与推送内核
定位 Istio 控制面内核相对 Envoy 消费侧、Service Mesh 税文与 Gateway API 资源模型的缺口;给出五条坐标系、16 篇地图与本系列明确不写的范围,钉住 istiod 1.30.3 为主线。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 145 篇文章 · 返回首页
定位 Istio 控制面内核相对 Envoy 消费侧、Service Mesh 税文与 Gateway API 资源模型的缺口;给出五条坐标系、16 篇地图与本系列明确不写的范围,钉住 istiod 1.30.3 为主线。
以官方文档为准,对照 Linkerd destination/identity 控制面与 Istio istiod/xDS 的机制差异:资源模型、订阅形状、身份签发路径;只讲机制边界,不判定优劣。
用机制排除树收束 Istio CRD 翻译、Gateway API/GAMMA 与 eBPF L4 的选型边界,回收系列阅读路径,并列出推送 SLO、Ambient 成熟度、GAMMA 双轨等开放问题;不做延迟排行榜。
补齐 Envoy 数据面 xDS 消费侧与 Mesh 选型叙事之间的控制面内核:istiod 推送图、CRD/HTTPRoute 翻译、Ambient 多客户端、NACK/warming 责任与排障对齐。
相对 istio-xds/14 对照篇与 architecture/76 税文,钉清 Linkerd 2.20 非 xDS 控制面缺口;定义注入、identity、destination、策略与数据面五条轴,并强调 native sidecar 与 legacy 路径分列证据包。
以 Linkerd 2.20 为锚,拆解 proxy-injector 如何把 Pod 变成 mesh 成员;native sidecar 默认与 legacy init+sidecar 分列证据包,以及 opaque ports 与 membership 失败落格。
拆解 meshed Pod 内 TCP 如何经 iptables 或 Linkerd CNI 进入 linkerd2-proxy;inbound 与 opaque 端口语义,以及与注入轴衔接的重定向失败落格。
拆解 linkerd-identity 如何校验 CSR 并签发绑定 ServiceAccount 的工作负载证书;自动轮转与 issuer/trust anchor 分层,并对照 Envoy SDS 路径与失败落格。
拆解 linkerd-destination Pod 内 destination、sp-validator、policy 与反身 proxy 四容器分工;Informer/EndpointTranslator 如何把 Kubernetes 状态流式推给数据面,并钉住 2.20 内存优化门。
钉清 Linkerd 2.20 控制面与 linkerd2-proxy 之间的四套专用 gRPC 服务(destination/identity/inbound/tap),说明 per-target Get 流式寻址与 xDS type-subscription 的机制差,以及错误落在 gRPC 层而非 ACK/NACK。
展开 Linkerd 2.20 destination.Get 的 per-target 流式语义:EndpointTranslator 如何把 EndpointSlice 增量翻译成 add/remove/no_endpoints,identity 与 zone 富化,以及相对 xDS EDS 的失败落格与空流表象。
说明 Linkerd 2.20 策略 CRD(Server、AuthorizationPolicy、MeshTLSAuthentication)如何与 destination Pod 内 policy 容器分工,入站授权求值位置,以及策略拒绝与发现失败如何分列表象。
说明 Linkerd 2.20 ServiceProfile CRD 如何把 L7 路由、重试预算与超时注入 destination.GetProfile 流,sp-validator webhook 校验分工,以及与 Gateway API 路由的边界指针。
钉清 linkerd2-proxy 在 2.20 下的协议探测、入站/出站处理链、EWMA 负载均衡与 rate-limit-aware Load Biaser 机制;说明与 Envoy 数据面分工边界,不写 Rust vs C++ 性能榜。
钉清 Linkerd 2.20 支持的 Gateway API 1.2.1–1.5.1 版本门、mesh 路由与 Envoy Gateway 南北向分工、multicluster 共享 trust anchor 机制;不写 live 超前能力与未钉 GAPI 字段。
按 2.20 tag 钉控制面升级顺序、trust anchor/issuer 分层轮转、destination 内存重构运维门;附 live vs tag 门禁与否证检查表。无集群则不写升级成功叙事。
按 Linkerd 五轴映射未 mesh、TLS 失败、无端点、策略拒绝与 502;强调先点名轴、native sidecar 与 legacy init+sidecar 分列证据包;并说明不可与 istio-xds 五轴混因果。
从控制面协议、数据面引擎与排障坐标对照 istiod/xDS、Istio Ambient 与 Cilium eBPF L4;外链 istio-xds 全书不重写,不做跨方案 CPU 排行榜。
钉清 Linkerd 2.20 的 OSS stable 制品边界(2024-02 起)、Buoyant 商业分发与 edge 关系;不写定价菜谱,划分与观测/安全系列分工,开放问题指向选型终章。
用机制排除树收束何时不该跑 Linkerd;回收 istio-xds/16 的 Linkerd 叶;列出 native sidecar 与 Job、GAPI 双轨、与 Falco/Tetragon 联合 runbook 等开放问题;以 ADR 友好语言关闭续作边界。
补齐站内 istio-xds 对照篇之上的 Linkerd 控制面内核:proxy-injector、identity CSR、destination 按目标流式推送、linkerd2-proxy 数据面,并以排障与相对 istiod/xDS、Ambient、Cilium L4 的选型收束。
用机制排除树收束何时不该跑 Envoy Gateway;回收 Cilium 16 与 Tetragon 16 的南北向悬空指针;列出 status 当 SLO、IR 对账、remote infra、与 Cilium 四元组联合 runbook 等开放问题;关闭本系列续作边界。
相对 Tetragon 排除树、可观测对照与 linux/ebpf-security 快速启用清单,钉清 Falco 0.44.1 检测内核缺口;定义 Driver、libscap、libsinsp、规则引擎、输出与丢事件五条轴,并强调 modern_ebpf 与 kmod 分列证据包。
钉清 Falco 0.44.1 仅保留的两条等级内核路径:modern_ebpf 的嵌入、CO-RE 与能力集,以及 kmod 的独立 .ko、签名与完整特权;说明何时不能互换,并把 auto 回退收束为运维门。
钉清 libscap 如何把驱动事件送入用户态:打开会话、ring/缓冲、API Version 与 Schema Version 协商,以及与 modern_ebpf / kmod 的接口差;说明 0.43→0.44 大 bump 的失败表象。
钉清 libsinsp 如何用机器状态、线程/FD 表与用户态进程树富化 scap 事件;对照 Tetragon exec_id 的内核血缘差,并列出富化失败时规则条件「永远假」的表象。
区分驱动/用户态缓冲丢事件与规则未命中:钉清 buf_size_preset 与缓冲维度、drop 指标语义、0.44 BPF iterators 愈合路径,以及 0.44.1 可禁用 iterators 的容器门与双引擎证据包差。
钉清 Falco 0.44.1 规则轴:YAML 结构、条件求值与字段依赖、priority 与 exceptions 的语义差、引擎在 libsinsp 中的位置,以及条件永远假与异常过宽两类失败表象。
说明 Falco 0.44.1 规则如何进入进程:默认规则集与 falcoctl OCI 工件、本地/远程分工、加载失败表象,以及 watch_config_files / SIGHUP 热加载边界;不写规则仓库订阅菜谱。
钉清 Falco 0.44.1 告警离开引擎后的 sink 白名单;强调 0.44.0 已删除 gRPC output/server;区分输出背压与轴 5 驱动丢事件,并限定下游只能接到仍存在的通道。
说明 Falco 0.44.1 plugin 框架如何扩展事件源与字段;钉 container / k8smeta 与 syscall 主路径的分工、字段合流,以及元数据空时规则静默不命中;不写第三方 plugin 百科。
钉清 Falco 0.44.1 下 Helm/主机安装如何选定引擎:driver.kind ∈ {auto, modern_ebpf, kmod};auto 是运维门不是第三条内核;least-privileged 能力集只适用于 modern_ebpf,kmod 需要完整特权。
把 Falco 0.44.1 的权限/部署成本、规则噪声与已文档化的缓冲/base_syscalls 旋钮归因到五轴;区分误报与漏报落格;禁止未测 CPU% 排行榜与照抄站内对照数字。
按 0.44.0/0.44.1 Release Notes 钉破坏面:legacy eBPF、gVisor、gRPC output 已删;API/Schema 大 bump 要求用户态与 10.2.0+driver 成对升级;附升级否证表与 live 文档 vs tag 门禁。
按 Falco 五轴映射无事件、协商失败、富化空洞、规则未命中与输出/丢事件;强调先点名轴、modern_ebpf 与 kmod 分列证据包;并说明不可与 Tetragon 五轴混因果。
从过滤位置与能否 inline 阻断对照 Tetragon、auditd 与 seccomp;以 CVE-2022-26316 / GHSA-6v9j-2vm2-ghf7 作为历史检查窗口反例,不做 CPU 排行,也不写成弃用 Falco 的充分条件。
钉清 Falco 0.44.1 告警离开引擎后本系列承诺到哪一步:下游接线边界、规则仓库协作、响应自动化接口;不写 SIEM 逐步配置,并把生态开放问题交给选型终章。
用机制排除树收束何时不该跑 Falco;回收 Tetragon 16 与 Envoy Gateway 16 的 Falco 叶;列出 auto 可观测性、plugin 一致性 SLO、联合 runbook 与 BPF iterators 默认策略等开放问题;以 ADR 友好语言关闭续作边界。
补齐站内 Tetragon 排除树与产品对照之上的 Falco 检测内核:modern_ebpf 与 kmod 双引擎、libscap/libsinsp、规则引擎与输出,并以排障与相对 Tetragon/auditd/seccomp 的选型收束。
从过滤发生在哪一层、能否 inline 阻断对照 Falco、auditd、Cilium CNP/Hubble 与 seccomp;以 Garfinkel NDSS 2003 与 Falco CVE-2022-26316 作为 TOCTOU 谱系,不做 CPU 或内存排行。
用机制排除树收束何时不该跑 Tetragon;回收 Cilium 16 的运行时安全指针;列出 TOCTOU 可接受边界、JSON 与 gRPC 完备性、以及 v1.7.0 之后的 nodeSelector 与 domain sharding;关闭本系列续作边界。
补齐站内 Cilium 数据面与可观测对照之上的运行时安全内核层:进程模型、Sensor/Hook、TracingPolicy 与内核过滤、强制执行、事件导出与节流,并以排障与相对 Falco/CNP 的选型收束。
厘清 Cilium Gateway API 南北向入口与本系列东西向 eBPF 数据面的分工:能力边界、排障坐标分叉、加密与 KPR 组合风险;标明本系列刻意不写的 Gateway 全书内容。
用机制排除树收束 Cilium eBPF 相对 Calico、kube-proxy、Envoy sidecar、Ambient 的选型;回收 Envoy/HAProxy 终章的 eBPF 叶;列出系列级开放问题;以 ADR 友好语言关闭数据面续作边界。
补齐站内 Cilium 产品单篇与 eBPF 内核实现之上的数据面内核层:Endpoint/Identity、BPF 挂载与 Map、东西向包路径、kube-proxy 替代、策略编译、Hubble、加密与 Mesh/ClusterMesh 边界,并以排障与选型收束。
相对 Gateway API 产品教程、Cilium 南北向边界、Envoy 消费侧与 istiod 翻译,钉清 Envoy Gateway v1.9.0 控制面内核缺口;定义附着/status、IR、xDS、Envoy 数据面、入口之后东西向五条轴,给出 16 篇阅读路线。
钉清 Gateway API v1.6.1 角色分离在 Envoy Gateway v1.9.0 里的失败语义:parentRefs 与跨 namespace、ReferenceGrant 握手、Accepted 相对 Programmed / ResolvedRefs,以及 YAML 已 apply 仍无流量时该先查哪条条件。
钉清 Envoy Gateway v1.9.0 Kubernetes provider 如何把 Gateway API 与引用对象收成翻译输入集、Status Manager 如何写回,以及漏 watch、缺 CRD、namespace 范围收窄时的失败表象;并核对 System Design 对 file provider 的过时表述。
钉清 Envoy Gateway v1.9.0 为何用中间表示解耦 Gateway API 与 Envoy 资源树:XdsIR 与 InfraIR 的分工、Translate 的顺序与依赖,以及 status 为何必须在同一次翻译里计算。
把 XdsIR 钉到 LDS/RDS/CDS/EDS/SDS,把 InfraIR 钉到 Envoy 舰队;说明 go-control-plane Delta xDS 只保证快照送达,不能代替 Envoy warming 与 ACK。
钉 HTTPRoute/GRPCRoute 的附着、hostname、matches/filters/backendRefs 如何进入 RDS;对照 Gateway API v1.6.1 匹配优先级,以及 v1.9 RouteRulesOverlap 对同 listener 相同匹配的警告。
区分 Gateway listener 证书与 BackendTLSPolicy 后端 TLS;钉 v1.9 SDS unix:// 必填、共享 system_ca_certificates,以及 EnvoyPatchPolicy 旧 secret 名失效。
钉 TCPRoute/UDPRoute/TLSRoute 在 Gateway API v1.6 的版本;说明 EG v1.9 只 reconcile v1,standard channel 停服 v1alpha2,以及失败表象是无流量而不是 HTTP 500。
把 SecurityPolicy、BackendTrafficPolicy、ClientTrafficPolicy、EnvoyExtensionPolicy、EnvoyPatchPolicy 钉到 IR/xDS 层;说明 v1.9 mergeType 只允许挂 xRoute,以及 Lua 默认关闭与 Patch 匹配旧 xDS 名如何表现为「策略写了不生效」。
钉清 EnvoyProxy CR 与 Infra Manager 对数据面 Pod 的所有权;说明 GatewayNamespaceMode 的 xDS 认证修复、v1.9 remote infrastructure provider 的责任面,以及 mergeBackends 仍是默认关闭的 experimental 能力。
区分 Envoy Gateway 控制面信号与数据面 access log / metrics / tracing 各自能钉住的坐标轴;说明 v1.9 客户端强制追踪默认 0% 会被误判为「没开 tracing」,以及 xdsNACKTotal 只证明 xDS 被拒而非路由翻译失败。
钉清 gateway-helm 与 gateway-crds-helm 的所有权边界;说明 v1.9 把 safe-upgrades ValidatingAdmissionPolicy 挪进 chart 后的两种必做动作,以及 TCP/UDP 存储版本迁移与 xDS 32MiB 接收上限如何表现为无 NACK 的失败。
按五轴映射 Envoy Gateway v1.9.0 南北向故障:status 未绿、Translator 产出空或错误 XdsIR、xDS NACK、Envoy 仍服务旧快照、入口之后的东西向 CNI;口诀是先点名轴,再下钻模块。
从翻译内核与排障坐标对照 Envoy Gateway v1.9.0 与 Cilium Gateway、Istio/GAMMA、Ingress 注解模型,以及 Contour / NGINX Gateway Fabric 实现叶;机制差表,不做延迟排行榜。
请求离开 Envoy Gateway 之后,用北段/南段证据包和两套排障口令对接 Cilium v1.20.0 的 CNI/KPR/加密/Gateway 四元组;本系列不重写 identity 与 map。
补齐站内 Gateway API 产品教程与 Envoy 数据面消费侧之上的南北向控制面内核:附着与 status、Provider watch、IR 翻译、xDS 与 Infra、路由/TLS/L4/Policy 边界,并以排障与相对 Cilium Gateway / Istio / Ingress 的选型收束。
角色分离、资源模型、高级流量管理,以及从 Ingress 迁移到 Gateway API 的实战路径
从 Linux 网络栈的第一个字节到多集群联邦网络的最后一跳——用代码、抓包和内核源码把 Kubernetes 网络讲透
相对 Cilium 数据面、可观测对照与 Falco 口号,钉清 Tetragon v1.7.0 运行时安全内核缺口;定义进程血缘、Sensor/Hook、策略加载、过滤分层、强制执行五条坐标系,给出 16 篇阅读路线。
钉清 Tetragon v1.7.0 的进程身份:process_exec/exit 字段、exec_id 如何由 node:ktime:pid 生成、execve_map 与用户态 cache 的分工、in_init_tree 如何区分 kubectl exec 注入,以及 fork 时父不在 map 则子不入图的失败路径。
钉清 Tetragon v1.7.0 内置 __base__ 进程传感器与 TracingPolicy 动态 hook 的分工:kprobe/kretprobe、tracepoint/rawtp、uprobe/USDT、LSM 与 fentry 各自能观察什么、依赖哪些内核能力,以及选错 hook 类型时的失败表象。
钉清 Tetragon v1.7.0 事件离开 agent 之后的分流:文件 JSON、gRPC 与把 JSON 再喂给 tetra 不是同一集合;官方 Caution 写明 allow/deny 只作用于 file sink;field filter 与 redaction 各在哪一层生效。
钉清 Tetragon v1.7.0 agent 从 BTF/CO-RE 发现到 sensor 挂载的失败表象;对照 DaemonSet 与主机安装;说明默认 gRPC Unix socket 与 kubectl/gRPC/静态文件三条路径如何进入同一 collection map。
钉清 TracingPolicy 与 TracingPolicyNamespaced 的差异;给出 v1.7.0 CRD 字段总表(含 fentries);说明 kubectl、gRPC、静态文件如何共用 collectionKey;并写明 Enable/Disable gRPC 在默认配置下返回错误。
钉清 TracingPolicy 选择器在 v1.7.0 的匹配语义(selector 内 AND、每 hook 最多 5 个、first-match OR);覆盖 matchArgs/matchBinaries/matchParentBinaries 与 Post/NoPost/Override/Sigkill/Signal;区分内核动作与用户态 GetUrl/DnsLookup。
钉清 TracingPolicyNamespaced、podSelector、containerSelector 与 v1.7.0 hostSelector(null 与 {});改编官方组合表;说明无 OCI hook 时 API server best-effort,以及 policyfilter 关闭时的加载失败语义。
把 Tetragon v1.7.0 的文件、网络、能力观测收成三类 hook 模式:d_path 与参数类型如何解析路径、sock/sockaddr 看见什么、cred/capset 记录什么;并钉死路径截断、单挂载点、硬链接与 6.2+ truncate 符号消失等失败表象。
按 Tetragon v1.7.0 官方 Enforcement 文档钉死:Override 使函数不执行并返回 argError;SIGKILL 终止进程但不保证当前 syscall 无副作用;monitor 与 enforce 如何把动作抹掉;以及 Bishop–Dilger–Garfinkel 的 TOCTOU 谱系落到 bpf_enforcer.c 的边界。
按 Tetragon v1.7.0 tag 文档 cgroup-rate.md 钉死:节流只覆盖 PROCESS_EXEC/PROCESS_EXIT、按 per-CPU 计数、THROTTLE_START/STOP 语义;Post.rateLimit 要求内核 ≥5.3 且按同线程加参数前 40 字节去重;环缓冲丢失是失败模式而不是策略未匹配。
钉死 Tetragon v1.7.0 Upgrade notes:kprobe merge 指标合并为 tetragon_generic_kprobe_merge_total;JSON 轮转只服务文件 sink;默认 gRPC 改为 unix:///var/run/tetragon/tetragon.sock 会打断第三方客户端。不写 Splunk/ELK 菜谱。
按五轴映射 Tetragon v1.7.0 故障:无事件落在 Hook/BTF/加载,策略不生效落在 collectionKey 撞名与 policyfilter,JSON allow/deny 不等于 gRPC,Override 依赖 CONFIG_BPF_KPROBE_OVERRIDE,血缘空洞来自 execve_map 未命中与 procFS 回填。
钉死 Tetragon v1.7.0 Runtime Hooks:无 hook 时身份策略依赖 API server 而存在窗口;tetragon-oci-hook 经 tetragon.sock 同步通知 agent;CRI-O OCI 目录与 containerd NRI 的分工;agent 不可达时按命名空间 fail-open 或 fail-closed。
相对 k8s-network/13、ebpf/ 与 Envoy/HAProxy 排除树,钉清 Cilium eBPF 数据面内核缺口;定义 Identity、BPF 挂载、Map 状态、包路径、策略与观测五条坐标系,给出 16 篇阅读路线。
钉清 Cilium Endpoint 与 Numeric Identity 的关系:安全相关标签如何导出集群范围数字身份、保留身份与 well-known 身份、标签变更时的短暂 deny/allow 窗口,以及相对 IP 策略消除了什么。
说明 Cilium v1.20 如何在 XDP、TC、cgroup socket 等 hook 上分工;对照 bpf_xdp/host/lxc/sock 源码入口与 Intro 中的数据面对象;交代加载/替换边界,不重写 verifier 算法。
按 Cilium v1.20 Maps 文档钉清 policy、Service LB、CT、NAT、ipcache 等 map 的职责、默认容量与满表后果;说明 v3 policy map 语义变更,内核 map 实现外链 ebpf/ 系列。
沿 Cilium v1.20 Life of a Packet 钉清同节点与跨节点东西向停顿点:Endpoint Policy、Service、socket 加速、加密与 L7 重定向;说明与 netfilter/kube-proxy 旁路关系,并为 kube-proxy 替代篇铺路。
钉死 Cilium v1.20 kube-proxy replacement 下 ClusterIP、NodePort 与外部流量如何经 socket-LB / TC / XDP 与 service map;对照 iptables/IPVS,并列出 SNAT、DSR、Maglev 与共存迁移的失败表象——不写 Helm 百科。
拆解 Cilium v1.20 如何把 Kubernetes NetworkPolicy / CiliumNetworkPolicy 经 selector→identity 蒸馏进 endpoint policy map;钉死按方向的 default-deny 切换、Deny 优先与 identity 漂移造成的短暂拒绝/放行窗口。
界定 Hubble flow 关键字段对应数据面哪一层判定;区分 flow 流式观测与 Hubble/Cilium metrics 聚合口径,并列出指标全绿仍丢包的典型错位——不写 UI 点击教程。
聚焦 Cilium v1.20 透明加密如何挂接节点密钥与数据面路径:WireGuard 与 IPsec 的覆盖范围、strict mode、发现窗口明文泄漏,以及路径税与失败表象;密码学细节外链 wireguard 系列。
划清 Cilium v1.20 可选 L7 路径:BPF 何时重定向节点 Envoy、与 sidecar / Istio Ambient 的职责边界及失败面;不重写 Ambient 数据面,不把 Cilium 写成全能网格。
拆解 Cilium v1.20 ClusterMesh 的控制面(clustermesh-apiserver / kvstoremesh)、跨集群身份与服务发现边界;列出 maxConnectedClusters 与身份空间权衡,并显式写清 ClusterMesh 不提供的保证。
按观测层拆解 cilium status / cilium-dbg、Agent 与 Hubble Prometheus 指标语义、bpftool 与 cilium-dbg bpf 的职责边界;不粘贴伪造 scrape 或 Hubble 截图,只写口径与误读模式。
按五轴映射 Cilium 东西向故障:通用丢包、Policy denied、identity 漂移窗口、Service/ClusterIP 黑洞、透明加密失败;每轴绑定 status/Hubble/map 层,一次否证一轴。
从机制排除而非跑分出发,对照 Cilium eBPF 数据面与 Calico、kube-proxy iptables/IPVS、Envoy sidecar、Istio Ambient;链接 k8s-network/12–13、envoy/16、haproxy/14,不做延迟排行榜。
从 eBPF 数据面到 Identity 安全模型,全面拆解 Cilium 的架构与实现
相对 ceph/ RADOS 内核与 storage/ 云块选型,钉清 Rook/CSI 编排层缺口;定义 CSI RPC、sidecar、Operator/CRD、数据面归属、升级闸门五条坐标系,给出 16 篇阅读路线与 PVC Bound 之后 I/O 仍走 krbd→PG→BlueStore 的边界。
拆解 CSI Identity/Controller/Node 服务与 CreateVolume、NodeStageVolume、NodePublishVolume;对照 K8s external-provisioner/attacher/resizer/snapshotter 与 node-driver-registrar;给出 PVC→PV→Pod 挂载调用链与 in-tree→CSI 谱系,并点名规范最小面与 CSI-Addons 争论。
把 Rook 写成 Kubernetes Operator:钉 CephCluster、CephBlockPool、CephFilesystem、CephObjectStore 等核心 CRD 的职责;划清 reconcile 所有权与 rook-ceph 默认命名空间;明确 Rook 不重写 RADOS 内核,并讨论 Operator 边界与 Driver CR 所有权争论。
沿 CephCluster CR 追踪 mon/mgr/osd Pod 如何被调和出来;钉设备发现前置条件、dataDirHostPath、HEALTH_OK 验证与 toolbox;说明 Rook 在 HEALTH_ERR 时默认拒绝 Ceph 升级,并对照 host 设备与 PVC 模式争论。
钉死 Rook v1.20 起 Ceph-CSI Operator 为配置 CSI 的必选路径;拆解 OperatorConfig 与 Driver CR、相对 rook-ceph-operator-config 的迁移、ceph-csi-drivers Helm chart 与 csi-operator.yaml;回答新装之后谁拥有 CSI 设置。
拆解 Rook 默认 RBD CSI 如何把 StorageClass 参数与 Secret 转成 CreateVolume,再落到 Format 2 image;钉死 provisioner 命名前缀、池与 imageFeatures 边界,并外链 ceph/12 的对象命名——不重写 BlueStore。
拆解 RBD 的 NodeStageVolume/NodePublishVolume、map 路径与 imageFeatures 对 krbd 的依赖;说明失败为何常表现为挂上但怪;钉死 csi.readAffinity 与 Tentacle v20.2.0 损坏警告,并简述 network fencing。
拆解 Rook 上 CephFS CSI 如何用 subvolume 兑现 ReadWriteMany;钉死 provisioner 命名、StorageClass 与配额边界,并说明编排侧为 MDS/caps 付出的税——外链 ceph/13,不重写 journal 内核。
拆解 VolumeSnapshot/VolumeSnapshotClass/VolumeSnapshotContent 在 RBD 与 CephFS 上的保证;对照目录级 .snap 的语义差;覆盖 expand、静态 PV、clone/restore,以及 external-snapshotter 与 group snapshot CRD 版本错位失败模式。
划清 CephObjectStore/RGW 对 K8s 应用的暴露边界;说明 Rook NFS CSI 的 experimental 地位与依赖(CephFilesystem+CephNFS,非 RGW);本系列不写成 S3 教程——机制外链 ceph/14。
拆解 Rook 升级与 Ceph 滚动升级的闸门:HEALTH_ERR 拒绝、一次一个主版本、Squid/Tentacle 支持矩阵、v1.20 CSI Operator 必选迁移,以及 snapshot sidecar/CRD 错位——回应 ceph/18 点名的自动升级跳版本风险。
按观测层拆解 Rook toolbox、kubectl rook-ceph 插件、CSI liveness/sidecar 直方图与 mgr Prometheus / ceph-exporter 的字段语义与失败模式;不粘贴伪造 scrape 输出,只写口径与误读边界。
按六轴映射 Rook/CSI 常见故障:PVC Pending、MountFailed、RBD feature 静默失败、VolumeSnapshot 未就绪、升级卡住、mon endpoint/Secret 错配;每轴绑定 API/sidecar/CSI/Rook/Ceph 层,并回收 ceph/18 三条编排摩擦。
从机制排除而非跑分出发,对照 Rook+Ceph-CSI 与云托管块 CSI、Longhorn、裸 Ceph/cephadm 的分歧点;链接 storage/70 与 ceph/17,不做延迟排行榜与云厂商教程。
厘清 CSI Secret 信任边界、RBD LUKS / CephFS fscrypt(内核 ≥6.6)PVC 加密、OSD 加密双税警告,以及 out-of-service taint 触发的 client blocklist;用 StorageClass 边界谈多租户,不做 Helm 菜谱。
用机制排除树收束 Rook+Ceph-CSI 相对云 CSI、Longhorn、裸 Ceph 的选型;回收系列开放问题与 ceph/18 三条摩擦;标明何时不该跑 Rook;Tentacle+/Crimson 外链 Ceph 系列;以 ADR 友好语言关闭编排续作边界。
补齐站内 Ceph RADOS 内核之上的编排层:CSI 规范与 sidecar、Rook Operator/CRD、Ceph-CSI Operator、RBD/CephFS 供给与挂载、VolumeSnapshot 语义差、升级闸门,以及排障与选型收束。
拆解 pilot-discovery 二进制内部的组件化启动顺序:CA 为何先于 Discovery 初始化、注入 Webhook 与配置校验为何是独立 HTTPS 服务、以及哪些组件真正位于 xDS 推送热路径上。
拆解 istiod 如何从节点 ID 与 mTLS/JWT 得到一个 model.Proxy 身份,以及 NodeType 如何决定该连接会订阅哪一套 xDS 资源类型:sidecar/Router 走标准 LDS/RDS/CDS/EDS,ztunnel 走自定义 Address/Authorization,waypoint 是 Envoy 但推送触发条件不同。
画出 istiod 从 K8s watch 事件到某个代理收到 DiscoveryResponse 的完整推送图:ConfigUpdate、debounce、PushQueue、pushXds 各自的边界与代码依据,钉住 VersionInfo/Nonce 的生成规则,并说明为什么控制面的推送成功不等于 Envoy 在服务。
拆解 istiod 如何把 K8s Service、EndpointSlice、WorkloadEntry 聚合进内部服务模型,再经 CdsGenerator/EdsGenerator 分别生成 Cluster 与 ClusterLoadAssignment;钉住命名契约与部分推送边界,subset 留给 DestinationRule 篇。
拆解 istiod 的 RdsGenerator 如何把 VirtualService 与 Gateway API HTTPRoute(含 GAMMA mesh 模式)都编译成同一份内部路由模型,说明为何双轨输入会在同一 host 上产生冲突,以及两套 API 的合并顺序为何一个确定、一个未定义。
拆解 DestinationRule 如何在 CDS 已生成的 Cluster 之上派生 subset、挂载 connectionPool/outlierDetection/loadBalancer/tls,以及 mesh 默认、DestinationRule 级、port 级、subset 级四层设置的真实合并规则——其中 port 级与 subset 级的继承语义并不对称。
拆解 PeerAuthentication 如何落到入站 filter chain 的 mTLS 要求、AuthorizationPolicy 如何编译成 Envoy RBAC filter 的 permission/principal,以及 istiod CA 签发证书后 istio-agent 作为本地 SDS server 如何把 SPIFFE 身份证书喂给 Envoy;策略语义不重复展开,见零信任系列。
拆解 Sidecar 的 egress 裁剪、Telemetry API 的三层继承、EnvoyFilter 的补丁排序规则;三者作用在生成流水线的不同阶段,各自有一套容易被误用的合并/覆盖语义;不讲 Wasm/EnvoyFilter SDK 编程。
拆解 istiod 生产侧的 Full/Incremental 推送决策与 debounce 合并逻辑,说明它与 Envoy 消费侧 SotW/Delta 协议变体是两个正交问题;用 pilot/pkg/xds 源码钉住端点抖动下的日志可见性盲区。
用 pilot/pkg/xds 的 PushOrder 与 ShouldRespond 源码钉住 istiod 推送顺序与 NACK 处理边界,说明为什么'istiod 已推送'与'Envoy 在服务'之间的责任划分不在同一层,给出排障用的责任表。
拆解 Istio 多集群服务发现的控制面机制:remote secret 如何让 istiod 跨集群 watch,Split-Horizon EDS 如何按网络重写端点为东西向网关地址;只讲机制边界,不做厂商评选或延迟排行。
从 istiod 的 NodeType 与推送过滤代码出发,说明 ztunnel(Rust L4、HBONE、per-node)与 waypoint(Envoy L7、per-namespace)是两类订阅完全不同的 xDS 客户端,并指出 ambient 推送优化仍是源码里明写的 TODO。
把翻译、推送、ACK、warming、身份五个责任层对齐到具体 istioctl 子命令与 Envoy admin 端点,给出核对顺序而非命令输出;命令语义均引用官方文档,不粘贴未执行的结果。
nodeSelector 是什么:它如何在 kube-scheduler 的 Filter 阶段用节点标签硬约束落点,与 nodeAffinity、taint/toleration、topologySpread 的职责边界,以及 Pending 与过度约束的常见踩坑。
K8s 网络三条铁律、pause 容器的真实作用、Pod 网络命名空间的创建全过程
从 CNI 规范的四个操作到手写一个最简 CNI 插件,理解 K8s 网络的插件化机制
从 userspace 到 eBPF,拆解 kube-proxy 四种模式的实现原理与性能权衡
K8s 双栈网络的演化历程、地址分配机制、CNI 支持现状与现实中的陷阱
Flannel 三种 backend 的深度拆解,以及为什么它仍然是某些场景的最佳选择
Felix、BIRD、Typha 四大组件拆解,从纯 BGP 路由到 eBPF 数据面的 Calico 全景
不是功能矩阵,而是基于真实场景和性能实测的 CNI 选型决策指南
ndots:5 的查询放大、search domain 陷阱、NodeLocal DNSCache,以及 DNS 排查全套路
ExternalTrafficPolicy 的真实行为、拓扑感知路由机制、MetalLB 深度拆解
主流 Ingress Controller 架构对比、热更新机制、TLS 终止,以及为什么 Ingress API 注定被替代
从默认放行到零信任白名单,NetworkPolicy 的实现原理、策略模式与 CRD 扩展
从 IP-based 到 Identity-based 安全,Cilium 零信任网络架构的实现与落地
iptables、nftables、eBPF 三种防火墙机制的架构差异、性能对比与迁移路径
WireGuard、IPsec、透明 mTLS 三种容器网络加密方案的原理、性能与选型
MTU 层层封装计算、不匹配症状诊断、PMTUD 黑洞排查,以及各 CNI 的最佳 MTU 配置
DSR 三种实现方式、Cilium DSR 深度拆解、Maglev 一致性哈希,以及 DSR 的那些坑
三层可观测性体系:经典抓包工具、eBPF 原生观测、全栈 Metrics/Logs/Traces 一体化
10 个真实网络故障案例拆解,从 conntrack 表满到 ClusterMesh DNS 失败的完整排查手册
三种多集群网络模式的深度对比,从 Cilium ClusterMesh 到 Submariner 到 MCS API
VPC Peering、云厂商 CNI 对比、三云联邦网络架构设计实战
四大趋势、AI 工作负载挑战、架构师决策矩阵,以及 K8s 网络的知识图谱
Kubernetes 实战笔记:高可用集群部署、Helm 包管理与 Istio 服务网格实践