如何在Kubernetes节点处于';未准备好';状态

如何在Kubernetes节点处于';未准备好';状态,kubernetes,Kubernetes,我初始化了主节点并添加了2个工作节点,但在运行以下命令时,仅显示主节点和一个工作节点: kubectl get nodes 此外,这两个节点都处于“未就绪”状态。 我应该采取什么步骤来理解问题可能是什么 我可以从每个其他节点ping所有节点 Kubernetes的版本是1.8 操作系统是分操作系统7 我使用以下repo安装Kubernetes: cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Ku

我初始化了主节点并添加了2个工作节点,但在运行以下命令时,仅显示主节点和一个工作节点:

kubectl get nodes
此外,这两个节点都处于“未就绪”状态。 我应该采取什么步骤来理解问题可能是什么

  • 我可以从每个其他节点ping所有节点
  • Kubernetes的版本是1.8
  • 操作系统是分操作系统7
  • 我使用以下repo安装Kubernetes:

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes] name=Kubernetes
    baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    EOF
    
    yum install kubelet kubeadm kubectl kubernetes-cni
    

    cat首先,描述节点并查看它是否报告任何内容:

    $kubectl描述节点

    查找条件、容量和可分配:

    Conditions:
      Type              Status
      ----              ------
      OutOfDisk         False
      MemoryPressure    False
      DiskPressure      False
      Ready             True
    Capacity:
     cpu:       2
     memory:    2052588Ki
     pods:      110
    Allocatable:
     cpu:       2
     memory:    1950188Ki
     pods:      110
    
    如果这里一切正常,SSH进入节点并观察
    kubelet
    日志,查看它是否报告任何内容。如证书错误、身份验证错误等

    如果
    kubelet
    作为systemd服务运行,则可以使用


    $journalctl-u kubelet

    由于不同的原因,我遇到了类似的问题:

    错误:

    cord@node1:~$ kubectl get nodes
    NAME    STATUS     ROLES    AGE     VERSION
    node1   Ready      master   17h     v1.13.5
    node2   Ready      <none>   17h     v1.13.5
    node3   NotReady   <none>   9m48s   v1.13.5
    
    cord@node1:~$ kubectl describe node node3
    Name:               node3
    Conditions:
      Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
      ----             ------  -----------------                 ------------------                ------                       -------
      Ready            False   Thu, 18 Apr 2019 01:15:46 -0400   Thu, 18 Apr 2019 01:03:48 -0400   KubeletNotReady              runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
    Addresses:
      InternalIP:  192.168.2.6
      Hostname:    node3
    
    问题:

    我的文件:10-calico.conflist不正确。从另一个节点和同一目录“calico.conflist.template”中的示例文件验证了它

    决议:

    更改文件“10 calico.conflist”并使用“systemctl restart kubelet”重新启动服务,解决了我的问题:

    名称状态角色年龄版本
    节点1就绪主机18h v1.13.5
    节点2就绪18h v1.13.5
    节点3就绪48m v1.13.5
    
    我发现应用网络并重新启动两个节点对我来说都很管用

    kubectl apply-f[podnetwork].yaml调试步骤:-

    若您在kubernetes中遇到任何问题,第一步是检查kubernetes自身应用程序是否运行良好

    检查命令:-
    kubectl获取吊舱-n kube系统

    如果你看到任何吊舱坠毁,检查它的日志

    如果获取
    NotReady
    状态错误,请验证网络pod日志

    如果无法解决上述问题,请执行以下步骤:-

  • kubectl get nodes
    #检查哪个节点未处于就绪状态

  • kubectl描述不在readystate中的节点名

  • ssh到该节点

  • 执行
    systemctl status kubelet
    #确保kubelet正在运行

  • systemctl状态docker
    #确保docker服务正在运行

  • journalctl-u kubelet
    #深入检查日志

  • 在修复错误后,您很可能会在此处了解错误。请使用以下命令重置kubelet:-

  • systemctl后台程序重新加载
  • systemctl重启kubelet
  • 如果您仍然没有找到根本原因,请检查以下事项:-

  • 确保节点具有足够的空间和内存。特别是检查
    /var
    目录空间。 要检查的命令:
    -df
    -kh
    自由-m

  • 使用top命令验证cpu利用率。并确保任何进程都没有占用意外内存


  • 我最近开始使用VMWare Octant。这是一个比Kubernetes仪表板更好的UI。您可以查看Kubernetes集群并查看集群和POD的详细信息。这将允许您检查日志并在POD中打开一个终端。

    谢谢Shahidh。使用
    kubectl descripe nodes
    journalctl-u kubelet
    我能够找出问题,并能够将节点聚集在一起。@lex介意分享问题出在哪里,您做了什么?我的“NotReady”是因为kubelet退出,并且没有在某些节点上重新启动。重新启动,回到“准备就绪”,仍然不知道发生了什么。我也有同样的问题。kubelet服务在节点上关闭。问题是交换内存已打开。把它关掉,它工作得很好。最好在/etc/fstab上关闭它。你是如何更改文件的?@SumiStraessle:Vim文本编辑器可以用来更改文件“10 calico.conflist”的内容。这是一个巨大的帮助!救了我的集群!
    Apr 18 01:24:50 node3 kubelet[54132]: W0418 01:24:50.649047   54132 cni.go:149] Error loading CNI config list file /etc/cni/net.d/10-calico.conflist: error parsing configuration list: no 'plugins' key
    Apr 18 01:24:50 node3 kubelet[54132]: W0418 01:24:50.649086   54132 cni.go:203] Unable to update cni config: No valid networks found in /etc/cni/net.d
    Apr 18 01:24:50 node3 kubelet[54132]: E0418 01:24:50.649402   54132 kubelet.go:2192] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
    Apr 18 01:24:55 node3 kubelet[54132]: W0418 01:24:55.650816   54132 cni.go:149] Error loading CNI config list file /etc/cni/net.d/10-calico.conflist: error parsing configuration list: no 'plugins' key
    Apr 18 01:24:55 node3 kubelet[54132]: W0418 01:24:55.650845   54132 cni.go:203] Unable to update cni config: No valid networks found in /etc/cni/net.d
    Apr 18 01:24:55 node3 kubelet[54132]: E0418 01:24:55.651056   54132 kubelet.go:2192] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
    Apr 18 01:24:57 node3 kubelet[54132]: I0418 01:24:57.248519   54132 setters.go:72] Using node IP: "192.168.2.6"
    
    NAME    STATUS   ROLES    AGE   VERSION
    node1   Ready    master   18h   v1.13.5
    node2   Ready    <none>   18h   v1.13.5
    node3   Ready    <none>   48m   v1.13.5