zoukankan      html  css  js  c++  java
  • k8s node节点维护

    一、node节点维护流程

    1. 对k8s集群资源进行梳理,先确认集群资源是否允许进行该操作
    2. 若集群资源不足,可加入新的node节点之后再进行维护操作
    3. 确认无资源问题后进行pod驱逐:kubelet drain  <node_name>(
    4. 检查对应节点状态是否处于SchedulingDisabled
    5. 检查node上是否无pod运行,切被驱逐的pod已经在其他节点运行正常
    6. 确认状态为SchedulingDisabled,且pod已经在其他节点运行正常后执行后续操作
    7. 关闭集群相关服务及docker服务
    8. 关机维护
    9. 开机启动相关服务(注意启动顺序)
    10. 解除node节点不可调度:kubectl uncordon node
    11. 创建测试pod,并使用节点标签测试节点可以被正常调度

    二、kubernetes处理node的命令详解(cordon、drain、delete node区别)

    1. 主要目的:导致node处于不可调度状态,新创建的pod容器不会调度在node上。
    2. cordon:将node置为SchedulingDisabled不可调度状态,后续的新创建pod容器时scheduler调度不会考虑该node旧的pod容器不会正常受影响,仍可以对外提供正常服务。(特殊情况:pod容器如果跟node绑定的话,容器下次更新就不会回到原宿主机,该情况如何处理呢?可能设置成不可调度状态就不太合适。调度器 预调度策略)
      恢复调度  kubectl uncordon node
    3. drain 驱逐节点:设置该node为不可调度状态 cordon,驱逐node节点上pod,使其在其他节点上创建。gracefully terminate all pods
      恢复调度 kubectl uncordon node
    4. delete 节点:delete node后 kubernetes集群管控端获取不到node信息。master节点删除该node,失去对其控制,master不可对其恢复驱逐node上的pod容器。(如何驱赶呢?参考 https://blog.csdn.net/li_101357/article/details/89606269 ,主要是podGCcontroller来做这件事情)  疑问是:master删除node了,GC怎么删除呢?强制删除
      恢复调度,需要进入node节点,重新加入集群




  • 相关阅读:
    Python3小练习2——(汉诺塔的移动),递归
    Python3小练习1——(ax*x+ bx + c = 0的解)
    SSRS数据导出Excel多出空白列
    ETL 压缩文件(makecab) 并邮件发送
    关于System.Web.Script.Serialization命名空间的引用
    如何通过VIsual Studio安装程序修改VS2017?
    如何其他服务器能够连接自己本机的数据库?
    SSAS表格模型部署问题
    表格模型——安装实例
    Leetcode 76题:最小覆盖子串 滑动窗口经典题
  • 原文地址:https://www.cnblogs.com/jayce9102/p/12298226.html
Copyright © 2011-2022 走看看