如何判断K8s中的节点是master节点还是worker节点
如何判定K8s集群中的节点属于master节点还是worker节点
以下是3种常用的判断方式,优先级从易到准:
方式1:查看节点角色标签
- 执行命令查看所有节点的标签与角色:
kubectl get nodes --show-labels - 符合以下标签特征的即为master(控制面)节点:
- K8s 1.20之前的版本,带有
node-role.kubernetes.io/master标签 - K8s 1.20及之后的版本,带有
node-role.kubernetes.io/control-plane标签 - 部分兼容旧配置的集群会同时存在上述两种标签
- K8s 1.20之前的版本,带有
- worker节点默认不会带有上述master/control-plane相关的官方角色标签
方式2:查看节点污点配置
- 执行命令查看指定节点的污点:
kubectl describe node <替换为目标节点名称> | grep Taints - 默认配置的集群中,master节点都会带有
node-role.kubernetes.io/master:NoSchedule或node-role.kubernetes.io/control-plane:NoSchedule污点,用于禁止普通业务Pod调度到master节点 - 未做特殊配置的worker节点不会带有上述污点
方式3:查看节点运行的组件(最准确)
- 执行命令查看指定节点上运行的所有Pod:
kubectl get pods -A -o wide | grep <替换为目标节点名称> - master节点上必然运行K8s控制面核心组件Pod:kube-apiserver、kube-controller-manager、kube-scheduler,大部分场景下etcd组件也会和master节点同节点部署
- worker节点上仅会运行kube-proxy、CNI插件、CoreDNS、业务工作负载类Pod,不会运行控制面核心组件
注意:如果集群经过高度自定义,修改了默认的标签、污点配置,以节点是否运行控制面核心组件作为最终判断标准。
内容的提问来源于stack exchange,提问作者Arjun
相关产品推荐
相关产品推荐

