zoukankan      html  css  js  c++  java
  • 副本控制集为daemonsets类型Pod,被delete后没有被重新拉起。

    问题描述

    副本控制集为daemonsets类型Pod,被delete后没有被重新拉起。

    原因

    此问题Pod所在node的/etc/docker/daemon.json文件被修改过,修改daemon.json时内容写错了,导致重启docker跟daemon-reload失败并报错,于是把daemon.json中填写错误的内容改正后,可以成功重启docker跟daemon-reload。但因为第一次重启失败导致了此问题Pod所在node上的kubelet、kube-proxy有了问题,所以Pod被delete时没有被重新拉起。

    排查过程

    1、kubectl get ds --all-namespaces   查看此Pod的副本控制集是否正常。(如果副本控制集是rs 命令:kubectl get rs    如果副本控制集是deployment 命令:kubectl get deployment)

         输出结果显示此Pod的副本控制集状态是正常。

    2、查看此Pod daemonsets 的yaml是否正常

    kubectl get ds Pod的ds名 -oyaml  
    status:
    currentNumberScheduled: 14
    desiredNumberScheduled: 14
    numberAvailable: 36
    numberMisscheduled: 0
    numberReady: 36
    numberUnavailable: 107
    observedGeneration: 1
    updatedNumberScheduled: 14
      

    3、kubectl get node  确认node状态是否正常,输出结果显示有问题Pod的Node是NotReady状态。

    4、kubectl describe node $node名
         结果发现从前一天此Node就没有了心跳上报:
     
     5、登陆此Node上,重启docker、daemon-reload依旧NotReady,于是再重启kubelet、kube-proxy后解决。
     
     6、可以在排查时看下node的/var/log/message日志。
          或者用journalctl查看日志:
          journalctl -u kubelet |tail
          journalctl -xe
          journalctl -u kube-scheduler
          journalctl -xefu kubelet
          journalctl -u kube-apiserver

  • 相关阅读:
    【Git】rebase 用法小结(转)
    修饰符访问权限。
    throws与throw关键字。
    多线程,同步代码块。
    多线程,设置线程的优先级。
    多线程,加入线程。
    多线程,守护线程。
    多线程,休眠线程。
    多线程,获取当前线程的对象。
    多线程获取名字和设置名字。
  • 原文地址:https://www.cnblogs.com/wannengachao/p/13898529.html
Copyright © 2011-2022 走看看