终极入门:Secrets Store CSI Driver 10分钟快速部署教程

【免费下载链接】secrets-store-csi-driver Secrets Store CSI driver for Kubernetes secrets - Integrates secrets stores with Kubernetes via a CSI volume. 【免费下载链接】secrets-store-csi-driver 项目地址: https://gitcode.com/gh_mirrors/se/secrets-store-csi-driver

Secrets Store CSI Driver 是一款专为 Kubernetes 设计的机密管理工具,它通过 CSI 卷将外部机密存储与 Kubernetes 集群无缝集成,实现安全、便捷的机密管理。本教程将带您在10分钟内完成从环境准备到实际应用的完整部署流程。

📋 准备工作:环境要求与前提条件

在开始部署前,请确保您的环境满足以下条件:

  • Kubernetes 版本:支持所有当前活跃维护的 Kubernetes 次要版本(遵循 Kubernetes 支持版本政策
  • 权限要求:具有集群管理员权限,能够创建命名空间、部署 DaemonSet 和管理 CRD
  • 工具准备:已安装 kubectl 命令行工具并配置集群访问

Secrets Store CSI Driver 架构图

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-xxx Pod(状态为 Running)
  • 两个 CRD:secretproviderclasses.secrets-store.csi.x-k8s.iosecretproviderclasspodstatuses.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 需要配合外部机密提供程序使用,选择以下适合您的提供程序并按照其文档安装:

📚 进阶功能探索

❓ 常见问题解决

如果遇到部署问题,请检查:

  1. 集群版本是否符合要求
  2. 所有 RBAC 权限是否正确应用
  3. 驱动 Pod 是否有错误日志:kubectl logs -n kube-system <csi-secrets-store-pod> secrets-store

更多故障排除指南,请参考 官方文档

通过本教程,您已成功部署并开始使用 Secrets Store CSI Driver,为 Kubernetes 应用提供了安全、灵活的机密管理解决方案。如需深入了解,可查阅完整的 用户指南

【免费下载链接】secrets-store-csi-driver Secrets Store CSI driver for Kubernetes secrets - Integrates secrets stores with Kubernetes via a CSI volume. 【免费下载链接】secrets-store-csi-driver 项目地址: https://gitcode.com/gh_mirrors/se/secrets-store-csi-driver

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐