默认情况下,master节点是不参与调度的,且在master节点上有一个污点NoSchedule(表示k8s将不会将Pod调度到具有该污点的Node上),有关污点章节可参考https://www.cnblogs.com/panw/p/16343392.html
如果想让master节点参与调度,需要先删除污点,允许k8s将Pod调度到该Node上,再添加master为nodes角色。
假设我们就一台单机环境,想让k8s平台既是master节点、又是node节点,可通过如下步骤实现:
- 删除污点
# 查看node kubectl get nodes # 查看污点 kubectl describe node k8s-master |grep Taints Taints: node-role.kubernetes.io/master:NoSchedule # 删除污点 kubectl taint nodes --all node-role.kubernetes.io/master-
- 添加master为worker角色
语法:kubectl label nodes 节点名字 node-role.kubernetes.io/ROLES属性名称=或-
# 让master节点参与调度,#如果想删除,把=换成- kubectl label nodes k8s-master node-role.kubernetes.io/worker=
也可以将control-plane标签删除。