1.4.2. 授予订阅管理员权限


了解如何授予订阅管理员访问权限。订阅管理员可以更改默认行为。在以下过程中了解更多信息:

  1. 从控制台登录到 Red Hat OpenShift Container Platform 集群。
  2. 创建一个或多个用户。有关创建用户的信息,请参阅准备用户。您还可以准备组或服务帐户。

    您创建的用户是 app.open-cluster-management.io/subscription 应用程序的管理员。在 OpenShift Container Platform 中,订阅管理员可以更改默认行为。您可以将这些用户组成一个组来代表订阅管理组群(在稍后会进行演示)。

  3. 在终端中登录 Red Hat Advanced Cluster Management 集群。
  4. 如果 open-cluster-management:subscription-admin ClusterRoleBinding 不存在,您需要创建它。请参见以下示例:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: open-cluster-management:subscription-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: open-cluster-management:subscription-admin
    Copy to Clipboard Toggle word wrap
  5. 使用以下命令在 open-cluster-management:subscription-admin ClusterRoleBinding 中添加以下 subjects 内容:

    oc edit clusterrolebinding open-cluster-management:subscription-admin
    Copy to Clipboard Toggle word wrap

    注: 在初始情况下, open-cluster-management:subscription-admin ClusterRoleBinding 没有 subject。

    您的 subject 可能如下所示:

    subjects:
    - apiGroup: rbac.authorization.k8s.io
      kind: User
      name: example-name
    - apiGroup: rbac.authorization.k8s.io
      kind: Group
      name: example-group-name
    # Service Account can be used as a user subject as well
    - apiGroup: rbac.authorization.k8s.io
      kind: User
      name: 'system:serviceaccount:my-service-account-namespace:my-service-account'
    Copy to Clipboard Toggle word wrap

作为订阅管理员,您可以从 Git 存储库或对象存储应用程序订阅创建应用程序,该订阅中包含一个允许列表只允许部署指定 Kubernetes kind 资源。您还可以在应用程序订阅中创建 deny 列表,以拒绝部署特定 Kubernetes kind 资源。

默认情况下,policy.open-cluster-management.io/v1 资源不会被应用程序订阅部署。为避免这种默认行为,应用程序订阅需要由订阅管理员部署。

请参阅以下 allowdeny 规格示例:

apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
  annotations:
    apps.open-cluster-management.io/github-path: sub2
  name: demo-subscription
  namespace: demo-ns
spec:
  channel: demo-ns/somechannel
  allow:
  - apiVersion: policy.open-cluster-management.io/v1
    kinds:
    - Policy
  - apiVersion: v1
    kinds:
    - Deployment
  deny:
  - apiVersion: v1
    kinds:
    - Service
    - ConfigMap
  placement:
    local: true
Copy to Clipboard Toggle word wrap

以下应用程序订阅 YAML 指定当应用程序从源存储库的 myapplication 目录部署时,它将仅部署 v1/Deployment 资源,即使源存储库中有其他资源:

apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
  annotations:
    apps.open-cluster-management.io/github-path: myapplication
  name: demo-subscription
  namespace: demo-ns
spec:
  channel: demo-ns/somechannel
  deny:
  - apiVersion: v1
     kinds:
      - Service
      - ConfigMap
  placement:
    placementRef:
      name: demo-placement
      kind: PlacementRule
Copy to Clipboard Toggle word wrap

这个示例应用程序订阅 YAML 指定 v1/Servicev1/ConfigMap 资源以外的所有有效资源部署。您可以添加 "*" 来允许或拒绝 API 组中的所有资源类型,而不是列出 API 组中单独资源类型。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat