Menu Close

5.4.2. ワーカーノードでの結果サーバー Pod のスケジューリング

結果サーバー Pod は、生の Asset Reporting Format (ARF) スキャン結果を格納する永続ボリューム (PV) をマウントします。nodeSelector 属性および tolerations 属性を使用すると、結果サーバー Pod の場所を構成できます。

これは、コントロールプレーンノードが永続ボリュームをマウントすることを許可されていない環境で役立ちます。

手順

  • Compliance Operator 用の ScanSetting カスタムリソース (CR) を作成します。

    1. ScanSetting CR を定義し、YAML ファイルを保存します (例: rs-workers.yaml)。

      apiVersion: compliance.openshift.io/v1alpha1
      kind: ScanSetting
      metadata:
        name: rs-on-workers
        namespace: openshift-compliance
      rawResultStorage:
        nodeSelector:
          node-role.kubernetes.io/worker: "" 1
        pvAccessModes:
        - ReadWriteOnce
        rotation: 3
        size: 1Gi
        tolerations:
        - operator: Exists 2
      roles:
      - worker
      - master
      scanTolerations:
        - operator: Exists
      schedule: 0 1 * * *
      1
      Compliance Operator は、このノードを使用してスキャン結果を ARF 形式で保存します。
      2
      結果のサーバー Pod は、すべての汚染を許容します。
    2. ScanSetting CR を作成するには、次のコマンドを実行します。

      $ oc create -f rs-workers.yaml

検証

  • ScanSetting オブジェクトが作成されたことを確認するには、次のコマンドを実行します。

    $ oc get scansettings rs-on-workers -n openshift-compliance -o yaml

    出力例

    apiVersion: compliance.openshift.io/v1alpha1
    kind: ScanSetting
    metadata:
      creationTimestamp: "2021-11-19T19:36:36Z"
      generation: 1
      name: rs-on-workers
      namespace: openshift-compliance
      resourceVersion: "48305"
      uid: 43fdfc5f-15a7-445a-8bbc-0e4a160cd46e
    rawResultStorage:
      nodeSelector:
        node-role.kubernetes.io/worker: ""
      pvAccessModes:
      - ReadWriteOnce
      rotation: 3
      size: 1Gi
      tolerations:
      - operator: Exists
    roles:
    - worker
    - master
    scanTolerations:
    - operator: Exists
    schedule: 0 1 * * *
    strictNodeScan: true