1

在 K8s 中,每个集群都有一组节点,一些是主节点,另一些是工作节点。我们如何知道一个节点是主节点还是工作节点?

4

3 回答 3

1

nodewhich和running on 是api-server节点。kube-controller-managementkube-schedulermaster

于 2021-09-24T07:39:43.147 回答
0

您可以使用kubectl get nodes列出所有节点。由角色给出,control-plane或者master您可以识别节点。mastercontrol-plane在以后的版本中替换为。

默认情况下,所有其他没有角色的节点都应该是工作节点。

此外,如果您需要有关您的节点的更多信息,您可以调用kubectl get nodes -o wide.

于 2021-09-24T07:30:42.420 回答
0

一般来说,检查节点是主节点还是工作节点的最简单方法是检查它是否有标签node-role.kubernetes.io/control-plane或在 Kubernetes 之前v1.20node-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将打印 IP 地址的命令control-plane

Kubernetes control plane is running at https://{ip-address-of-the-control-plane}:8443

请记住,对于某些云提供的解决方案,它的工作方式可能完全不同。例如,在 GKE 中,节点默认没有任何角色,返回的 IP 地址kubectl cluster-info是 API Server 的地址,未在命令中列出,kubectl get nodes因此请务必仔细检查 Kubernetes 集群提供商提供的文档。

于 2021-09-24T13:33:15.633 回答