【问题标题】:How to find if a node is master or worker in k8s?k8s中如何判断一个节点是master还是worker?
【发布时间】:2021-11-17 11:47:36
【问题描述】:

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

【问题讨论】:

    标签: kubernetes kubernetes-cluster


    【解决方案1】:

    运行api-serverkube-controller-managementkube-schedulernodemaster 节点。

    【讨论】:

      【解决方案2】:

      您可以使用kubectl get nodes 列出所有节点。通过角色control-planemaster,您可以识别节点。在未来的版本中,master 将替换为 control-plane

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

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

      【讨论】:

      • 还有一件事。某些云提供商不会向您显示托管环境(即 GKE)中的主节点。这取决于 Kubernetes 集群的提供者和设置。
      【解决方案3】:

      一般来说,检查节点是master还是worker最简单的方法是检查它是否有标签node-role.kubernetes.io/control-planeor before 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,它将打印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 集群提供商提供的文档。

      【讨论】:

        猜你喜欢
        • 2014-08-29
        • 2012-08-10
        • 1970-01-01
        • 2013-08-08
        • 1970-01-01
        • 1970-01-01
        • 2013-01-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多