7.10. 使用 Cluster Resource Override Operator 的集群级别的过量使用
Cluster Resource Override Operator 是一个准入 Webhook,可让您控制过量使用的程度,并在集群中的所有节点上管理容器密度。Operator 控制特定项目中节点可以如何超过定义的内存和 CPU 限值。
您必须使用 OpenShift Container Platform 控制台或 CLI 安装 Cluster Resource override Operator,如下所示。在安装过程中,您会创建一个 ClusterResourceOverride 自定义资源 (CR),其中设置过量使用级别,如下例所示:
如果容器上没有设置限值,则 Cluster Resourceoverride Operator 覆盖无效。创建一个针对单独项目的带有默认限制的 LimitRange 对象,或在 Pod specs 中配置要应用的覆盖的限制。
配置后,可通过将以下标签应用到每个项目的命名空间对象来启用每个项目的覆盖:
Operator 监视 ClusterResourceOverride CR, 并确保 ClusterResourceOverride 准入 Webhook 被安装到与 Operator 相同的命名空间。
7.10.1. 使用 Web 控制台安装 Cluster Resource Override Operator 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台来安装 Cluster Resource Override Operator,以帮助控制集群中的过量使用。
先决条件
-
如果容器上未设置限值,Cluster Resourceoverride Operator 将没有作用。您必须使用一个
LimitRange对象为项目指定默认限值,或在Podspec 中配置要应用的覆盖的限制。
流程
使用 OpenShift Container Platform web 控制台安装 Cluster Resource Override Operator:
在 OpenShift Container Platform web 控制台中进入 Home
Projects - 点击 Create Project。
-
指定
clusterresourceoverride-operator作为项目的名称。 - 点击 Create。
进入 Operators
OperatorHub。 - 从可用 Operator 列表中选择 ClusterResourceOverride Operator,再点击 Install。
- 在 Install Operator 页面中,确保为 Installation Mode 选择了 A specific Namespace on the cluster。
- 确保为 Installed Namespace 选择了 clusterresourceoverride-operator。
- 指定更新频道和批准策略。
- 点击 Install。
在 Installed Operators 页面中,点 ClusterResourceOverride。
- 在 ClusterResourceOverride Operator 详情页面中,点 Create ClusterResourceOverride。
在 Create ClusterResourceOverride 页面中,点 YAML 视图并编辑 YAML 模板,以根据需要设置过量使用值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点击 Create。
通过检查集群自定义资源的状态来检查准入 Webhook 的当前状态:
- 在 ClusterResourceOverride Operator 页面中,点击 cluster。
在 ClusterResourceOverride Details 页中,点 YAML。当 webhook 被调用时,
mutatingWebhookConfigurationRef项会出现。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 引用
ClusterResourceOverride准入Webhook。
7.10.2. 使用 CLI 安装 Cluster Resource Override Operator 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform CLI 来安装 Cluster Resource Override Operator,以帮助控制集群中的过量使用。
先决条件
-
如果容器上未设置限值,Cluster Resourceoverride Operator 将没有作用。您必须使用一个
LimitRange对象为项目指定默认限值,或在Podspec 中配置要应用的覆盖的限制。
流程
使用 CLI 安装 Cluster Resource Override Operator:
为 Cluster Resource Override Operator 创建命名空间:
为 Cluster Resource Override Operator 创建一个
Namespace空间对象 YAML 文件(如cro-namespace.yaml):apiVersion: v1 kind: Namespace metadata: name: clusterresourceoverride-operator
apiVersion: v1 kind: Namespace metadata: name: clusterresourceoverride-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建命名空间:
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc create -f cro-namespace.yaml
$ oc create -f cro-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个 Operator 组:
为 Cluster Resource Override Operator 创建一个
OperatorGroup对象 YAML 文件(如 cro-og.yaml):Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Operator 组:
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc create -f cro-og.yaml
$ oc create -f cro-og.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个订阅:
为 Cluster Resourceoverride Operator 创建一个
Subscription对象 YAML 文件(如 cro-sub.yaml):Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建订阅:
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc create -f cro-sub.yaml
$ oc create -f cro-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在
clusterresourceoverride-operator命名空间中创建ClusterResourceOverride自定义资源(CR)对象:进入
clusterresourceoverride-operator命名空间。oc project clusterresourceoverride-operator
$ oc project clusterresourceoverride-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Cluster Resourceoverride Operator 创建
ClusterResourceOverride对象 YAML 文件(如 cro-cr.yaml):Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
ClusterResourceOverride对象:oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc create -f cro-cr.yaml
$ oc create -f cro-cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
通过检查集群自定义资源的状态来验证准入 Webhook 的当前状态。
oc get clusterresourceoverride cluster -n clusterresourceoverride-operator -o yaml
$ oc get clusterresourceoverride cluster -n clusterresourceoverride-operator -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当 webhook 被调用时,
mutatingWebhookConfigurationRef项会出现。输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 引用
ClusterResourceOverride准入Webhook。
7.10.3. 配置集群级别的过量使用 复制链接链接已复制到粘贴板!
Cluster Resource Override Operator 需要一个 ClusterResourceOverride 自定义资源 (CR),以及您希望 Operator 来控制过量使用的每个项目的标识。
先决条件
-
如果容器上未设置限值,Cluster Resourceoverride Operator 将没有作用。您必须使用一个
LimitRange对象为项目指定默认限值,或在Podspec 中配置要应用的覆盖的限制。
流程
修改集群级别的过量使用:
编辑
ClusterResourceOverrideCR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保在每个您希望 Cluster Resourceoverride Operator 来控制过量使用的项目中都添加了以下标识:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 把这个标识添加到每个项目。