1.2. 在命名空间间共享 ConfigMap 对象


ConfigMap 对象存储非敏感配置数据,如应用程序 URL 或功能标记。SharedConfigMap 自定义资源(CR)可让您在没有手动重复的情况下,在集群中的多个命名空间中安全地共享 ConfigMap 对象。通过共享 ConfigMap 对象,您可以建立单个配置数据源并确保集群的一致性。

1.2.1. 创建 SharedConfigMap 自定义资源

您可以创建 SharedConfigMap 自定义资源(CR)实例,以在命名空间间共享 ConfigMap 对象。

先决条件

  • 您已创建了要在其他命名空间中共享的 ConfigMap 对象。要创建 ConfigMap 对象,请参阅"添加输入 secret 和 configmaps"。
  • 您必须具有执行以下操作的权限:

    • 在集群范围的级别上创建 sharedconfigmaps.sharedresource.openshift.io CR。
    • SharedConfigMap CR 创建 ClusterRole 对象。
    • 为 Shared Resource Container Storage Interface (CSI)驱动程序创建 RoleRoleBinding 对象。
    • 管理集群中命名空间中的角色和角色绑定,以控制哪些用户可以获取、列出和监视实例。
    • 管理角色和角色绑定,以便 pod 指定的服务帐户可以使用 SharedConfigMap CR 挂载引用 ConfigMap 对象的 csi 卷。
    • 访问包含您要共享的 ConfigMap 对象的命名空间。

流程

  1. 创建 RoleRoleBinding 对象,为 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

    1
    <name_of_the_source_namespace > 替换为源命名空间的名称。
    2
    指定 Shared Resource CSI 驱动程序 DaemonSet 的服务帐户列表。使用 Red Hat OpenShift 构建部署时,服务帐户名称为 csi-driver-shared-resource,命名空间与部署 Red Hat OpenShift Operator 的 Builds 匹配。
  2. 为您要在集群中的命名空间之间共享的 ConfigMap 对象创建 SharedConfigMap CR。以下示例显示了示例配置:

    apiVersion: sharedresource.openshift.io/v1alpha1
    kind: SharedConfigMap
    metadata:
      name: share-test-config 
    1
    
    spec:
      configMapRef:
        name: shared-config
        namespace: <name_of_the_source_namespace> 
    2
    1
    指定 SharedConfigMap CR 的名称。
    2
    <name_of_the_source_namespace > 替换为源命名空间的名称。
  3. 创建一个 ClusterRole CR 实例,其授予基于角色的访问控制(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-config 
    2
    
        verbs:
          - use
    1
    <cluster_role_name > 替换为集群角色的名称。
    2
    指定 SharedSecret CR 的名称。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部