调度策略允许实例运行在指定节点上,并有效防止其他应用被调度到这些节点,确保实例的高可用性。
PXC 部署在专用业务集群中,客户希望不同的 PXC 实例运行在不同节点上,便于维护和快速定位故障。
PXC 部署在现有业务集群中,客户希望将 PXC 实例部署在指定节点上,同时防止其他应用被调度到相同节点。
这两种场景均可通过在实例创建页面的 调度配置 区域配置 节点标签 和 Pod 容忍度 实现。
本节演示如何让 PXC 实例运行在不同的指定节点上。指定节点如下:
组件 | 指定节点 |
---|---|
Redis | 192.168.100.101 192.168.100.102 |
MySQL-PXC | 192.168.100.103 192.168.100.104 192.168.100.105 |
平台管理员需在指定节点上 更新节点标签,以便中间件根据标签调度到指定节点。
平台管理员需在指定节点上 设置污点,确保中间件根据容忍度调度到带污点的节点,同时防止其他应用被调度到这些节点。
您可以根据实际需求配置节点和污点。
平台管理员已在平台中心设置了以下节点污点和标签配置:
节点 | 节点标签 | 节点污点 |
---|---|---|
192.168.100.101 192.168.100.102 | keyredis=valueredis | keyredis=valueredis:NoSchedule |
192.168.100.103 192.168.100.104 192.168.100.105 | keymysql=valuemysql | keymysql=valuemysql:NoSchedule |
污点(Taint):节点上的键值属性,阻止 Pod 被调度到该节点,除非 Pod 具有相应的容忍度。
容忍度(Toleration):Pod 上的键值属性,允许 Pod 容忍特定的节点污点,确保 Pod 仅调度到其能容忍的节点。
污点和容忍度支持 effect
参数,语法格式为 key=value:effect
。effect
定义了对 Pod 的排除级别,包括三种类型:
效果类型 | 描述 |
---|---|
NoSchedule | 新创建的 Pod 若不容忍该污点,则不能被调度到该节点。这是严格限制,但已存在的 Pod 不受影响。 |
PreferNoSchedule | 比 NoSchedule 更宽松,新创建的 Pod 若不容忍该污点,优先不调度到该节点,但如果没有其他节点可用,仍可调度。已存在的 Pod 不受影响。 |
NoExecute | 新创建的 Pod 若不容忍该污点,不能被调度到该节点。此外,如果节点污点或 Pod 容忍度发生变化,导致已存在的 Pod 不再满足容忍条件,则该 Pod 会被驱逐。 |
定义 Pod 容忍度时支持两种操作符:
操作符 | 描述 |
---|---|
Equal | Pod 的容忍度必须与节点污点的键、值和效果完全匹配。 |
Exists | Pod 的容忍度必须匹配节点污点的键和效果,值字段可以为空。 |
在左侧导航面板中,点击 MySQL-PXC。
点击 创建 MySQL-PXC 实例。
完成参数配置。在 调度配置 区域,根据指定节点选择节点标签和污点。
点击 创建。MySQL 实例 Pod 将被调度到节点 192.168.100.103、192.168.100.104 和 192.168.100.105。
您可以通过进入 容器平台 > 计算组件 > 容器组,验证 MySQL 实例是否运行在指定节点上。