6.5. 高度なカスタム File Integrity Operator タスクの実行
6.5.1. データベースの再初期化
File Integrity Operator が予定される変更を検知する場合、データベースの再初期化が必要になることがあります。
手順
FileIntegrity
カスタムリソース (CR) にfile-integrity.openshift.io/re-init
のアノテーションを付けます。$ oc annotate fileintegrities/worker-fileintegrity file-integrity.openshift.io/re-init=
古いデータベースとログファイルがバックアップされ、新しいデータベースが初期化されます。
oc debug
を使用して起動する Pod の以下の出力に示されるように、古いデータベースおよびログは/etc/kubernetes
の下にあるノードに保持されます。出力例
ls -lR /host/etc/kubernetes/aide.* -rw-------. 1 root root 1839782 Sep 17 15:08 /host/etc/kubernetes/aide.db.gz -rw-------. 1 root root 1839783 Sep 17 14:30 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_38 -rw-------. 1 root root 73728 Sep 17 15:07 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_55 -rw-r--r--. 1 root root 0 Sep 17 15:08 /host/etc/kubernetes/aide.log -rw-------. 1 root root 613 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_38 -rw-r--r--. 1 root root 0 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_55
レコードの永続性を確保するために、生成される設定マップは
FileIntegrity
オブジェクトによって所有されません。そのため、手動のクリーンアップが必要になります。結果として、以前の整合性の失敗が依然としてFileIntegrityNodeStatus
オブジェクトに表示されます。
6.5.2. マシン設定の統合
OpenShift Container Platform 4 では、クラスターノード設定は MachineConfig
オブジェクトで提供されます。MachineConfig
オブジェクトによって生じるファイルへの変更が予想されますが、ファイルの整合性スキャンは失敗しないことを前提にすることができます。MachineConfig
オブジェクトの更新によって生じるファイルの変更を抑制するために、File Integrity Operator はノードオブジェクトを監視します。ノードが更新されると、AIDE スキャンは更新の期間一時停止します。更新が完了すると、データベースが再初期化され、スキャンが再開されます。
この一時停止および再開ロジックは、ノードオブジェクトのアノテーションに反映されるため、MachineConfig
API での更新にのみ適用されます。
6.5.3. デーモンセットの参照
それぞれの FileIntegrity
オブジェクトはノード数についてのスキャンを表します。スキャン自体は、デーモンセットによって管理される Pod で実行されます。
FileIntegrity
オブジェクトを表すデーモンセットを見つけるには、以下を実行します。
$ oc -n openshift-file-integrity get ds/aide-worker-fileintegrity
そのデーモンセットの Pod を一覧表示するには、以下を実行します。
$ oc -n openshift-file-integrity get pods -lapp=aide-worker-fileintegrity
単一の AIDE Pod のログを表示するには、Pod のいずれかで oc logs
を呼び出します。
$ oc -n openshift-file-integrity logs pod/aide-worker-fileintegrity-mr8x6
出力例
Starting the AIDE runner daemon initializing AIDE db initialization finished running aide check ...
AIDE デーモンによって作成された設定マップは保持されず、File Integrity Operator がこれらを処理した後に削除されます。ただし、障害およびエラーの発生時に、これらの設定マップの内容は FileIntegrityNodeStatus
オブジェクトが参照する設定マップにコピーされます。