1.2. 在命名空间间共享 ConfigMap 对象
ConfigMap 对象存储非敏感配置数据,如应用程序 URL 或功能标记。SharedConfigMap 自定义资源(CR)可让您在没有手动重复的情况下,在集群中的多个命名空间中安全地共享 ConfigMap 对象。通过共享 ConfigMap 对象,您可以建立单个配置数据源并确保集群的一致性。
1.2.1. 创建 SharedConfigMap 自定义资源 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以创建 SharedConfigMap 自定义资源(CR)实例,以在命名空间间共享 ConfigMap 对象。
先决条件
-
您已创建了要在其他命名空间中共享的
ConfigMap对象。要创建ConfigMap对象,请参阅"添加输入 secret 和 configmaps"。 您必须具有执行以下操作的权限:
-
在集群范围的级别上创建
sharedconfigmaps.sharedresource.openshift.ioCR。 -
为
SharedConfigMapCR 创建ClusterRole对象。 -
为 Shared Resource Container Storage Interface (CSI)驱动程序创建
Role和RoleBinding对象。 - 管理集群中命名空间中的角色和角色绑定,以控制哪些用户可以获取、列出和监视实例。
-
管理角色和角色绑定,以便 pod 指定的服务帐户可以使用
SharedConfigMapCR 挂载引用ConfigMap对象的csi卷。 -
访问包含您要共享的
ConfigMap对象的命名空间。
-
在集群范围的级别上创建
流程
创建
Role和RoleBinding对象,为 Shared Resource CSI Driver 授予访问ConfigMap对象的权限。请参见以下示例配置:Role对象示例apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: shared-test-config namespace: <name_of_the_source_namespace>1 rules: - apiGroups: [""] resources: ["configmaps"] resourceNames: ["shared-config"] verbs: ["get", "list", "watch"]- 1
- 将
<name_of_the_source_namespace> 替换为源命名空间的名称。
RoleBinding对象示例apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: shared-test-config namespace: <name_of_the_source_namespace>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为您要在集群中的命名空间之间共享的
ConfigMap对象创建SharedConfigMapCR。以下示例显示了示例配置:apiVersion: sharedresource.openshift.io/v1alpha1 kind: SharedConfigMap metadata: name: share-test-config1 spec: configMapRef: name: shared-config namespace: <name_of_the_source_namespace>2 创建一个
ClusterRoleCR 实例,其授予基于角色的访问控制(RBAC)权限,以使用引用的共享资源。以下示例显示了示例配置:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <cluster_role_name>1 rules: - apiGroups: - sharedresource.openshift.io resources: - sharedconfigmaps resourceNames: - share-test-config2 verbs: - use