第2章 RHACM を使用した OpenShift Data Foundation Logical Volume Manager Operator のインストール

OpenShift Data Foundation Logical Volume Manager Operator は、Red Hat Advanced Cluster Management for Kubernetes (RHACM) を使用して単一ノード OpenShift (SNO) クラスターにデプロイされます。RHACM に Policy を作成して、PlacementRule で指定したセレクターに一致するマネージドクラスターに適用される場合に Operator をデプロイし、設定します。このポリシーは、後にインポートされ、PlacementRule を満たすクラスターにも適用されます。

前提条件

  • cluster-admin および Operator のインストールパーミッションを持つアカウントを使用して RHACM クラスターにアクセスできる。
  • OpenShift Data Foundation Logical Volume Manager Operator で使用される各 SNO クラスター上の専用ディスク。
注記

他のストレージプロビジョナーが SNO クラスターにインストールされていないことを確認します。OpenShift Data Foundation Logical Volume Manager Operator は、ノード上の利用可能なすべてのディスクを使用するため、唯一のストレージプロビジョナーである必要があります。

手順

  1. OpenShift 認証情報を使用して RHACM CLI にログインします。

    詳細は、Install Red Hat Advanced Cluster Management for Kubernetes を参照してください。

  2. namespace を作成します。

    # oc create ns lvm-policy-ns
  3. namespace にポリシー YAML を作成します。

    # This policy verifies the installation of the official version of the OpenShift Data Foundation
    # Logical Volume Manager Operator on the managed clusters.
    # If set to "enforce" it installs the operator.
    # Used APIs: OLM, ODF-LVMO #https://github.com/operator-framework/operator-lifecycle-manager
    # https://github.com/red-hat-storage/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: policy-lvm-operator
    spec:
     disabled: false
     remediationAction: enforce
     policy-templates:
       - objectDefinition:
           apiVersion: policy.open-cluster-management.io/v1
           kind: ConfigurationPolicy
           metadata:
             name: policy-lvm-namespace
           spec:
             object-templates:
               - complianceType: musthave
                 objectDefinition:
                   apiVersion: v1
                   kind: Namespace
                   metadata:
                     name: openshift-storage
                     labels:
                       openshift.io/cluster-monitoring: "true"
             remediationAction: enforce
             severity: high
       - objectDefinition:
           apiVersion: policy.open-cluster-management.io/v1
           kind: ConfigurationPolicy
           metadata:
             name: policy-lvm-operator-operatorgroup
           spec:
             object-templates:
               - complianceType: musthave
                 objectDefinition:
                   apiVersion: operators.coreos.com/v1alpha2
                   kind: OperatorGroup
                   metadata:
                     name: openshift-storage-operatorgroup
                     namespace: openshift-storage
                   spec:
                     targetNamespaces:
                       - openshift-storage
             remediationAction: enforce
             severity: high
       - objectDefinition:
           apiVersion: policy.open-cluster-management.io/v1
           kind: ConfigurationPolicy
           metadata:
             name: policy-lvm-operator-subscription
           spec:
             object-templates:
               - complianceType: musthave
                 objectDefinition:
                   apiVersion: operators.coreos.com/v1alpha1
                   kind: Subscription
                   metadata:
                     name: odf-lvm-operator
                     namespace: openshift-storage
                   spec:
                     channel: stable-4.10
                     installPlanApproval: Automatic
                     name: odf-lvm-operator
                     source: redhat-operators
                     sourceNamespace: openshift-marketplace
                     startingCSV: odf-lvm-operator.v4.10.0
             remediationAction: enforce
             severity: high
       - objectDefinition:
           apiVersion: policy.open-cluster-management.io/v1
           kind: ConfigurationPolicy
           metadata:
             name: policy-lvmcluster
           spec:
             object-templates:
               - complianceType: musthave
                 objectDefinition:
                   apiVersion: lvm.topolvm.io/v1alpha1
                   kind: LVMCluster
                   metadata:
                     name: odf-lvmcluster
                     namespace: openshift-storage
                   spec:
                     storage:
                       deviceClasses:
                       - name: vg1
             remediationAction: enforce
             severity: high
  4. 次のコマンドを実行します。

    # oc create -f policy-lvm-operator.yaml -n lvm-policy-ns

    これにより、PolicyPlacementRule、および PlacementBinding が作成されます。PolicyNamespaceOperatorGroupSubscription、および LVMCluster リソースを作成します。これにより、選択基準に一致する SNO クラスターで Operator をデプロイし、ストレージをプロビジョニングするのに必要なリソースを設定するように設定します。operator は、インストール後に未使用のディスクをすべて使用します。