1.3. 卸载使用 RHACM 安装的 OpenShift Data Foundation Logical Volume Manager Operator


在使用 RHACM 安装 Operator 时卸载 OpenShift Data Foundation Logical Volume Manager Operator,您需要删除您为部署和配置 Operator 创建的 ACM 策略。但是,当您删除 ACM 策略时,策略创建的资源不会被删除。您需要创建额外的策略来删除资源。

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

  • 删除逻辑卷管理器 Operator 置备的所有 PVC 和卷快照。
  • 删除 LVMCluster 资源来清理在磁盘中创建的逻辑卷管理器资源。
  • 创建额外策略来卸载 Operator。

先决条件

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

    • 受管集群中的所有应用程序都使用 OpenShift Data Foundation 逻辑卷管理器 Operator 置备的存储。
    • 使用 OpenShift Data Foundation 逻辑卷管理器 Operator 置备的持久性卷声明(PVC)和持久性卷(PV)。
    • OpenShift Data Foundation Logical Volume Manager Operator 置备的所有卷快照。
  • 使用 oc get logicalvolume 命令确保不存在逻辑卷资源。
  • 使用具有 cluster-admin 角色的用户访问 RHACM 集群。

流程

  1. 在 OpenShift 命令行界面中,使用以下命令删除您为在 hub 集群中部署和配置 OpenShift Data Foundation Logical Volume Manager Operator 创建的 ACM 策略:

    # oc delete -f policy-lvm-operator.yaml -n lvm-policy-ns
    Copy to Clipboard Toggle word wrap
  2. 使用名称(如 odf-lvmcluster-deletion.yaml )将以下 YAML 保存到文件中,以创建一个用于删除 LVMCluster 的策略。这可让操作员清理在集群中创建的所有逻辑卷管理器资源。

    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 # the policy-template spec.remediationAction is overridden by the preceding parameter value for spec.remediationAction.
              severity: low
              object-templates:
                - complianceType: mustnothave
                  objectDefinition:
                    kind: LVMCluster
                    apiVersion: lvm.topolvm.io/v1alpha1
                    metadata:
                      name: odf-lvmcluster
                      namespace: openshift-storage # must have namespace 'openshift-storage'
    ---
    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: vendor
           operator: In
           values:
             - OpenShift
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令来创建策略:

    # oc create -f odf-lvmcluster-deletion.yaml -n lvm-policy-ns
    Copy to Clipboard Toggle word wrap
  4. 使用名称(如 check-odf-lvmcluster-deletion.yaml)将以下 YAML 保存到文件中,以创建一个策略来检查 LVMCluster CR 是否已移除。

    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 # the policy-template spec.remediationAction is overridden by the preceding parameter value for spec.remediationAction.
              severity: low
              object-templates:
                - complianceType: mustnothave
                  objectDefinition:
                    kind: LVMCluster
                    apiVersion: lvm.topolvm.io/v1alpha1
                    metadata:
                      name: odf-lvmcluster
                      namespace: openshift-storage # must have namespace 'openshift-storage'
    ---
    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: vendor
           operator: In
           values:
             - OpenShift
    Copy to Clipboard Toggle word wrap
  5. 运行以下命令来创建策略:

    # oc create -f check-odf-lvmcluster-deletion.yaml -n lvm-policy-ns
    Copy to Clipboard Toggle word wrap
  6. 检查策略状态。

    # oc get policy -n lvm-policy-ns
    NAME                       REMEDIATION ACTION   COMPLIANCE STATE   AGE
    policy-lvmcluster-delete   enforce              Compliant          15m
    policy-lvmcluster-inform   inform               Compliant          15m
    Copy to Clipboard Toggle word wrap
  7. 在两个策略都合规后,将以下 YAML 保存到一个文件(例如 odf-lvm-operator-remove-policy.yaml),以创建用于卸载 OpenShift Data Foundation Logical Volume Manager Operator 的策略。

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-uninstall-odf-lvm-operator
    spec:
      clusterConditions:
      - status: "True"
        type: ManagedClusterConditionAvailable
      clusterSelector:
        matchExpressions:
        - key: vendor
          operator: In
          values:
          - OpenShift
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-uininstall-odf-lvm-operator
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-uninstall-odf-lvm-operator
    subjects:
    - apiGroup: policy.open-cluster-management.io
      kind: Policy
      name: uninstall-odf-lvm-operator
    ---
    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-odf-lvm-operator
    spec:
      disabled: false
      policy-templates:
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: uninstall-odf-lvm-operator
          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: odf-lvm-operator
                  namespace: openshift-storage
                spec:
                  installPlanApproval: Automatic
                  name: odf-lvm-operator
                  source: redhat-operators
                  sourceNamespace: openshift-marketplace
            remediationAction: enforce
            severity: low
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: policy-remove-lvm-operator-crds
          spec:
            object-templates:
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: logicalvolumes.topolvm.cybozu.com
            - 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
    Copy to Clipboard Toggle word wrap
  8. 运行以下命令来创建策略:

    # oc create -f odf-lvm-operator-remove-policy.yaml -ns lvm-policy-ns
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat