在 K8s 中,每个集群都有一组节点,一些是主节点,另一些是工作节点。我们如何知道一个节点是主节点还是工作节点?
3 回答
node
which和running on 是api-server
节点。kube-controller-management
kube-scheduler
master
您可以使用kubectl get nodes
列出所有节点。由角色给出,control-plane
或者master
您可以识别节点。master
将control-plane
在以后的版本中替换为。
默认情况下,所有其他没有角色的节点都应该是工作节点。
此外,如果您需要有关您的节点的更多信息,您可以调用kubectl get nodes -o wide
.
一般来说,检查节点是主节点还是工作节点的最简单方法是检查它是否有标签node-role.kubernetes.io/control-plane
(或在 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
将打印 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 集群提供商提供的文档。