4.12.3. 使用逻辑卷管理器存储的持久性存储


逻辑卷管理器存储 (LVM Storage) 使用 TopoLVM CSI 驱动程序在单节点 OpenShift 集群中动态置备本地存储。

LVM Storage 使用逻辑卷管理器创建精简配置的卷,并在有限的资源单节点 OpenShift 集群中提供块存储的动态置备。

4.12.3.1. 在单节点 OpenShift 集群上部署 LVM 存储

您可以在单节点 OpenShift 裸机或用户置备的基础架构集群中部署 LVM 存储,并将其配置为为您的工作负载动态置备存储。

LVM 存储使用所有可用磁盘创建一个卷组,并创建一个精简池,大小为卷组大小的 90%。剩余的 10% 卷组是空闲的,在需要时可以使用这些空闲空间对精简池进行扩展来实现数据恢复。您可能需要手动执行此类恢复。

您可以使用 LVM 存储置备的持久性卷声明 (PVC) 和卷快照来请求存储和创建卷快照。

LVM Storage 会配置一个默认的超置备限制 10,以利用精简配置功能。在单一节点 OpenShift 集群中可创建的卷和卷快照的总大小是精简池大小 10 倍。

您可以使用以下方法之一,在单一节点的 OpenShift 集群上部署 LVM 存储:

  • Red Hat Advanced Cluster Management (RHACM)
  • OpenShift Container Platform Web 控制台
4.12.3.1.1. 要求

在开始在单节点 OpenShift 集群上部署 LVM 存储前,请确保满足以下要求:

  • 您已在 OpenShift Container Platform 集群上安装了 Red Hat Advanced Cluster Management (RHACM)。
  • 每个受管单节点 OpenShift 集群都有一个专用磁盘,用于置备存储。

在单节点 OpenShift 集群上部署 LVM 存储前,请注意以下限制:

  • 您只能在 OpenShift Container Platform 集群中创建 LVMCluster 自定义资源 (CR) 的单一实例。
  • 当设备成为 LVMCluster CR 的一部分时,无法删除它。
4.12.3.1.2. 限制

对于部署单节点 OpenShift,LVM Storage 有以下限制:

  • 总存储大小受底层逻辑卷管理器(LVM)精简池的大小以及过度置备因素的限制。
  • 逻辑卷的大小取决于物理扩展(PE)和逻辑扩展(LE)的大小。

    • 在创建物理和虚拟设备期间,可以定义 PE 和 LE 的大小。
    • 默认的 PE 和 LE 大小为 4 MB。
    • 如果增加 PE 的大小,LVM 的最大大小由内核限值和您的磁盘空间决定。
Expand
表 4.1. 使用默认 PE 和 LE 大小的不同架构的大小限制
架构RHEL 6RHEL 7RHEL 8RHEL 9

32 位

16 TB

-

-

-

64 位

8 EB [1]

100 TB [2]

8 EB [1]

500 TB [2]

8 EB

8 EB

  1. 理论大小。
  2. 测试大小。
4.12.3.1.3. 使用 CLI 安装 LVM 存储

作为集群管理员,您可以使用 CLI 安装逻辑卷管理器存储(LVM Storage)。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 您已以具有 cluster-admin 权限的用户身份登录。

流程

  1. 为 LVM Storage Operator 创建命名空间。

    1. 将以下 YAML 保存到 lvms-namespace.yaml 文件中:

      apiVersion: v1
      kind: Namespace
      metadata:
        labels:
          openshift.io/cluster-monitoring: "true"
          pod-security.kubernetes.io/enforce: privileged
          pod-security.kubernetes.io/audit: privileged
          pod-security.kubernetes.io/warn: privileged
        name: openshift-storage
    2. 创建 Namespace CR:

      $ oc create -f lvms-namespace.yaml
  2. 为 LVM Storage Operator 创建 Operator 组。

    1. 将以下 YAML 保存到 lvms-operatorgroup.yaml 文件中:

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: openshift-storage-operatorgroup
        namespace: openshift-storage
      spec:
        targetNamespaces:
        - openshift-storage
    2. 创建 OperatorGroup CR:

      $ oc create -f lvms-operatorgroup.yaml
  3. 订阅 LVM Storage Operator。

    1. 将以下 YAML 保存到 lvms-sub.yaml 文件中:

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: lvms
        namespace: openshift-storage
      spec:
        installPlanApproval: Automatic
        name: lvms-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
    2. 创建 Subscription CR:

      $ oc create -f lvms-sub.yaml
  4. 创建 LVMCluster 资源:

    1. 将以下 YAML 保存到 lvmcluster.yaml 文件中:

      apiVersion: lvm.topolvm.io/v1alpha1
      kind: LVMCluster
      metadata:
       name: my-lvmcluster
       namespace: openshift-storage
      spec:
       storage:
         deviceClasses:
         - name: vg1
           deviceSelector:
             paths:
             - /dev/disk/by-path/pci-0000:87:00.0-nvme-1
             - /dev/disk/by-path/pci-0000:88:00.0-nvme-1
             optionalPaths:
             - /dev/disk/by-path/pci-0000:89:00.0-nvme-1
             - /dev/disk/by-path/pci-0000:90:00.0-nvme-1
           thinPoolConfig:
             name: thin-pool-1
             sizePercent: 90
             overprovisionRatio: 10
           nodeSelector:
             nodeSelectorTerms:
             - matchExpressions:
               - key: app
                 operator: In
                 values:
                 - test1
    2. 创建 LVMCluster CR:

      $ oc create -f lvmcluster.yaml
  5. 要验证是否已安装 Operator,请输入以下命令:

    $ oc get csv -n openshift-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase

    输出示例

    Name                         Phase
    4.13.0-202301261535          Succeeded

4.12.3.1.4. 使用 Web 控制台安装 LVM 存储

您可以使用 Red Hat OpenShift Container Platform OperatorHub 安装逻辑卷管理器存储 (LVM Storage)。

先决条件

  • 您可以访问单节点 OpenShift 集群。
  • 您可以使用具有 cluster-admin 和 Operator 安装权限的帐户。

流程

  1. 登录 OpenShift Container Platform Web 控制台。
  2. Operators OperatorHub
  3. Filter by keyword 框中滚动或键入 LVM Storage 来查找 LVM Storage。
  4. Install
  5. Install Operator 页面中设置以下选项:

    1. 更新频道stable-4.14
    2. Installation ModeA specific namespace on the cluster
    3. Installed NamespaceOperator recommended namespace openshift-storage。如果 openshift-storage 命名空间不存在,它会在 Operator 安装过程中创建。
    4. 批准策略AutomaticManual

      如果选择 Automatic 更新,Operator Lifecycle Manager(OLM)将自动升级 Operator 的运行实例,而无需任何干预。

      如果选择 手动 更新,则 OLM 会创建一个更新请求。作为集群管理员,您必须手动批准该更新请求,才能将 Operator 更新至更新的版本。

  6. Install

验证步骤

  • 验证 LVM 存储是否显示绿色勾号,代表安装成功。

您可以使用 Red Hat OpenShift Container Platform Web 控制台取消所有 LVM 存储。

先决条件

  • 已删除使用 LVM 存储置备的存储的集群中的所有应用程序。
  • 已删除使用 LVM 存储置备的持久性卷声明 (PVC) 和持久性卷 (PV)。
  • 已删除由 LVM Storage 置备的所有卷快照。
  • 您可以使用 oc get logicalvolume 命令验证没有逻辑卷资源。
  • 您可以使用具有 cluster-admin 权限的账户访问单节点 OpenShift 集群。

流程

  1. Operators Installed Operators 页面中,滚动到 LVM Storage 或在 Filter by name 中输入 LVM Storage 来查找并点击它。
  2. LVMCluster 选项卡。
  3. LVMCluster 页面的右侧,从 Actions 下拉菜单中选择 Delete LVMCluster
  4. Details 选项卡。
  5. Operator Details 页面的右侧,从 Actions 下拉菜单中选择 Uninstall Operator
  6. 选择 Remove。LVM 存储会停止运行,并完全删除。
4.12.3.1.6. 在断开连接的环境中安装 LVM 存储

您可以在断开连接的环境中的 OpenShift Container Platform 4.14 上安装 LVM 存储。此流程中引用的所有部分都在附加资源中有相关链接。

先决条件

  • 您可以阅读关于断开连接的安装镜像 部分。
  • 您可以访问 OpenShift Container Platform 镜像存储库。
  • 您创建了镜像 registry。

流程

  1. 按照创建镜像设置配置流程中的步骤操作。要为 LVM Storage 创建 ImageSetConfiguration 资源,您可以使用以下示例 YAML 文件:

    LVM Storage 的 ImageSetConfiguration 文件示例

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    archiveSize: 4 
    1
    
    storageConfig: 
    2
    
      registry:
        imageURL: example.com/mirror/oc-mirror-metadata 
    3
    
        skipTLS: false
    mirror:
      platform:
        channels:
        - name: stable-4.14 
    4
    
          type: ocp
        graph: true 
    5
    
      operators:
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14 
    6
    
        packages:
        - name: lvms-operator 
    7
    
          channels:
          - name: stable 
    8
    
      additionalImages:
      - name: registry.redhat.io/ubi9/ubi:latest 
    9
    
      helm: {}

    1
    添加 archiveSize 以设置镜像集合中的每个文件的最大大小(以 GiB 为单位)。
    2
    设置后端位置,以将镜像设置元数据保存到。此位置可以是 registry 或本地目录。必须指定 storageConfig 值,除非您使用技术预览 OCI 功能。
    3
    设置存储后端的 registry URL。
    4
    将频道设置为从中检索 OpenShift Container Platform 镜像。
    5
    添加 graph: true 以生成 OpenShift Update Service (OSUS) 图形镜像,以便在使用 web 控制台时改进集群更新体验。如需更多信息,请参阅关于 OpenShift Update Service
    6
    将 Operator 目录设置为从中检索 OpenShift Container Platform 镜像。
    7
    仅指定要包含在镜像集中的某些 Operator 软件包。删除此字段以检索目录中的所有软件包。
    8
    仅指定要包含在镜像集中的 Operator 软件包的某些频道。即使您没有使用该频道中的捆绑包,还必须始终包含 Operator 软件包的默认频道。您可以运行以下命令来找到默认频道:oc mirror list operators --catalog=<catalog_name> --package=<package_name>
    9
    指定要在镜像集中包含的任何其他镜像。
  2. 按照 Mirroring 一个镜像级到一个 mirror registry 部分的内容进行操作。
  3. 按照配置镜像 registry 存储库 mirroring 部分中的步骤进行操作。
4.12.3.1.7. 使用 RHACM 安装 LVM 存储

LVM Storage 使用 Red Hat Advanced Cluster Management (RHACM) 部署在单节点 OpenShift 集群上。当 Operator 应用到与 PlacementRule 资源中指定的选择器匹配的受管集群时,您可以在 RHACM 上创建 Policy 对象。该策略也应用于稍后导入并满足放置规则的集群。

先决条件

  • 使用具有 cluster-admin 和 Operator 安装权限的账户访问 RHACM 集群。
  • LVM 存储要使用在每个单节点 OpenShift 集群上的专用磁盘。
  • 单节点 OpenShift 集群需要由 RHACM 管理,无论是导入或创建的。

流程

  1. 使用 OpenShift Container Platform 凭证登录到 RHACM CLI。
  2. 创建要在其中创建策略的命名空间。

    # oc create ns lvms-policy-ns
  3. 要创建策略,请使用名称(如 policy-lvms-operator.yaml )将以下 YAML 保存到文件中:

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-install-lvms
    spec:
      clusterConditions:
      - status: "True"
        type: ManagedClusterConditionAvailable
      clusterSelector: 
    1
    
        matchExpressions:
        - key: mykey
          operator: In
          values:
          - myvalue
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-install-lvms
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-install-lvms
    subjects:
    - apiGroup: policy.open-cluster-management.io
      kind: Policy
      name: install-lvms
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      annotations:
        policy.open-cluster-management.io/categories: CM Configuration Management
        policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
        policy.open-cluster-management.io/standards: NIST SP 800-53
      name: install-lvms
    spec:
      disabled: false
      remediationAction: enforce
      policy-templates:
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: install-lvms
          spec:
            object-templates:
            - complianceType: musthave
              objectDefinition:
                apiVersion: v1
                kind: Namespace
                metadata:
                  labels:
                    openshift.io/cluster-monitoring: "true"
                    pod-security.kubernetes.io/enforce: privileged
                    pod-security.kubernetes.io/audit: privileged
                    pod-security.kubernetes.io/warn: privileged
                  name: openshift-storage
            - complianceType: musthave
              objectDefinition:
                apiVersion: operators.coreos.com/v1
                kind: OperatorGroup
                metadata:
                  name: openshift-storage-operatorgroup
                  namespace: openshift-storage
                spec:
                  targetNamespaces:
                  - openshift-storage
            - complianceType: musthave
              objectDefinition:
                apiVersion: operators.coreos.com/v1alpha1
                kind: Subscription
                metadata:
                  name: lvms
                  namespace: openshift-storage
                spec:
                  installPlanApproval: Automatic
                  name: lvms-operator
                  source: redhat-operators
                  sourceNamespace: openshift-marketplace
            remediationAction: enforce
            severity: low
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: lvms
          spec:
            object-templates:
               - complianceType: musthave
                 objectDefinition:
                   apiVersion: lvm.topolvm.io/v1alpha1
                   kind: LVMCluster
                   metadata:
                     name: my-lvmcluster
                     namespace: openshift-storage
                   spec:
                     storage:
                       deviceClasses:
                       - name: vg1
                         default: true
                         deviceSelector: 
    2
    
                           paths:
                           - /dev/disk/by-path/pci-0000:87:00.0-nvme-1
                           - /dev/disk/by-path/pci-0000:88:00.0-nvme-1
                           optionalPaths:
                           - /dev/disk/by-path/pci-0000:89:00.0-nvme-1
                           - /dev/disk/by-path/pci-0000:90:00.0-nvme-1
                         thinPoolConfig:
                           name: thin-pool-1
                           sizePercent: 90
                           overprovisionRatio: 10
                         nodeSelector: 
    3
    
                           nodeSelectorTerms:
                           - matchExpressions:
                               - key: app
                                 operator: In
                                 values:
                                 - test1
            remediationAction: enforce
            severity: low
    1
    替换 PlacementRule.spec.clusterSelector 中的键和值,以匹配要在其上安装 LVM Storage 的单节点 OpenShift 集群上设置的标签。
    2
    可选。要控制或限制卷组只适用于您的首选设备,可以在 LVMCluster YAML 的 deviceSelector 部分中手动指定设备的本地路径。paths 部分指的是 LVMCluster 添加的设备,这意味着这些路径必须存在。optionalPaths 部分指的是 LVMCluster 可能会添加的设备。在指定 deviceSelector 部分时,必须至少指定 pathsoptionalPaths 中的一个。如果您指定了 paths,则不需要指定 optionalPaths。如果指定了 optionalPaths,则不需要指定 paths,但节点上必须至少有一个可选路径。如果没有指定任何路径,它将添加节点上所有未使用的设备。
    3
    要添加节点过滤器(这是附加 worker 节点的子集),请在 nodeSelector 部分指定所需的过滤器。当新节点显示时,LVM Storage 会检测并使用额外的 worker 节点。
    重要

    这个 nodeSelector 节点过滤器匹配与 pod 标签匹配不同。

  4. 运行以下命令在命名空间中创建策略:

    # oc create -f policy-lvms-operator.yaml -n lvms-policy-ns 
    1
    1
    policy-lvms-operator.yaml 是保存策略的文件的名称。

    这会在 lvms-policy-ns 命名空间中创建 PolicyPlacementRulePlacementBinding 对象。该策略会在与放置规则匹配的集群中创建一个 NamespaceOperatorGroupSubscriptionLVMCluster 资源。这会在与选择条件匹配的单节点 OpenShift 集群上部署 Operator,并将其配置为设置所需资源以置备存储。Operator 使用 LVMCluster CR 中指定的所有磁盘。如果没有指定磁盘,Operator 将使用单节点 OpenShift 节点上的所有未使用的磁盘。

    重要

    将设备添加到 LVMCluster 后,无法删除它。

4.12.3.1.8. 卸载使用 RHACM 安装的 LVM 存储

要卸载使用 RHACM 安装的 LVM 存储,您需要删除为部署和配置 Operator 创建的 RHACM 策略。

当您删除 RHACM 策略时,策略创建的资源不会被删除。您需要创建额外的策略来删除资源。

因为删除策略时不会删除创建的资源,您需要执行以下步骤:

  1. 删除所有由 LVM Storage 置备的持久性卷声明 (PVC) 和卷快照。
  2. 删除 LVMCluster 资源来清理在磁盘中创建的逻辑卷管理器资源。
  3. 创建额外策略来卸载 Operator。

先决条件

  • 确保在删除策略前删除以下内容:

    • 受管集群中的所有应用程序都使用 LVM 存储置备的存储。
    • 使用 LVM 存储置备的 PVC 和持久性卷 (PV)。
    • LVM 存储置备的所有卷快照。
  • 确保您可以使用具有 cluster-admin 角色的帐户访问 RHACM 集群。

流程

  1. 在 OpenShift CLI (oc) 中,使用以下命令删除您为在 hub 集群中部署和配置 LVM Storage 创建的 RHACM 策略:

    # oc delete -f policy-lvms-operator.yaml -n lvms-policy-ns 
    1
    1
    policy-lvms-operator.yaml 是保存策略的文件的名称。
  2. 要创建用于删除 LVMCluster 资源的策略,请将以下 YAML 保存到带有名称(如 lvms-remove-policy.yaml )的文件。这可让 Operator 清理在集群中创建的所有逻辑卷管理器资源。

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-lvmcluster-delete
      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: enforce
      disabled: false
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-lvmcluster-removal
            spec:
              remediationAction: enforce 
    1
    
              severity: low
              object-templates:
                - complianceType: mustnothave
                  objectDefinition:
                    kind: LVMCluster
                    apiVersion: lvm.topolvm.io/v1alpha1
                    metadata:
                      name: my-lvmcluster
                      namespace: openshift-storage 
    2
    
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-lvmcluster-delete
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-policy-lvmcluster-delete
    subjects:
      - apiGroup: policy.open-cluster-management.io
        kind: Policy
        name: policy-lvmcluster-delete
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-lvmcluster-delete
    spec:
      clusterConditions:
        - status: "True"
          type: ManagedClusterConditionAvailable
      clusterSelector:
        matchExpressions:
          - key: mykey
            operator: In
            values:
              - myvalue
    1
    policy-template spec.remediationAction 可以通过为 spec.remediationAction 加前缀参数进行覆盖。
    2
    namespace 字段必须具有 openshift-storage 值。
  3. 设置 PlacementRule.spec.clusterSelector 字段的值,以选择要从中卸载 LVM Storage 的集群。
  4. 运行以下命令来创建策略:

    # oc create -f lvms-remove-policy.yaml -n lvms-policy-ns
  5. 要创建策略来检查 LVMCluster CR 是否已移除,请使用名称(如 check-lvms-remove-policy.yaml )将以下 YAML 保存到文件中:

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-lvmcluster-inform
      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-lvmcluster-removal-inform
            spec:
              remediationAction: inform 
    1
    
              severity: low
              object-templates:
                - complianceType: mustnothave
                  objectDefinition:
                    kind: LVMCluster
                    apiVersion: lvm.topolvm.io/v1alpha1
                    metadata:
                      name: my-lvmcluster
                      namespace: openshift-storage 
    2
    
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-lvmcluster-check
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-policy-lvmcluster-check
    subjects:
      - apiGroup: policy.open-cluster-management.io
        kind: Policy
        name: policy-lvmcluster-inform
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-lvmcluster-check
    spec:
      clusterConditions:
        - status: "True"
          type: ManagedClusterConditionAvailable
      clusterSelector:
        matchExpressions:
          - key: mykey
            operator: In
            values:
              - myvalue
    1
    policy-template spec.remediationAction 可以通过为 spec.remediationAction 加前缀参数进行覆盖。
    2
    namespace 字段必须具有 openshift-storage 值。
  6. 运行以下命令来创建策略:

    # oc create -f check-lvms-remove-policy.yaml -n lvms-policy-ns
  7. 运行以下命令检查策略状态:

    # oc get policy -n lvms-policy-ns

    输出示例

    NAME                       REMEDIATION ACTION   COMPLIANCE STATE   AGE
    policy-lvmcluster-delete   enforce              Compliant          15m
    policy-lvmcluster-inform   inform               Compliant          15m

  8. 在两个策略都合规后,将以下 YAML 保存到带有名称(如 lvms-uninstall-policy.yaml )的文件中,以创建用于卸载 LVM 存储的策略。

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-uninstall-lvms
    spec:
      clusterConditions:
      - status: "True"
        type: ManagedClusterConditionAvailable
      clusterSelector:
        matchExpressions:
        - key: mykey
          operator: In
          values:
          - myvalue
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-uninstall-lvms
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-uninstall-lvms
    subjects:
    - apiGroup: policy.open-cluster-management.io
      kind: Policy
      name: uninstall-lvms
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      annotations:
        policy.open-cluster-management.io/categories: CM Configuration Management
        policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
        policy.open-cluster-management.io/standards: NIST SP 800-53
      name: uninstall-lvms
    spec:
      disabled: false
      policy-templates:
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: uninstall-lvms
          spec:
            object-templates:
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: v1
                kind: Namespace
                metadata:
                  name: openshift-storage
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: operators.coreos.com/v1
                kind: OperatorGroup
                metadata:
                  name: openshift-storage-operatorgroup
                  namespace: openshift-storage
                spec:
                  targetNamespaces:
                  - openshift-storage
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: operators.coreos.com/v1alpha1
                kind: Subscription
                metadata:
                  name: lvms-operator
                  namespace: openshift-storage
            remediationAction: enforce
            severity: low
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: policy-remove-lvms-crds
          spec:
            object-templates:
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: logicalvolumes.topolvm.io
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: lvmclusters.lvm.topolvm.io
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: lvmvolumegroupnodestatuses.lvm.topolvm.io
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: lvmvolumegroups.lvm.topolvm.io
            remediationAction: enforce
            severity: high
  9. 运行以下命令来创建策略:

    # oc create -f lvms-uninstall-policy.yaml -ns lvms-policy-ns
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部