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権限がある。
手順
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub ページに移動します。
- Compliance Operator を検索し、Install をクリックします。
-
Installation mode および namespace のデフォルトの選択を維持し、Operator が
openshift-compliancenamespace にインストールされていることを確認します。 - Install をクリックします。
検証
インストールが正常に行われたことを確認するには、以下を実行します。
- Operators → Installed Operators ページに移動します。
-
Compliance Operator が
openshift-compliancenamespace にインストールされ、そのステータスがSucceededであることを確認します。
Operator が正常にインストールされていない場合、以下を実行します。
-
Operators → Installed Operators ページに移動し、
Status列でエラーまたは失敗の有無を確認します。 -
Workloads → Pods ページに移動し、
openshift-complianceプロジェクトの Pod で問題を報告しているログの有無を確認します。
restricted なセキュリティーコンテキスト制約 (SCC) が system:authenticated グループを含むように変更されているか、requiredDropCapabilities を追加している場合、権限の問題により Compliance Operator が正しく機能しない可能性があります。
ComplianceOperator スキャナー Pod サービスアカウント用のカスタム SCC を作成できます。詳細は Compliance Operator のカスタム SCC の作成 を参照してください。
5.3.2. CLI を使用したCompliance Operator のインストール
前提条件
-
admin権限がある。
手順
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に設定する必要があります。
Namespaceオブジェクトを作成します。$ oc create -f namespace-object.yaml
OperatorGroupオブジェクトを定義します。operator-group-object.yamlの例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: compliance-operator namespace: openshift-compliance spec: targetNamespaces: - openshift-compliance
OperatorGroupオブジェクトを作成します。$ oc create -f operator-group-object.yaml
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
Subscriptionオブジェクトを作成します。$ oc create -f subscription-object.yaml
グローバルスケジューラー機能を設定する際に、defaultNodeSelector を有効にする場合、namespace を手動で作成し、openshift-compliance のアノテーションを更新するか、または openshift.io/node-selector: “" を使用してCompliance Operator がインストールされている namespace のアノテーションを更新する必要があります。これにより、デフォルトのノードセレクターが削除され、デプロイメントの失敗を防ぐことができます。
検証
CSV ファイルを確認して、インストールが正常に完了したことを確認します。
$ oc get csv -n openshift-compliance
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権限がある。
手順
以下のような
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に設定する必要があります。
次のコマンドを実行して、
Namespaceオブジェクトを作成します。$ oc create -f namespace-object.yaml
OperatorGroupオブジェクトを定義します。operator-group-object.yamlの例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: compliance-operator namespace: openshift-compliance spec: targetNamespaces: - openshift-compliance
以下のコマンドを実行して
OperatorGroupオブジェクトを作成します。$ oc create -f operator-group-object.yaml
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"以下のコマンドを実行して
Subscriptionオブジェクトを作成します。$ oc create -f subscription-object.yaml
検証
以下のコマンドを実行して CSV ファイルを検査し、インストールが正常に完了したことを確認します。
$ oc get csv -n openshift-compliance
次のコマンドを実行して、Compliance Operator が稼働していることを確認します。
$ oc get deploy -n openshift-compliance
関連情報
5.3.4. 関連情報
- Compliance Operator はネットワークが制限された環境でサポートされています。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。