调度配置

调度策略允许实例运行在指定节点上,并有效防止其他应用调度到这些节点,确保实例的高可用性。

场景概述

  • PXC 部署在专用业务集群中,客户希望不同的 PXC 实例运行在不同节点上,便于维护和快速定位故障。

  • PXC 部署在已有业务集群中,客户希望将 PXC 实例部署在指定节点上,同时防止其他应用调度到相同节点。

这两种场景均可通过在实例创建页面的 调度配置 中配置 节点标签Pod 容忍度 实现。

本节演示如何让 PXC 实例运行在不同的指定节点上。指定节点如下:

组件指定节点
Redis192.168.100.101 192.168.100.102
MySQL-PXC192.168.100.103 192.168.100.104 192.168.100.105

前提条件

  1. 平台管理员需在指定节点上 更新节点标签,以便中间件根据标签调度到指定节点。

  2. 平台管理员需在指定节点上 设置污点,确保中间件根据容忍度调度到带污点的节点,同时防止其他应用调度到这些节点。

您可以根据实际需求配置节点和污点。

平台管理员已在平台中心设置了以下节点污点和标签:

节点节点标签节点污点
192.168.100.101 192.168.100.102keyredis=valuerediskeyredis=valueredis:NoSchedule
192.168.100.103 192.168.100.104 192.168.100.105keymysql=valuemysqlkeymysql=valuemysql:NoSchedule

配置说明

  • 污点(Taint):节点上的键值属性,防止 Pod 调度到该节点,除非 Pod 具有相应的容忍度。

  • 容忍度(Toleration):Pod 上的键值属性,允许 Pod 容忍特定的节点污点,确保 Pod 只调度到它能容忍的节点。

污点和容忍度支持 effect 参数,语法格式为 key=value:effecteffect 定义了对 Pod 的排斥级别,包含三种类型:

效果类型描述
NoSchedule不容忍该污点的新 Pod 不能调度到该节点。这是严格约束,但节点上已有的 Pod 不受影响。
PreferNoSchedule是 NoSchedule 的软版本,不容忍该污点的新 Pod 应尽量不调度到该节点,但如果没有其他节点可用,仍可能调度到该节点。已有 Pod 不受影响。
NoExecute不容忍该污点的新 Pod 不能调度到该节点。此外,如果已有 Pod 因节点污点或 Pod 容忍度的变化不再满足容忍条件,将被驱逐。

定义 Pod 容忍度时支持两种操作符:

操作符描述
EqualPod 的容忍度必须与节点污点的键、值和效果完全匹配。
ExistsPod 的容忍度必须匹配节点污点的键和效果,但值字段可以为空。

配置操作步骤

创建带调度配置的 MySQL 实例

  1. 在左侧导航面板,点击 MySQL-PXC

  2. 点击 创建 MySQL-PXC 实例

  3. 完成参数配置,在 调度配置 部分,根据指定节点选择节点标签和污点。

    MySQL Scheduling Configuration

  4. 点击 创建。MySQL 实例 Pod 将调度到节点 192.168.100.103、192.168.100.104 和 192.168.100.105。

验证

您可以通过进入 容器平台 > 计算组件 > 容器组,验证 MySQL 实例是否运行在指定节点上。