5.3. Compliance Operator のインストール

Compliance Operator を使用する前に、これがクラスターにデプロイされていることを確認する必要があります。

重要

Compliance Operator は、OpenShift Dedicated、Red Hat OpenShift Service on AWS、Azure Red Hat OpenShift などのマネージドプラットフォームで誤った結果を報告する場合があります。詳細は、Red Hat ナレッジベースソリューション Red Hat Knowledgebase Solution #6983418 を参照してください。

5.3.1. Web コンソールを使用したCompliance Operator のインストール

前提条件

  • admin 権限がある。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorsOperatorHub ページに移動します。
  2. Compliance Operator を検索し、Install をクリックします。
  3. Installation mode および namespace のデフォルトの選択を維持し、Operator が openshift-compliance namespace にインストールされていることを確認します。
  4. Install をクリックします。

検証

インストールが正常に行われたことを確認するには、以下を実行します。

  1. OperatorsInstalled Operators ページに移動します。
  2. Compliance Operator が openshift-compliance namespace にインストールされ、そのステータスが Succeeded であることを確認します。

Operator が正常にインストールされていない場合、以下を実行します。

  1. OperatorsInstalled Operators ページに移動し、Status 列でエラーまたは失敗の有無を確認します。
  2. WorkloadsPods ページに移動し、 openshift-compliance プロジェクトの Pod で問題を報告しているログの有無を確認します。
重要

restricted なセキュリティーコンテキスト制約 (SCC) が system:authenticated グループを含むように変更されているか、requiredDropCapabilities を追加している場合、権限の問題により Compliance Operator が正しく機能しない可能性があります。

ComplianceOperator スキャナー Pod サービスアカウント用のカスタム SCC を作成できます。詳細は Compliance Operator のカスタム SCC の作成 を参照してください。

5.3.2. CLI を使用したCompliance Operator のインストール

前提条件

  • admin 権限がある。

手順

  1. Namespace オブジェクトを定義します。

    namespace-object.yaml の例

    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
        pod-security.kubernetes.io/enforce: privileged 1
      name: openshift-compliance

    1
    OpenShift Container Platform 4.13 では、Pod セキュリティーラベルを namespace レベルで privileged に設定する必要があります。
  2. Namespace オブジェクトを作成します。

    $ oc create -f namespace-object.yaml
  3. OperatorGroup オブジェクトを定義します。

    operator-group-object.yaml の例

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: compliance-operator
      namespace: openshift-compliance
    spec:
      targetNamespaces:
      - openshift-compliance

  4. OperatorGroup オブジェクトを作成します。

    $ oc create -f operator-group-object.yaml
  5. Subscription オブジェクトを定義します。

    subscription-object.yaml の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: compliance-operator-sub
      namespace: openshift-compliance
    spec:
      channel: "stable"
      installPlanApproval: Automatic
      name: compliance-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace

  6. Subscription オブジェクトを作成します。

    $ oc create -f subscription-object.yaml
注記

グローバルスケジューラー機能を設定する際に、defaultNodeSelector を有効にする場合、namespace を手動で作成し、openshift-compliance のアノテーションを更新するか、または openshift.io/node-selector: “" を使用してCompliance Operator がインストールされている namespace のアノテーションを更新する必要があります。これにより、デフォルトのノードセレクターが削除され、デプロイメントの失敗を防ぐことができます。

検証

  1. CSV ファイルを確認して、インストールが正常に完了したことを確認します。

    $ oc get csv -n openshift-compliance
  2. Compliance Operator が稼働していることを確認します。

    $ oc get deploy -n openshift-compliance
重要

restricted なセキュリティーコンテキスト制約 (SCC) が system:authenticated グループを含むように変更されているか、requiredDropCapabilities を追加している場合、権限の問題により Compliance Operator が正しく機能しない可能性があります。

ComplianceOperator スキャナー Pod サービスアカウント用のカスタム SCC を作成できます。詳細は Compliance Operator のカスタム SCC の作成 を参照してください。

5.3.3. ホスト型コントロールプレーンへの Compliance Operator のインストール

Compliance Operator は、Subscription ファイルを作成して OperatorHub を使用してホストされたコントロールプレーンにインストールできます。

重要

ホストされたコントロールプレーンは、テクノロジープレビュー機能としてのみ利用できます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

  • admin 権限がある。

手順

  1. 以下のような Namespace オブジェクトを定義します。

    namespace-object.yaml の例

    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
        pod-security.kubernetes.io/enforce: privileged 1
      name: openshift-compliance

    1
    OpenShift Container Platform 4.13 では、Pod セキュリティーラベルを namespace レベルで privileged に設定する必要があります。
  2. 次のコマンドを実行して、Namespace オブジェクトを作成します。

    $ oc create -f namespace-object.yaml
  3. OperatorGroup オブジェクトを定義します。

    operator-group-object.yaml の例

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: compliance-operator
      namespace: openshift-compliance
    spec:
      targetNamespaces:
      - openshift-compliance

  4. 以下のコマンドを実行して OperatorGroup オブジェクトを作成します。

    $ oc create -f operator-group-object.yaml
  5. Subscription オブジェクトを定義します。

    subscription-object.yaml の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: compliance-operator-sub
      namespace: openshift-compliance
    spec:
      channel: "stable"
      installPlanApproval: Automatic
      name: compliance-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      config:
        nodeSelector:
          node-role.kubernetes.io/worker: ""
      env:
      - name: PLATFORM
        value: "HyperShift"

  6. 以下のコマンドを実行して Subscription オブジェクトを作成します。

    $ oc create -f subscription-object.yaml

検証

  1. 以下のコマンドを実行して CSV ファイルを検査し、インストールが正常に完了したことを確認します。

    $ oc get csv -n openshift-compliance
  2. 次のコマンドを実行して、Compliance Operator が稼働していることを確認します。

    $ oc get deploy -n openshift-compliance

5.3.4. 関連情報