3.2. 授予用户权限来监控用户定义的项目

集群管理员可以监控所有 OpenShift Container Platform 核心项目和用户定义的项目。

集群管理员可以授予开发人员和其他用户权限来监控他们自己的项目。通过分配以下监控角色中的一个即可授予权限:

  • monitoring-rules-view 角色提供对项目的 PrometheusRule 自定义资源的读取访问权限。
  • monitoring-rules-edit 角色授予用户权限来为项目创建、修改和删除 PrometheusRule 自定义资源。
  • monitoring-edit 角色授予与 monitoring-rules-edit 角色相同的权限。另外,它还允许用户为服务或 Pod 创建新的提取目标。使用此角色 ,您还可以创建、修改和删除 ServiceMonitorPodMonitor 资源。

您还可以授予用户权限来配置负责监控用户定义的项目的组件:

  • openshift-user-workload-monitoring 项目中的 user-workload-monitoring-config-edit 角色允许您编辑 user-workload-monitoring-config ConfigMap。使用此角色,您可以编辑 ConfigMap,为用户定义的工作负载监控配置 Prometheus、Prometheus Operator 和 Thanos Ruler。

本节详细介绍了如何使用 OpenShift Container Platform Web 控制台或 CLI 分配这些角色。

3.2.1. 使用 Web 控制台授予用户权限

您可以使用 OpenShift Container Platform Web 控制台授予用户权限来监控其自己的项目。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 要将角色分配到的用户帐户已存在。

流程

  1. 在 OpenShift Container Platform Web 控制台内的 Administrator 视角中,导航到 User ManagementRole BindingsCreate Binding
  2. Binding Type 部分中,选择“Namespace Role Binding”类型。
  3. Name 字段中输入角色绑定的名称。
  4. Namespace 字段中,选择要授予访问权限的用户定义的项目。

    重要

    监控角色将绑定到您在 Namespace 字段中应用的项目。您使用此流程向用户授予的权限将只应用于所选项目。

  5. Role Name 列表中选择 monitoring-rules-viewmonitoring-rules-editmonitoring-edit
  6. Subject 部分,选择 User
  7. Subject Name 字段中,输入用户名称。
  8. 选择 Create 以应用角色绑定。

3.2.2. 使用 CLI 授予用户权限

您可以使用 OpenShift CLI (oc) 授予用户权限来监控其自己的项目。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 要将角色分配到的用户帐户已存在。
  • 已安装 OpenShift CLI(oc)。

流程

  • 为项目的用户分配一个监控角色:

    $ oc policy add-role-to-user <role> <user> -n <namespace> 1
    1
    <role> 替换为 monitoring-rules-viewmonitoring-rules-editmonitoring-edit
    重要

    无论您选择什么角色,必须以集群管理员的身份将其与特定项目进行绑定。

    例如,将 <role> 替换为 monitoring-edit<user> 替换为 johnsmith<namespace> 替换为 ns1。这会为用户 johnsmith 分配在 ns1 命名空间内设置指标数据收集以及创建警报规则的权限。