2.8. 管理安全策略


创建一个安全策略,根据您指定的安全标准、类别和控制,报告并验证您的集群合规性。

查看以下部分:

2.8.1. 创建安全策略

您可以使用命令行界面 (CLI) 或者从控制台创建安全策略。

需要的访问权限: 集群管理员

重要:您必须定义放置规则(已弃用)或放置,以及放置绑定,才能将策略应用到特定集群。为 Cluster selector 字段输入有效的值,以定义 PlacementRule (已弃用)或 PlacementPlacementBinding

如需有效表达式,请参阅 Kubernetes 文档中的支持基于集合的要求的资源。查看 Red Hat Advanced Cluster Management 策略所需的对象定义:

  • PlacementRule:定义必须部署策略的集群选择器
  • PlacementBinding :将放置绑定到放置规则。

策略概述中查看策略 YAML 文件的更多描述。

2.8.1.1. 使用命令行界面创建安全策略

完成以下步骤,使用命令行界面 (CLI) 创建策略:

  1. 运行以下命令来创建策略:

    oc create -f policy.yaml -n <policy-namespace>
  2. 定义策略使用的模板。通过添加 policy-templates 字段来定义模板来编辑 YAML 文件。您的策略可能类似以下 YAML 文件:

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy1
    spec:
      remediationAction: "enforce" # or inform
      disabled: false # or true
      namespaceSelector:
        include:
        - "default"
        - "my-namespace"
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: operator
              # namespace: # will be supplied by the controller via the namespaceSelector
            spec:
              remediationAction: "inform"
              object-templates:
              - complianceType: "musthave" # at this level, it means the role must exist and must have the following rules
                apiVersion: rbac.authorization.k8s.io/v1
                kind: Role
                metadata:
                  name: example
                objectDefinition:
                  rules:
                    - complianceType: "musthave" # at this level, it means if the role exists the rule is a musthave
                      apiGroups: ["extensions", "apps"]
                      resources: ["deployments"]
                      verbs: ["get", "list", "watch", "create", "delete","patch"]
  3. 已弃用定义一个 PlacementRule。确保将 PlacementRule 更改为通过调整 clusterSelector 来指定需要应用策略的集群。查看放置规则示例概述

    注: 改为使用 Placement

    PlacementRule 可能类似如下内容:

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement1
    spec:
      clusterConditions:
        - type: ManagedClusterConditionAvailable
          status: "True"
      clusterNames:
      - "cluster1"
      - "cluster2"
    - clusterSelector
        matchLabels:
          cloud: IBM
  4. 定义一个 PlacementBinding,将您的策略绑定到 PlacementRule。您 PlacementBinding 可能类似以下 YAML 示例:

    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding1
    placementRef:
      name: placement1
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
    subjects:
    - name: policy1
      apiGroup: policy.open-cluster-management.io
      kind: Policy
2.8.1.1.1. 通过 CLI 查看您的安全策略

完成以下步骤,通过 CLI 查看您的安全策略:

  1. 运行以下命令,查看具体安全策略的详情:

    oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace> -o yaml
  2. 运行以下命令,查看您的安全策略的描述:

    oc describe policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>

2.8.1.2. 从控制台创建集群安全策略

登录到 Red Hat Advanced Cluster Management 后,进入 Governance 页面并点 Create policy。从控制台创建新策略时,也会在 YAML 编辑器中创建 YAML 文件。要查看 YAML 编辑器,请在 Create policy 表单的开头选择切换来启用它。

  1. 完成 Create policy 表单,然后选择 提交按钮。您的 YAML 文件可能类似以下策略:

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-pod
      annotations:
        policy.open-cluster-management.io/categories: 'SystemAndCommunicationsProtections,SystemAndInformationIntegrity'
        policy.open-cluster-management.io/controls: 'control example'
        policy.open-cluster-management.io/standards: 'NIST,HIPAA'
        policy.open-cluster-management.io/description:
    spec:
      complianceType: musthave
      namespaces:
        exclude: ["kube*"]
        include: ["default"]
        pruneObjectBehavior: None
      object-templates:
      - complianceType: musthave
        objectDefinition:
          apiVersion: v1
          kind: Pod
          metadata:
            name: pod1
          spec:
            containers:
            - name: pod-name
              image: 'pod-image'
              ports:
              - containerPort: 80
      remediationAction: enforce
      disabled: false

    请参阅以下 PlacementBinding 示例:

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-pod
    placementRef:
      name: placement-pod
      kind: PlacementRule
      apiGroup: apps.open-cluster-management.io
    subjects:
    - name: policy-pod
      kind: Policy
      apiGroup: policy.open-cluster-management.io

    请参阅以下 PlacementRule 示例:

    apiVersion: apps.open-cluster-management.io/v1
     kind: PlacementRule
     metadata:
       name: placement-pod
    spec:
      clusterConditions: []
      clusterSelector:
         matchLabels:
           cloud: "IBM"
  2. 可选: 为您的策略添加描述。
  3. 点击 Create Policy。从控制台创建了安全策略。
2.8.1.2.1. 从控制台查看您的安全策略

在控制台中查看任何安全策略及其状态。

  1. 进入 Governance 页面,以查看您的策略的表列表。注: 您可以选择 Policies 标签页或 Cluster violations 选项卡来过滤策略列表。
  2. 选择一个策略来查看更多详情。此时会显示 DetailsClustersTemplates 标签页。当无法决定集群或策略状态时,会显示以下信息: No status
  3. 或者,选择 Policies 选项卡来查看策略列表。展开一个策略行,以查看 Description,Standards,Controls, 和 Categories 详情。

2.8.1.3. 通过 CLI 创建策略设置

默认情况下,策略集是在没有策略或放置的情况下创建的。您必须为策略集合创建放置,并至少有一个策略存在于集群中。在创建策略集时,您可以添加多个策略。

运行以下命令,通过 CLI 创建策略集:

oc apply -f <policyset-filename>

2.8.1.4. 从控制台创建策略集

  1. 在导航菜单中选择 Governance
  2. 选择 Policy set 选项卡。
  3. 选择 Create policy set 按钮并完成表单。
  4. 添加您的策略集的详细信息,然后选择 Submit 按钮。
  5. 查看 stable Policysets,它需要 Policy Generator 用于部署,PolicySets-table

2.8.2. 更新安全策略

了解如何更新安全策略。

2.8.2.1. 通过 CLI 将策略添加到策略集中

  1. 运行以下命令来编辑您的策略集:

    oc edit policysets <your-policyset-name>
  2. 将策略名称添加到策略集的 policies 部分的列表中。
  3. 使用以下命令在策略集的 placement 部分中应用添加的策略:
oc apply -f <your-added-policy.yaml>

PlacementBindingPlacementRule 都创建。

注: 如果您删除放置绑定,策略仍会由策略集放置。

2.8.2.2. 从控制台在策略集中添加策略

  1. 选择 Policy set 选项卡,在策略集中添加一个策略。
  2. 选择 Actions 图标并选择 Edit。此时会出现 Edit policy set 表单。
  3. 进入到表单的 Policies 部分,以选择要添加到策略集的策略。

2.8.2.3. 禁用安全策略

您的策略默认是启用的。从控制台禁用您的策略。

登录到 Red Hat Advanced Cluster Management for Kubernetes 控制台后,进入 Governance 页面来查看您的策略的表列表。

选择 Actions 图标 > Disable policy。此时会出现 Disable Policy 对话框。

点击 Disable policy。您的策略已禁用。

2.8.3. 删除安全策略

通过 CLI 或控制台删除安全策略。

  • 通过 CLI 删除安全策略:

    1. 运行以下命令来删除安全策略:

      oc delete policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>

      删除策略后,它会从一个或多个目标集群中移除。运行以下命令验证您的策略是否已移除:oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>

  • 从控制台删除安全策略:

    在导航菜单中点 Governance 来查看您的策略的表列表。在策略违反表中点击您要删除的策略的 Actions 图标。

    点击 Remove。在 Remove policy 对话框中点击 Remove policy

2.8.3.1. 从控制台创建策略集

  1. Policy set 选项卡中,选择策略集的 Actions 图标。当您单击 Delete 时,会出现 Permanently delete Policyset? 对话框。
  2. 点击 Delete 按钮。

要管理其他策略,请参阅管理安全策略以了解更多信息。有关策略的更多主题,请参阅监管

2.8.4. 清理由策略创建的资源

在配置策略中使用 pruneObjectBehavior 参数来清理策略创建的资源。当设置 pruneObjectBehavior 时,仅在删除与其关联的配置策略(或父策略)后,才会清理相关的对象。

查看可用于参数的值的以下描述:

  • DeleteIfCreated :清理策略创建的所有资源。
  • DeleteAll :清理策略管理的所有资源。
  • None:这是默认值,维护之前版本中的相同行为,但没有删除相关资源。

您可以在命令行中创建策略时,直接在 YAML 文件中设置值。

在控制台中,您可以选择 Policy templates 步骤的 Prune Object Behavior 部分中的值。

备注:

  • 如果安装 Operator 的策略定义了 pruneObjectBehavior 参数,则需要额外的清理来完成 Operator 卸载。您可能需要在这个清理过程中删除 operator ClusterServiceVersion 对象。
  • 当您在受管集群中禁用 config-policy-addon 资源时,会忽略 pruneObjbectBehavior。要在策略上自动清理相关资源,您必须在禁用附加组件前从受管集群中删除策略。

2.8.5. 管理配置策略

了解如何创建、应用、查看和更新您的配置策略。

需要的访问权限 : 管理员或集群管理员

2.8.5.1. 创建配置策略

您可以使用命令行界面 (CLI) 或者从控制台为配置策略创建 YAML 文件。

如果您有一个现有的 Kubernetes 清单,请考虑使用 Policy Generator 在策略中自动包含清单。请参阅策略生成器文档。查看以下部分以创建配置策略:

2.8.5.1.1. 通过 CLI 创建配置策略

完成以下步骤,通过 CLI 创建配置策略:

  1. 为您的配置策略创建一个 YAML 文件。运行以下命令:

    oc create -f configpolicy-1.yaml

    您的配置策略可能类似以下策略:

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-1
      namespace: my-policies
    policy-templates:
    - apiVersion: policy.open-cluster-management.io/v1
      kind: ConfigurationPolicy
      metadata:
        name: mustonlyhave-configuration
      spec:
        namespaceSelector:
          include: ["default"]
          exclude: ["kube-system"]
        remediationAction: inform
        disabled: false
        complianceType: mustonlyhave
        object-templates:
  2. 运行以下命令来应用策略:

    oc apply -f <policy-file-name>  --namespace=<namespace>
  3. 运行以下命令,验证并列出策略:

    oc get policies.policy.open-cluster-management.io --namespace=<namespace>

您的配置策略已创建。

2.8.5.1.2. 通过 CLI 查看您的配置策略

完成以下步骤,通过 CLI 查看您的配置策略:

  1. 运行以下命令,查看具体配置策略的详情:

    oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace> -o yaml
  2. 运行以下命令,查看您的配置策略的描述:

    oc describe policies.policy.open-cluster-management.io <name> -n <namespace>
2.8.5.1.3. 从控制台创建配置策略

从控制台创建配置策略时,也会在 YAML 编辑器中创建 YAML 文件。

  1. 从控制台登录到集群,然后从导航菜单中选择 Governance
  2. 点击 Create policy。通过为规格参数选择一个配置策略来指定您要创建的策略。
  3. 通过完成策略表单继续配置策略创建。为以下字段输入或选择适当的值:

    • Name
    • Specifications
    • Cluster selector
    • Remediation action
    • Standards
    • Categories
    • Controls
  4. Create。您的配置策略已创建。
2.8.5.1.4. 从控制台查看您的配置策略

在控制台中查看任何配置策略及其状态。

在控制台中登录到集群后,选择 Governance 来查看您的策略的表列表。注: 您可以选择 All policies 选项卡或者 Cluster violations 选项卡来过滤您的策略表列表。

选择一个策略来查看更多详情。此时会显示 DetailsClustersTemplates 标签页。

2.8.5.2. 更新配置策略

查看以下部分以了解如何更新配置策略。

2.8.5.2.1. 禁用配置策略

禁用您的配置策略。与前面提到的说明类似,登录并进入 Governance 页面来完成任务。

  1. 从表列表中选择配置策略的 Actions 图标,然后点 Disable。此时会出现 Disable Policy 对话框。
  2. 点击 Disable policy

策略被禁用,但不被删除。

2.8.5.3. 删除配置策略

通过 CLI 或控制台删除配置策略。

  • 使用以下步骤通过 CLI 删除配置策略:

    1. 运行以下命令以从目标集群或集群中删除策略:

      oc delete policies.policy.open-cluster-management.io <policy-name> -n <namespace>
    2. 运行以下命令验证您的策略是否已移除:
    oc get policies.policy.open-cluster-management.io <policy-name> -n <namespace>
  • 使用以下步骤从控制台删除配置策略:

    1. 在导航菜单中点 Governance 来查看您的策略的表列表。
    2. 在策略违反表中点击您要删除的策略的 Actions 图标,然后点 Remove
    3. Remove policy 对话框中点击 Remove policy

您的策略已删除。

如需被 Red Hat Advanced Cluster Management 支持的配置策略示例,查看 CM-Configuration-Management 文件夹。

或者,请参阅 示例配置策略表,以查看控制器监控的其他配置策略。有关管理其他策略的详情,请参阅管理安全策略

2.8.6. 管理 Gatekeeper operator 策略

使用 Gatekeeper operator 策略在受管集群上安装 Gatekeeper operator 和 Gatekeeper。在以下部分中了解如何创建、查看和更新 Gatekeeper Operator 策略。

需要的访问权限: 集群管理员

2.8.6.1. 使用 Gatekeeper operator 策略安装 Gatekeeper

使用监管框架来安装 Gatekeeper Operator。OpenShift Container Platform 目录中提供了 gatekeeper operator。如需更多信息,请参阅 OpenShift Container Platform 文档中的 Adding Operators to a cluster 部分。

使用配置策略控制器来安装 Gatekeeper operator 策略。在安装过程中,Operator 组和订阅会拉取 gatekeeper operator 将其安装到受管集群中。然后,Gatekeeper operator 会创建一个 Gatekeeper 自定义资源来配置 Gatekeeper。查看 Gatekeeper operator 自定义资源示例。

在支持 enforce(强制) 补救操作的情况下,gatekeeper operator 策略由 Red Hat Advanced Cluster Management 配置策略控制器监控。当设置为 enforce 时,控制器会自动创建 Gatekeeper Operator 策略。

2.8.6.2. 从控制台创建 Gatekeeper 策略

通过从控制台创建 Gatekeeper 策略来安装 Gatekeeper 策略。或者,进入 Additional resources 部分,以引用示例 YAML 以部署 policy-gatekeeper-operator.yaml

登录到集群后,进入 Governance 页面。

选择 Create policy。在完成表单时,从 Specifications 字段中选择 Gatekeeper Operator。策略的参数值会自动填充,策略默认设置为 inform。将补救操作设置为 enforce 来安装 gatekeeper。

注: 默认值由 Operator 生成。

2.8.6.2.1. Gatekeeper operator 自定义资源
apiVersion: operator.gatekeeper.sh/v1alpha1
kind: Gatekeeper
metadata:
  name: gatekeeper
spec:
  audit:
    replicas: 1
    logLevel: DEBUG
    auditInterval: 10s
    constraintViolationLimit: 55
    auditFromCache: Enabled
    auditChunkSize: 66
    emitAuditEvents: Enabled
    resources:
      limits:
        cpu: 500m
        memory: 150Mi
      requests:
        cpu: 500m
        memory: 130Mi
  validatingWebhook: Enabled
  webhook:
    replicas: 2
    logLevel: ERROR
    emitAdmissionEvents: Enabled
    failurePolicy: Fail
    resources:
      limits:
        cpu: 480m
        memory: 140Mi
      requests:
        cpu: 400m
        memory: 120Mi
  nodeSelector:
    region: "EMEA"
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchLabels:
              auditKey: "auditValue"
          topologyKey: topology.kubernetes.io/zone
  tolerations:
    - key: "Example"
      operator: "Exists"
      effect: "NoSchedule"
  podAnnotations:
    some-annotation: "this is a test"
    other-annotation: "another test"

2.8.6.3. 升级 Gatekeeper 和 Gatekeeper operator

您可以升级 Gatekeeper 和 Gatekeeper operator 的版本。当使用 Gatekeeper operator 策略安装 Gatekeeper operator 时,请注意 installPlanApproval 的值。当 installPlanApproval 设置为 Automatic 时,Operator 会自动升级。

installPlanApproval 设置为 Manual 时,您必须手动批准每个集群的 Gatekeeper Operator 升级。

2.8.6.4. 更新 Gatekeeper operator 策略

查看以下部分以了解如何更新 Gatekeeper operator 策略。

2.8.6.4.1. 从控制台查看 Gatekeeper operator 策略

在控制台中查看您的 Gatekeeper operator 策略及其状态。

从控制台登录到集群后,点 Governance 来查看您的策略的表列表。注: 您可以选择 Policies 标签页或 Cluster violations 选项卡来过滤策略列表。

选择 policy-gatekeeper-operator 策略来查看更多详细信息。选择 Clusters 选项卡来查看策略违反情况。

2.8.6.4.2. 禁用 Gatekeeper operator 策略

禁用 gatekeeper operator 策略。

登录到 Red Hat Advanced Cluster Management for Kubernetes 控制台后,进入 Governance 页面来查看您的策略的表列表。

选择 policy-gatekeeper-operator 策略的 Actions 图标,然后点 Disable。此时会出现 Disable Policy 对话框。

点击 Disable policy。您的 policy-gatekeeper-operator 策略已被禁用。

2.8.6.5. 删除 Gatekeeper operator 策略

通过 CLI 或控制台删除 Gatekeeper operator 策略。

  • 通过 CLI 删除 Gatekeeper operator 策略:

    1. 运行以下命令来删除 Gatekeeper operator 策略:

      oc delete policies.policy.open-cluster-management.io <policy-gatekeeper-operator-name> -n <namespace>

      删除策略后,它会从一个或多个目标集群中移除。

    2. 运行以下命令验证您的策略是否已移除:

      oc get policies.policy.open-cluster-management.io <policy-gatekeeper-operator-name> -n <namespace>
  • 从控制台删除 Gatekeeper operator 策略:

    进入 Governance 页面,以查看您的策略的表列表。

    与之前的控制台指令类似,点 policy-gatekeeper-operator 策略的 Actions 图标。点 Remove 以删除该策略。在 Remove policy 对话框中点击 Remove policy

您的 Gatekeeper operator 策略已删除。

2.8.6.6. 卸载 Gatekeeper 策略、Gatekeeper 和 Gatekeeper operator 策略

完成以下步骤以卸载 gatekeeper 策略、gatekeeper 和 gatekeeper operator 策略:

  1. 删除应用到受管集群的 gatekeeper ConstraintConstraintTemplate

    1. 编辑 Gatekeeper operator 策略。找到您用来创建 gatekeeper ConstraintConstraintTemplateConfigurationPolicy 模板 。
    2. ConfigurationPolicy 模板的 complianceType 的值改为 mustnothave
    3. 保存并应用策略。
  2. 从受管集群中删除 Gatekeeper 实例:

    1. 编辑 Gatekeeper operator 策略。找到用于创建 Gatekeeper 自定义资源的 ConfigurationPolicy 模板。
    2. ConfigurationPolicy 模板的 complianceType 的值改为 mustnothave
  3. 删除受管集群上的 Gatekeeper operator:

    1. 编辑 Gatekeeper operator 策略。找到用于创建 Subscription CR 的 ConfigurationPolicy 模板。
    2. ConfigurationPolicy 模板的 complianceType 的值改为 mustnothave

Gatekeeper 策略、Gatekeeper 和 Gatekeeper operator 策略会被卸载。

2.8.6.7. 其他资源

2.8.7. 在断开连接的环境中管理 Operator 策略

您可能需要在没有连接到互联网(断开连接)的 Red Hat OpenShift Container Platform 集群上部署 Red Hat Advanced Cluster Management for Kubernetes 策略。如果您使用您部署的策略来部署安装 Operator Lifecycle Manager Operator 的策略,您必须按照以下步骤 镜像 Operator 目录

完成以下步骤以验证对 Operator 镜像的访问:

  1. 请参阅验证所需软件包可用来验证您与策略一起使用的软件包是否可用。您必须验证由以下策略部署到的任何受管集群使用的每个镜像 registry 的可用性:

    • container-security-operator
    • 已弃用: gatekeeper-operator-product
    • compliance-operator
  2. 请参阅配置镜像内容源策略以验证源是否可用。镜像内容源策略必须存在于每个断开连接的受管集群中,并可使用策略进行部署以简化流程。请参阅以下镜像源位置表:

    监管策略类型镜像源位置

    容器安全性

    registry.redhat.io/quay

    Compliance

    registry.redhat.io/compliance

    Gatekeeper

    registry.redhat.io/rhacm2

2.8.8. 使用策略集合安装 Red Hat OpenShift Platform Plus

继续阅读以获取应用 Red Hat Openshift Platform Plus 策略集的指导。应用 Red Hat OpenShift 策略集时,Red Hat Advanced Cluster Security secured 集群服务和 Compliance Operator 部署到所有 OpenShift Container Platform 受管集群。

2.8.8.1. 先决条件

应用策略集前完成以下步骤:

  1. 要允许将订阅应用到集群,您必须应用 policy-configure-subscription-admin-hub.yaml 策略,并将补救操作设置为 enforce。将以下 YAML 复制并粘贴到控制台的 YAML 编辑器中:

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-configure-subscription-admin-hub
      annotations:
        policy.open-cluster-management.io/standards: NIST SP 800-53
        policy.open-cluster-management.io/categories: CM Configuration Management
        policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
    spec:
      remediationAction: inform
      disabled: false
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-configure-subscription-admin-hub
            spec:
              remediationAction: inform
              severity: low
              object-templates:
                - complianceType: musthave
                  objectDefinition:
                    apiVersion: rbac.authorization.k8s.io/v1
                    kind: ClusterRole
                    metadata:
                      name: open-cluster-management:subscription-admin
                    rules:
                    - apiGroups:
                      - app.k8s.io
                      resources:
                      - applications
                      verbs:
                      - '*'
                    - apiGroups:
                      - apps.open-cluster-management.io
                      resources:
                      - '*'
                      verbs:
                      - '*'
                    - apiGroups:
                      - ""
                      resources:
                      - configmaps
                      - secrets
                      - namespaces
                      verbs:
                      - '*'
                - complianceType: musthave
                  objectDefinition:
                    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
                    subjects:
                    - apiGroup: rbac.authorization.k8s.io
                      kind: User
                      name: kube:admin
                    - apiGroup: rbac.authorization.k8s.io
                      kind: User
                      name: system:admin
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-configure-subscription-admin-hub
    placementRef:
      name: placement-policy-configure-subscription-admin-hub
      kind: PlacementRule
      apiGroup: apps.open-cluster-management.io
    subjects:
    - name: policy-configure-subscription-admin-hub
      kind: Policy
      apiGroup: policy.open-cluster-management.io
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-configure-subscription-admin-hub
    spec:
      clusterConditions:
      - status: "True"
        type: ManagedClusterConditionAvailable
      clusterSelector:
        matchExpressions:
          - {key: name, operator: In, values: ["local-cluster"]}
  2. 要从命令行界面应用前面的 YAML,请运行以下命令:

    oc apply -f policy-configure-subscription-admin-hub.yaml
  3. 安装 Policy Generator kustomize 插件。使用 Kustomize v4.5 或更高版本。请参阅生成策略以安装 Operator
  4. 策略安装到 policies 命名空间。您必须将该命名空间绑定到 ClusterSet。例如,复制并应用以下示例 YAML 将命名空间绑定到默认的 ClusterSet

    apiVersion: cluster.open-cluster-management.io/v1beta2
    kind: ManagedClusterSetBinding
    metadata:
        name: default
        namespace: policies
    spec:
        clusterSet: default
  5. 运行以下命令以从命令行界面应用 ManagedClusterSetBinding 资源:

    oc apply -f managed-cluster.yaml

满足先决条件后,您可以应用策略集。

2.8.8.2. 应用 Red Hat OpenShift Platform Plus 策略集

  1. 使用 openshift-plus/policyGenerator.yaml 文件,其中包含 Red Hat OpenShift Plus 的先决条件配置。请参阅 openshift-plus/policyGenerator.yaml
  2. 使用 kustomize 命令将策略应用到您的 hub 集群:

    kustomize build --enable-alpha-plugins  | oc apply -f -

    注: 对于您不想安装的 OpenShift Platform Plus 的任何组件,请编辑 policyGenerator.yaml 文件并删除或注释掉这些组件的策略。

2.8.8.3. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.