【发布时间】:2021-11-17 11:47:36
【问题描述】:
在 K8s 中,每个集群都有一组节点,一些是主节点,另一些是工作节点。 我们如何知道一个节点是master还是worker?
【问题讨论】:
标签: kubernetes kubernetes-cluster
在 K8s 中,每个集群都有一组节点,一些是主节点,另一些是工作节点。 我们如何知道一个节点是master还是worker?
【问题讨论】:
标签: kubernetes kubernetes-cluster
运行api-server、kube-controller-management 和kube-scheduler 的node 是master 节点。
【讨论】:
您可以使用kubectl get nodes 列出所有节点。通过角色control-plane 或master,您可以识别节点。在未来的版本中,master 将替换为 control-plane。
默认情况下,所有其他没有角色的节点都应该是工作节点。
此外,如果您需要有关节点的更多信息,可以致电kubectl get nodes -o wide。
【讨论】:
一般来说,检查节点是master还是worker最简单的方法是检查它是否有标签node-role.kubernetes.io/control-plane(or before Kubernetes v1.20:node-role.kubernetes.io/master):
自 Kubernetes v1.20:
kubectl get nodes -l 'node-role.kubernetes.io/control-plane'
在 Kubernetes 之前v1.20:
kubectl get nodes -l 'node-role.kubernetes.io/master'
要获得工人,我们可以对上述表达式使用否定(因为 Kubernetes v1.20):
kubectl get nodes -l '!node-role.kubernetes.io/control-plane'
在 Kubernetes 之前v1.20:
kubectl get nodes -l '!node-role.kubernetes.io/master'
另一种方法是使用命令kubectl cluster-info,它将打印control-plane的IP地址:
Kubernetes control plane is running at https://{ip-address-of-the-control-plane}:8443
请记住,对于某些云提供的解决方案,它的工作方式可能完全不同。例如,in GKE, nodes don't have any roles by default and IP address returned by kubectl cluster-info is address of the API Server,未在 kubectl get nodes 命令中列出,因此请务必仔细检查 Kubernetes 集群提供商提供的文档。
【讨论】: