apiVersion: v1
kind: Namespace
metadata:
labels:
openshift.io/cluster-monitoring: "true"
pod-security.kubernetes.io/enforce: privileged (1)
name: openshift-compliance
在使用 Compliance Operator 之前,必须确保它已部署在集群中。
Compliance Operator 可能会在托管平台(例如 OpenShift Dedicated、AWS Classic 上的 Red Hat OpenShift Service 和 Microsoft Azure Red Hat OpenShift)上报告不正确的结果。有关更多信息,请参阅知识库文章 Compliance Operator 在托管服务上报告不正确的结果。 |
您必须拥有 `admin` 权限。
您必须配置 `StorageClass` 资源。
在 OpenShift Container Platform Web 控制台中,导航到 **操作符** → **OperatorHub**。
搜索 Compliance Operator,然后单击 **安装**。
保留 **安装模式** 和 **命名空间** 的默认选择,以确保操作符将安装到 `openshift-compliance` 命名空间。
单击 **安装**。
要确认安装是否成功
导航到 **操作符** → **已安装的操作符** 页面。
检查 Compliance Operator 是否已安装在 `openshift-compliance` 命名空间中,并且其状态为 `Succeeded`。
如果操作符未成功安装
导航到 **操作符** → **已安装的操作符** 页面,并检查 `Status` 列中是否存在任何错误或故障。
导航到 **工作负载** → **Pod** 页面,并检查 `openshift-compliance` 项目中任何报告问题的 Pod 的日志。
如果已修改 `restricted` 安全上下文约束 (SCC) 以包含 `system:authenticated` 组或添加了 `requiredDropCapabilities`,则 Compliance Operator 由于权限问题可能无法正常工作。 您可以为 Compliance Operator 扫描程序 Pod 服务帐户创建一个自定义 SCC。有关更多信息,请参阅 为 Compliance Operator 创建自定义 SCC。 |
您必须拥有 `admin` 权限。
您必须配置 `StorageClass` 资源。
定义 `Namespace` 对象
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.17 中,Pod 安全标签必须在命名空间级别设置为 `privileged`。 |
创建 `Namespace` 对象
$ oc create -f namespace-object.yaml
定义 `OperatorGroup` 对象
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` 对象
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.io/node-selector: “”` 更新 `openshift-compliance` 命名空间(或安装 Compliance Operator 的命名空间)的注释。这将删除默认节点选择器并防止部署失败。 |
通过检查 CSV 文件验证安装是否成功
$ oc get csv -n openshift-compliance
验证合规性 Operator 正在运行
$ oc get deploy -n openshift-compliance
从合规性 Operator 1.5.0 版本开始,该 Operator 已在使用托管控制平面的 Red Hat OpenShift Service on AWS 上进行了测试。
Red Hat OpenShift Service on AWS 托管控制平面集群对由 Red Hat 管理的控制平面访问权限有限制。默认情况下,合规性 Operator 将调度到master
节点池中的节点,但在 Red Hat OpenShift Service on AWS 托管控制平面安装中不可用。这要求您以允许 Operator 在可用节点池上进行调度的方式配置Subscription
对象。此步骤对于在 Red Hat OpenShift Service on AWS 托管控制平面集群上成功安装是必要的。
您必须拥有 `admin` 权限。
您必须配置 `StorageClass` 资源。
定义 `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.17 中,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: "" (1)
1 | 更新 Operator 部署以在worker 节点上部署。 |
运行以下命令创建Subscription
对象
$ oc create -f subscription-object.yaml
运行以下命令检查集群服务版本 (CSV) 文件,以验证安装是否成功
$ oc get csv -n openshift-compliance
使用以下命令验证合规性 Operator 是否正在运行
$ oc get deploy -n openshift-compliance
如果已修改 `restricted` 安全上下文约束 (SCC) 以包含 `system:authenticated` 组或添加了 `requiredDropCapabilities`,则 Compliance Operator 由于权限问题可能无法正常工作。 您可以为 Compliance Operator 扫描程序 Pod 服务帐户创建一个自定义 SCC。有关更多信息,请参阅 为 Compliance Operator 创建自定义 SCC。 |
可以通过 OperatorHub 创建Subscription
文件,在托管控制平面中安装合规性 Operator。
托管控制平面仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能支持范围的更多信息,请参见 技术预览功能支持范围。 |
您必须拥有 `admin` 权限。
定义一个类似于以下内容的Namespace
对象
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.17 中,Pod 安全标签必须在命名空间级别设置为 `privileged`。 |
运行以下命令创建Namespace
对象
$ oc create -f namespace-object.yaml
定义 `OperatorGroup` 对象
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` 对象
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
运行以下命令验证合规性 Operator 是否正在运行
$ oc get deploy -n openshift-compliance
合规性 Operator 支持受限网络环境。有关更多信息,请参见 在断开连接的环境中使用 Operator Lifecycle Manager。