Secrets Store CSI Driver 架构与设计思路分析
原文:
raw/secrets-store-csi-driver-architecture-analysis.md· 仓库:https://github.com/kubernetes-sigs/secrets-store-csi-driver · 优先级 P0
一句话定位
Secrets Store CSI Driver 通过 CSI volume 把外部 secret store 注入 Pod,并支持 provider、rotation 和可选 Kubernetes Secret 同步。
核心架构图
┌────────────────────────────────────────────────────────────────────────────┐
│ Pod volume intent │
│ A Pod references a SecretProviderClass through a CSI volume. │
└────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Secrets Store CSI Driver node plugin │
│ Handles mount requests and coordinates provider calls on the node. │
└────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Provider and sync layer │
│ Provider gRPC plugins fetch external secrets; rotation and optional K8s │
│ Secret sync run separately. │
└────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Runtime boundary │
│ Pods receive mounted secret files while source of truth remains in │
│ external secret stores. │
└────────────────────────────────────────────────────────────────────────────┘
模块分层
| 层 / 模块 | 职责 |
|---|---|
| CSI node plugin | mount volume into pod |
| Provider gRPC | Vault/Azure/GCP/AWS 等外部 secret |
| SecretProviderClass API | SecretProviderClass API |
| Rotation/sync controller | Rotation/sync controller |
关键数据流
Pod 引用 SecretProviderClass volume
│
▼
CSI driver 调用 provider
│
▼
provider 拉取外部 secret
│
▼
driver mount 到 Pod filesystem
│
▼
可选同步为 Kubernetes Secret 并轮转
设计决策与哲学
- 补齐
存储 / 凭据维度:Secrets Store CSI Driver 让当前 wiki 不只停留在 serving engine 或单个 operator,而能解释 Kubernetes 平台里的相邻控制面。 - 边界判断:Kubernetes Secret 是集群内对象;Secrets Store CSI Driver 把真凭据留在外部 secret manager,运行时挂载。
- 选型价值:它应和 cloud-native-security, agent-credential-isolation 一起看,而不是孤立评估。