【问题标题】:kubectl get nodes not showing workerskubectl 获取节点不显示工人
【发布时间】:2020-07-27 08:36:48
【问题描述】:

我正在关注这个tutorial,有 2 个运行 CentOS7 的虚拟机。一切看起来都很好(安装/设置期间没有错误),但我看不到我的节点。

注意:

  • 我在 VMWare 虚拟机上运行它
  • kub1 是我的主节点,kub2 是我的工作节点

kubectl get nodes 输出:

[root@kub1 ~]# kubectl cluster-info
Kubernetes master is running at http://kub1:8080

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

[root@kub2 ~]# kubectl cluster-info
Kubernetes master is running at http://kub1:8080

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

节点:

[root@kub1 ~]# kubectl get nodes
[root@kub1 ~]# kubectl get nodes -a
[root@kub1 ~]#

[root@kub2 ~]# kubectl get nodes -a
[root@kub2 ~]# kubectl get no
[root@kub2 ~]#

集群事件:

[root@kub1 ~]# kubectl get events -a
LASTSEEN   FIRSTSEEN   COUNT     NAME         KIND      SUBOBJECT   TYPE      REASON     SOURCE                    MESSAGE
1h         1h          1         kub2.local   Node                  Normal    Starting   {kube-proxy kub2.local}   Starting kube-proxy.
1h         1h          1         kub2.local   Node                  Normal    Starting   {kube-proxy kub2.local}   Starting kube-proxy.
1h         1h          1         kub2.local   Node                  Normal    Starting   {kubelet kub2.local}      Starting kubelet.
1h         1h          1         node-kub2    Node                  Normal    Starting   {kubelet node-kub2}       Starting kubelet.
1h         1h          1         node-kub2    Node                  Normal    Starting   {kubelet node-kub2}       Starting kubelet.

/var/log/messages:

kubelet.go:1194] Unable to construct api.Node object for kubelet: can't get ip address of node node-kub2: lookup node-kub2: no such host

问题:知道为什么我的节点没有使用“kubectl get nodes”显示吗?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    我的问题是/etc/kubernetes/kubeletvalue 上的KUBELET_HOSTNAME 与主机名不匹配。

    我评论了那行,然后重新启动服务,之后我可以看到我的工人。

    希望对你有帮助

    【讨论】:

    • 在 /etc/kubernetes/kubelet.env 中注释 KUBELET_HOSTNAME 并重新启动节点后,它工作了。现在我可以看到所有用 kubeclt get no 列出的节点
    • 我看不到 /etc/kubernetes/kubeletvalue。我正在使用 Kubernetes 1.12
    • 我也是。我看不到 /etc/kubernetes/kubeletvalue。也不是 /etc/kubernetes/kubelet.env。我正在使用 k8s v1.10.0
    【解决方案2】:

    不确定您的情况,但经过 3-4 小时的努力,我已经解决了。

    解决了

    我遇到了这个问题,因为我的 docker cgroup 驱动程序与 kubernetes cgroup 驱动程序不同。 刚刚使用doc 中提到的以下命令将其更新为cgroupfs

    cat << EOF > /etc/docker/daemon.json 
    {
      "exec-opts": ["native.cgroupdriver=cgroupfs"]
    }
    EOF
    

    重启docker服务service docker restart。 在从节点上重置 kubernetes:kubeadm reset 再次加入大师:kubeadm join &lt;&gt;&lt;&gt;

    使用 kubectl get nodes 在 master 上可见。

    【讨论】:

      【解决方案3】:

      在 fedora31 上使用 kubespray 安装 k8s 后我遇到了类似的问题,为了调试该问题,尝试使用 docker run 直接运行随机容器,但失败:

      docker: Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown.
      

      这是fedora 31上cgroup版本导致的已知问题,修复方法是更新grub以使用以前的版本:

      sudo dnf install grubby
      
      sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        • 1970-01-01
        • 2018-11-15
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多