终极入门:Secrets Store CSI Driver 10分钟快速部署教程
Secrets Store CSI Driver 是一款专为 Kubernetes 设计的机密管理工具,它通过 CSI 卷将外部机密存储与 Kubernetes 集群无缝集成,实现安全、便捷的机密管理。本教程将带您在10分钟内完成从环境准备到实际应用的完整部署流程。## 📋 准备工作:环境要求与前提条件在开始部署前,请确保您的环境满足以下条件:- **Kubernetes 版本**:
终极入门:Secrets Store CSI Driver 10分钟快速部署教程
Secrets Store CSI Driver 是一款专为 Kubernetes 设计的机密管理工具,它通过 CSI 卷将外部机密存储与 Kubernetes 集群无缝集成,实现安全、便捷的机密管理。本教程将带您在10分钟内完成从环境准备到实际应用的完整部署流程。
📋 准备工作:环境要求与前提条件
在开始部署前,请确保您的环境满足以下条件:
- Kubernetes 版本:支持所有当前活跃维护的 Kubernetes 次要版本(遵循 Kubernetes 支持版本政策)
- 权限要求:具有集群管理员权限,能够创建命名空间、部署 DaemonSet 和管理 CRD
- 工具准备:已安装
kubectl命令行工具并配置集群访问
Secrets Store CSI Driver 架构示意图:展示了 Kubernetes 集群与外部机密存储的集成流程
⚡ 两种部署方式:Helm 与 YAML 任选
方式一:使用 Helm 快速部署(推荐)
Helm 是 Kubernetes 的包管理工具,能简化部署和版本管理。执行以下命令添加 Helm 仓库并安装驱动:
helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
helm install csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver --namespace kube-system
可选功能启用
如需使用高级功能,可添加相应参数:
| 功能描述 | Helm 参数 |
|---|---|
| 同步为 Kubernetes 机密 | --set syncSecret.enabled=true |
| 机密自动轮换 | --set enableSecretRotation=true |
完整配置选项可查看 Helm 图表配置
方式二:使用 YAML 清单部署
如果您偏好直接使用 YAML 文件部署,执行以下命令:
# 基础组件部署
kubectl apply -f deploy/rbac-secretproviderclass.yaml
kubectl apply -f deploy/csidriver.yaml
kubectl apply -f deploy/secrets-store.csi.x-k8s.io_secretproviderclasses.yaml
kubectl apply -f deploy/secrets-store.csi.x-k8s.io_secretproviderclasspodstatuses.yaml
kubectl apply -f deploy/secrets-store-csi-driver.yaml
# [可选] 启用机密同步功能
kubectl apply -f deploy/rbac-secretprovidersyncing.yaml
# [可选] 启用机密轮换功能
kubectl apply -f deploy/rbac-secretproviderrotation.yaml
# [可选] 部署 Windows 节点支持
kubectl apply -f deploy/secrets-store-csi-driver-windows.yaml
✅ 验证部署状态
部署完成后,验证驱动是否正常运行:
# 检查驱动 Pod 状态
kubectl get po --namespace=kube-system | grep csi-secrets-store
# 检查 CRD 是否已创建
kubectl get crd | grep secrets-store.csi.x-k8s.io
正常输出应包含:
- 每个节点上运行的
csi-secrets-store-xxxPod(状态为 Running) - 两个 CRD:
secretproviderclasses.secrets-store.csi.x-k8s.io和secretproviderclasspodstatuses.secrets-store.csi.x-k8s.io
🚀 快速使用指南
1. 创建 SecretProviderClass
创建一个 SecretProviderClass 自定义资源,定义您的机密提供程序配置:
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: my-secret-provider
spec:
provider: vault # 支持的提供程序:akeyless, azure, vault, gcp 等
parameters:
# 提供程序特定参数
vaultAddress: "https://vault.example.com:8200"
roleName: "my-role"
objects: |
- objectName: "db-creds"
objectType: "secret"
objectPath: "database/creds"
2. 在 Pod 中使用机密卷
更新您的 Pod 或 Deployment 配置,添加 CSI 卷挂载:
volumes:
- name: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "my-secret-provider"
containers:
- name: app
volumeMounts:
- name: secrets-store-inline
mountPath: "/mnt/secrets-store"
readOnly: true
3. 验证机密挂载
Pod 启动后,验证机密是否成功挂载:
# 替换 <pod-name> 为您的 Pod 名称
kubectl exec <pod-name> -- ls /mnt/secrets-store/
您应该能看到从外部机密存储获取的机密文件列表。
🔌 安装外部机密提供程序
Secrets Store CSI Driver 需要配合外部机密提供程序使用,选择以下适合您的提供程序并按照其文档安装:
📚 进阶功能探索
- 机密同步到 Kubernetes:将外部机密同步为 Kubernetes Secret,参考 Sync as Kubernetes Secret
- 环境变量注入:将机密作为环境变量使用,参考 Set as ENV var
- 自动轮换:设置机密自动更新,参考 Secret Auto Rotation
❓ 常见问题解决
如果遇到部署问题,请检查:
- 集群版本是否符合要求
- 所有 RBAC 权限是否正确应用
- 驱动 Pod 是否有错误日志:
kubectl logs -n kube-system <csi-secrets-store-pod> secrets-store
更多故障排除指南,请参考 官方文档
通过本教程,您已成功部署并开始使用 Secrets Store CSI Driver,为 Kubernetes 应用提供了安全、灵活的机密管理解决方案。如需深入了解,可查阅完整的 用户指南。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)