我们的 1.24.4 的生产 K8s 集群机器是 13 台 ARM 架构物理机搭建的,计算资源配置是 64C 、384G ,其中有 3 台是 master 节点,目前只跑了 master 的组件,如 api-server 、scheduler 、controller-manager 、kubelet 、etcd 等,因为现在计算资源紧张,而且如此高性能的 master 节点只跑这些组件缺失感觉有些浪费。因此打算把 master 也加入业务容器可调度的节点方位内。目前有两种方案,第一种:我们人工选择部分业务并配置容忍 master 不可调度的污点(修改应用的 Deployment )来实现他们在 master 节点的运行,由于我们有一些应用的资源使用的统计数据,因此对 master 节点的影响较为可控(比较担心影响 etcd ,虽然 IO 层面 master 节点的 etcd 的目录在单独的磁盘上,但是还是怕计算资源不够用);还有一种方式是直接把 master 的污点给去掉,让 Pod 可以随便调度到 master 节点上,这样比较省事,不用我们筛选应用,但是非常担心 master 的组件受到的应用影响,从而集群失控。请问大家对这 2 套方案有啥建议呢?十分感谢!

