3.5. 为监控组件分配容忍(tolerations)
您可以为监控用户定义的项目的组件分配容限,以便将其移到污点的 worker 节点。在控制平面或基础架构节点上不允许调度。
前提条件
-
您可以使用具有
dedicated-admin
角色的用户访问集群。 -
user-workload-monitoring-config
ConfigMap
对象存在于openshift-user-workload-monitoring
命名空间中。在集群创建时默认创建此对象。 -
已安装 OpenShift CLI(
oc
)。
流程
编辑
ConfigMap
对象:在
openshift-user-workload-monitoring
项目中编辑user-workload-monitoring-config
ConfigMap
对象:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
为组件指定
tolerations
:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>: tolerations: <toleration_specification>
相应地替换
<component>
和<toleration_specification>
。例如,
oc adm taint nodes node1 key1=value1:NoSchedule
会将一个键为key1
且值为value1
的污点添加到node1
。这会防止监控组件在node1
上部署 Pod,除非为该污点配置了容限。以下示例将thanosRuler
组件配置为容许示例污点:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoSchedule"
- 保存文件以使改变生效。受新配置影响的 Pod 会自动重新部署。
其他资源
- 参阅 Kubernetes 文档中有关污点和容限的内容