1.4. 在命名空间间共享配置映射
要在集群中的命名空间间共享配置映射,您需要创建 SharedConfigMap
自定义资源(CR)实例。
先决条件
您必须具有执行以下操作的权限:
-
在集群范围的级别上创建
sharedconfigmaps.sharedresource.openshift.io
自定义资源定义(CRD)。 -
为
SharedConfigMap
CR 创建ClusterRole
对象。 - 为 Shared Resource Container Storage Interface (CSI)驱动程序创建角色和角色绑定。
- 管理集群中命名空间中的角色和角色绑定,以控制哪些用户可以获取、列出和监视这些实例。
- 管理集群中命名空间中的角色和角色绑定,以控制挂载 CSI 卷的 pod 中的哪些服务帐户可以使用这些实例。
- 访问包含您要共享 secret 的命名空间。
流程
为您要在集群中的命名空间之间共享的配置映射创建
SharedConfigMap
CR 实例。请参见以下示例配置:
Copy to clipboardCopiedapiVersion: sharedresource.openshift.io/v1alpha1 kind: SharedConfigMap metadata: name: share-test-config 1 spec: configMapRef: name: shared-config namespace: <name_of_the_source_namespace> 2
创建一个
ClusterRole
CR 实例,它使用以下示例配置授予基于角色的访问控制(RBAC)权限来使用引用的共享资源:
Copy to clipboardCopiedapiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <cluster_role_name> 1 rules: - apiGroups: - sharedresource.openshift.io resources: - sharedconfigmaps resourceNames: - share-test-config 2 verbs: - use
创建
Role
和RoleBinding
对象,为 CSI 驱动程序授予访问配置映射的权限:Role
对象示例
Copy to clipboardCopiedapiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: shared-test-config namespace: test-share-source 1 rules: - apiGroups: [""] resources: ["configmaps"] resourceNames: ["shared-config"] verbs: ["get", "list", "watch"]
- 1
- 定义源命名空间的名称。
RoleBinding
对象示例
Copy to clipboardCopiedapiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: shared-test-config namespace: test-share-source 1 roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: shared-test-config subjects: 2 - kind: ServiceAccount name: csi-driver-shared-resource namespace: openshift-builds