k8s中如何判断一个节点是master还是worker?

Arj*_*jun 3 kubernetes kubernetes-cluster

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

Mik*_* S. 5

一般来说,检查节点是master还是worker的最简单方法是检查它是否有标签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'
Run Code Online (Sandbox Code Playgroud)

在 Kubernetes 之前v1.20

kubectl get nodes -l 'node-role.kubernetes.io/master'
Run Code Online (Sandbox Code Playgroud)

为了获得工作人员,我们可以对上述表达式使用否定(自 Kubernetes 以来v1.20):

kubectl get nodes -l '!node-role.kubernetes.io/control-plane'
Run Code Online (Sandbox Code Playgroud)

在 Kubernetes 之前v1.20

kubectl get nodes -l '!node-role.kubernetes.io/master'
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用命令kubectl cluster-info打印 IP 地址control-plane

Kubernetes control plane is running at https://{ip-address-of-the-control-plane}:8443
Run Code Online (Sandbox Code Playgroud)

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