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

  • 相关阅读:
    以太坊虚拟机介绍
    以太坊源码学习 – EVM
    Visual Studio Code 常用快捷键
    深入了解以太坊虚拟机第4部分——ABI编码外部方法调用的方式
    深入了解以太坊虚拟机第3部分——动态数据类型的表示方法
    深入了解以太坊虚拟机第2部分——固定长度数据类型的表示方法
    深入了解以太坊虚拟机
    选取文档元素的方法
    flex布局
    什么是功能需求设计文档
  • 原文地址:https://www.cnblogs.com/wannengachao/p/13898529.html
Copyright © 2011-2022 走看看