This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.6. 使用节点选择器移动监控组件
通过将 nodeSelector 约束与标记的节点搭配使用,您可以将任何监控堆栈组件移到特定的节点上。通过这样做,您可以控制集群中监控组件的放置和分发。
通过控制监控组件的放置和分发,您可以根据特定要求或策略优化系统资源使用、提高性能和隔离工作负载。
2.6.1. 节点选择器与其他约束一起使用 复制链接链接已复制到粘贴板!
如果使用节点选择器约束移动监控组件,请注意集群可能存在其他限制来控制 pod 调度:
- 拓扑分布约束可能处于放置状态来控制 pod 放置。
- Prometheus、Thanos Querier、Alertmanager 和其他监控组件会放置硬反关联性规则,以确保这些组件的多个 pod 始终分散到不同的节点上,因此始终具有高可用性。
将 pod 调度到节点时,pod 调度程序会在决定 pod 放置时尝试满足所有现有的限制。也就是说,当 pod 调度程序决定将哪些 pod 放置到哪些节点上时,所有约束都会编译。
因此,如果您配置节点选择器约束,但无法满足现有的约束,pod 调度程序无法与所有约束匹配,也不会调度 pod 放置到节点上。
为保持监控组件的弹性和高可用性,请确保有足够的节点可用,并在配置节点选择器约束以移动组件时匹配所有约束。
2.6.2. 将监控组件移到其他节点 复制链接链接已复制到粘贴板!
要指定运行监控堆栈组件的集群中的节点,请在组件的 ConfigMap 对象中配置 nodeSelector 约束,以匹配分配给节点的标签。
您不能将节点选择器约束直接添加到现有调度的 pod 中。
先决条件
如果要配置 OpenShift Container Platform 核心监控组件:
-
您可以使用具有
cluster-admin集群角色的用户身份访问集群。 -
您已创建
cluster-monitoring-configConfigMap对象。
-
您可以使用具有
如果您要配置用于监控用户定义的项目的组件:
-
您可以使用具有
cluster-admin集群角色或具有openshift-user-workload-monitoring项目中的user-workload-monitoring-config-edit角色的用户访问集群。 -
您已创建了
user-workload-monitoring-configConfigMap对象。
-
您可以使用具有
-
已安装 OpenShift CLI(
oc)。
流程
如果您还没有这样做,请在要运行监控组件的节点中添加标签:
oc label nodes <node-name> <node-label>
$ oc label nodes <node-name> <node-label>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
ConfigMap对象:要移动用于监控 OpenShift Container Platform 核心项目的组件:
编辑
openshift-monitoring项目中的cluster-monitoring-configConfigMap对象:oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
data/config.yaml下为组件指定nodeSelector约束的节点标签:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果在配置
nodeSelector约束后监控组件仍然处于Pending状态,请检查 Pod 事件中与污点和容限相关的错误。
要移动用于监控用户定义的项目的组件:
在
openshift-user-workload-monitoring项目中编辑user-workload-monitoring-configConfigMap对象:oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
data/config.yaml下为组件指定nodeSelector约束的节点标签:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果在配置
nodeSelector约束后监控组件仍然处于Pending状态,请检查 Pod 事件中与污点和容限相关的错误。
保存文件以使改变生效。新配置中指定的组件会自动移到新节点上。
注意除非集群管理员为用户定义的项目启用了监控,否则应用到
user-workload-monitoring-configConfigMap的配置不会被激活。警告当您将更改保存到监控配置映射时,可能会重新部署相关项目中的 Pod 和其他资源。该项目中正在运行的监控进程可能会重启。