5.3. 安装 Compliance Operator
在使用 Compliance Operator 之前,您必须保证在集群中部署它。
Compliance Operator 可能会报告有关受管平台(如 OpenShift Dedicated、Red Hat OpenShift Service on AWS)和 Microsoft Azure Red Hat OpenShift 的不正确的结果。如需更多信息,请参阅红帽知识库解决方案 #6983418。
5.3.1. 通过 Web 控制台安装 Compliance Operator
先决条件
-
您必须具有
admin权限。
流程
- 在 OpenShift Container Platform Web 控制台中导航至 Operators → OperatorHub。
- 搜索 Compliance Operator,然后点 Install。
-
保留 安装模式 和 命名空间 的默认选择,以确保将 Operator 安装到
openshift-compliance命名空间中。 - 点 Install。
验证
确认安装成功:
- 导航到 Operators → Installed Operators 页面。
-
检查 Compliance Operator 是否已安装在
openshift-compliance命名空间中,其状态为Succeeded。
如果 Operator 没有成功安装:
-
导航到 Operators → Installed Operators 页面,并检查
Status列中是否有任何错误或故障。 -
导航到 Workloads → Pods 页面,检查
openshift-compliance项目中报告问题的 pod 的日志。
如果 restricted 安全性上下文约束(SCC)已被修改为包含 system:authenticated 组或添加了 requiredDropCapabilities,则 Compliance Operator 可能会因为权限问题而无法正常工作。
您可以为 Compliance Operator scanner 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 安全标签必须在命名空间级别设置为
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,您必须手动创建命名空间并更新 openshift-compliance 命名空间的注解,或安装 Compliance Operator 的命名空间,使用 openshift.io/node-selector: ""。这会删除默认节点选择器并防止部署失败。
验证
通过检查 CSV 文件来验证安装是否成功:
$ oc get csv -n openshift-compliance
验证 Compliance Operator 是否正在运行:
$ oc get deploy -n openshift-compliance
如果 restricted 安全性上下文约束(SCC)已被修改为包含 system:authenticated 组或添加了 requiredDropCapabilities,则 Compliance Operator 可能会因为权限问题而无法正常工作。
您可以为 Compliance Operator scanner Pod 服务帐户创建自定义 SCC。如需更多信息,请参阅为 Compliance Operator 创建自定义 SCC。
5.3.3. 在托管 control plane 上安装 Compliance Operator
通过创建一个 Subscription 文件,可以使用 OperatorHub 在托管 control plane 中安装 Compliance Operator。
托管的 control plane 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
-
您必须具有
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 安全标签必须在命名空间级别设置为
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。