5.20. Secret Store CSI 驱动程序
5.20.1. 概述
Kubernetes secret 以 Base64 编码的形式存储。etcd 为这些 secret 提供加密,但在检索 secret 时,它们会被解密并提供给用户。如果没有在集群中正确配置基于角色的访问控制,则具有 API 或 etcd 访问权限的任何人都可以检索或修改 secret。另外,有权在命名空间中创建 pod 的任何人都可以使用该命名空间中的任何 secret 来读取该命名空间中的任何 secret。
要安全地存储和管理您的 secret,您可以将 OpenShift Container Platform Secrets Store Container Storage Interface (CSI) Driver Operator 配置为使用供应商插件从外部 secret 管理系统(如 Azure Key Vault)挂载 secret。应用程序可以使用 secret,但 secret 在应用程序 pod 被销毁后不会在系统中保留。
Secret Store CSI Driver Operator(secrets-store.csi.k8s.io
)允许 OpenShift Container Platform 将存储在企业级外部 secret 中的多个 secret、密钥和证书作为卷挂载到 pod 中。Secrets Store CSI Driver Operator 使用 gRPC 与供应商通信,以从指定的外部 secret 存储获取挂载内容。附加卷后,其中的数据将挂载到容器的文件系统。Secret 存储卷以 in-line 形式挂载。
有关 CSI 内联卷的更多信息,请参阅 CSI 内联临时卷。
Secret Store CSI Driver Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
在使用 CSI 驱动时,建议先熟悉 持久性存储和配置 CSI 卷。
5.20.1.1. Secret 存储供应商
以下 secret 存储供应商可用于 Secret Store CSI Driver Operator:
- AWS Secrets Manager
- AWS Systems Manager Parameter Store
- Azure Key Vault
- HashiCorp Vault
5.20.2. 关于 CSI
在过去,存储厂商一般会把存储驱动作为 Kubernetes 的一个部分提供。随着容器存储接口 (CSI) 的实现,第三方供应商可以使用标准接口来提供存储插件,而无需更改核心 Kubernetes 代码。
CSI Operators 为 OpenShift Container Platform 用户提供了存储选项,如卷快照,它无法通过 in-tree 卷插件实现。
5.20.3. 安装 Secret Store CSI 驱动程序
先决条件
- 访问 OpenShift Container Platform Web 控制台。
- 集群的管理员访问权限。
流程
安装 Secret Store CSI 驱动程序:
安装 Secret Store CSI Driver Operator:
- 登录到 web 控制台。
-
点 Operators
OperatorHub。 - 通过在过滤器框中输入 "Secrets Store CSI" 来查找 Secrets Store CSI Driver Operator。
- 点 Secrets Store CSI Driver Operator 按钮。
- 在 Secrets Store CSI Driver Operator 页面中,点 Install。
在 Install Operator 页面中,确保:
- 选择 All namespaces on the cluster (default)。
- 安装的命名空间 被设置为 openshift-cluster-csi-drivers。
点 Install。
安装完成后,Secret Store CSI Driver Operator 会在 web 控制台的 Installed Operators 部分列出。
为驱动程序创建
ClusterCSIDriver
实例 (secrets-store.csi.k8s.io
):-
点 Administration
CustomResourceDefinitions ClusterCSIDriver。 在 Instances 选项卡上,单击 Create ClusterCSIDriver。
使用以下 YAML 文件:
apiVersion: operator.openshift.io/v1 kind: ClusterCSIDriver metadata: name: secrets-store.csi.k8s.io spec: managementState: Managed
- 点 Create。
-
点 Administration
5.20.4. 卸载 Secret Store CSI Driver Operator
先决条件
- 访问 OpenShift Container Platform Web 控制台。
- 集群的管理员访问权限。
流程
卸载 Secret Store CSI Driver Operator:
-
停止所有使用
secrets-store.csi.k8s.io
供应商的应用程序 pod。 - 为所选 secret 存储删除任何第三方供应商插件。
删除 Container Storage Interface (CSI) 驱动程序和相关清单:
-
点 Administration
CustomResourceDefinitions ClusterCSIDriver。 - 在 Instances 选项卡上,对于 secrets-store.csi.k8s.io,点左侧的下拉菜单,然后点 Delete ClusterCSIDriver。
- 出现提示时,单击 Delete。
-
点 Administration
- 验证 CSI 驱动程序 pod 是否不再运行。
卸载 Secret Store CSI Driver Operator:
注意在卸载 Operator 前,必须先删除 CSI 驱动程序。
-
点 Operators
Installed Operators。 - 在 Installed Operators 页面中,在 Search by name 框中输入 "Secrets Store CSI" 来查找 Operator,然后点击它。
-
在 Installed Operators > Operator 详情页面 的右上角,点 Actions
Uninstall Operator。 当在 Uninstall Operator 窗口中提示时,点 Uninstall 按钮从命名空间中删除 Operator。Operator 在集群中部署的任何应用程序都需要手动清理。
卸载后,Secret Store CSI Driver Operator 不再列在 web 控制台的 Installed Operators 部分。
-
点 Operators