美文网首页
记录一次真实的维护过程

记录一次真实的维护过程

作者: H_appiness | 来源:发表于2020-03-10 15:28 被阅读0次

k8s节点维护过程记录

背景:因某些原因,在博客中不好阐述!因此,在下面简单的说一下维护节点的过程及经历,那废话不多说,直接上操作过程!

整体思路:

  • 把维护的节点标记为不可调度
  • 驱逐节点上已经运行的pod
  • 节点重启操作(维护的具体行为)
  • 恢复至初始状态

说明:我这里分两种方式演示:第一种适合没有维护过节点的新手人员(比如我,哈哈小白种子一号选手) 第二种在熟练了之后可以直接拿来操作,省时省力。

方式一

  1. 先标记节点进入维护状态,这一步会自动给节点打上taint
kubectl cordon node1

# 通过如下命令查看该节点是否有taint

kubectl describe node node1

# 此时node的taint显示:
Taints:             node.kubernetes.io/unschedulable:NoSchedule

# 通过如下命令查看是否标记成功
kubectl get node

NAME     STATUS                     ROLES         AGE    VERSION
master   Ready                      etcd,master   112d   v1.15.1
node1    Ready,SchedulingDisabled   worker        112d   v1.15.1
node2    Ready                      worker        112d   v1.15.1
  1. 驱逐该节点上的pod
kubectl taint node node1 key=node1:NoExecute

# 通过如下命令查看该节点是否有taint

kubectl describe node node1

此时node的taint显示:
Taints:             key=node1:NoExecute
                    node.kubernetes.io/unschedulable:NoSchedule

接下来去node节点使用docker ps 查看pod是否都被驱逐走了 剩下的都是ds控制器的了 就不用管了 后面会详细说明

  1. 进行重启操作(这里指的是对节点维护的具体内容)
  • 在master节点上会看到该节点处于NotReady状态
  1. 重启动完成后,NotReady状态会自动变成Ready状态
    至此维护已完成。取消标记节该点维护状态
kubectl uncordon node1

通过describe查看发现该node节点taint如下:

Taints:             key=node1:NoExecute

只剩下刚才标记驱逐的字样(通过event事件查看如下:kubelet, node1 Node node1 status is now: NodeSchedulable)说明节点可以被调度 只不过现在有一个taint在node上

  1. 取消node上的taint
kubectl taint node node1 key-

通过describe查看发现该node节点taint如下:

Taints:             <none>

方式二

kubectl drain node1 --delete-local-data --ignore-daemonsets
reboot
kubectl uncordon node1

讲解:drain的意思是驱逐pod标记节点进入维护状态
简单的说, drain = NoExecute + cordon
--delete-local-data 的意思是:即使存在使用emptyDir的Pod(节点耗尽后将删除的本地数据)也要继续。
--ignore-daemonsets 的意思是:忽略daemonsets控制器

关于ds控制器讲解:ds控制器的特性是在每一个节点上面去运行一个pod,ds控制器所运行的pod,驱逐也驱逐不走,也不受cordon的控制,只能中断,后面重启后,它会自己启动。

关于驱逐讲解:

NoSchedule:新的pod不许调度过来 已经运行的依旧在该节点上运行
NoExecute:新的pod不许调度过来 已经运行的pod也驱逐走
PreferNoSchedule:尽量不要调度

参考文章:

http://kubernetes.kansea.com/docs/user-guide/kubectl/kubectl_cordon/
http://kubernetes.kansea.com/docs/user-guide/kubectl/kubectl_drain/

相关文章

  • 记录一次真实的维护过程

    k8s节点维护过程记录 背景:因某些原因,在博客中不好阐述!因此,在下面简单的说一下维护节点的过程及经历,那废话不...

  • 真实记录一次求医过程

    晚上洗澡的时候,突然发现喉咙那里好像有核桃般大小的突出。近段时间都穿得高领毛衣,没有仔细观察过脖子,现在猛然盯着一...

  • 18.12.24课

    初创企业要找准自己的客户群体,要维护好与供应商的关系,服务过程中顾客的真实体验要记录下来,针对客户的需求及时调整下...

  • iOS笔记-记录一次内存泄漏发现过程

    iOS笔记-记录一次内存泄漏发现过程 iOS笔记-记录一次内存泄漏发现过程

  • 游戏与人生

    今天去真实体验了一次红梅组织的财富流沙盘游戏,过程好玩,又有启发。感觉游戏与人生真的有许多的相似之处。记录下感受与...

  • ceph 维护记录

    rook ceph 池无法删除首先确认池中无卷,然后执行kubectl delete -f rook-ceph/c...

  • 记录一次debug过程

    最终证明这是一个个性化的错误。 上传本地apk进行安装时,进行到50%之后就报错——导致系统推出。 重新加载为数不...

  • 记录一次感冒过程

    2021年9月4号和一个骑友自驾加骑行,骑了寻甸县的巨石阵,遇到下雨,开始没有穿雨衣,回来后也没有太多感觉,冲了热...

  • 三省吾身:与人交流时的不愉快能够带来什么

    一次真实的经历,记录了当下的反应以及后续反思总结的全过程。 事件:上周同领导值班闲话,从“艺术在中国近代社会环境中...

  • SpringBoot项目记录请求日志

    在开发过程中,为了调试及后期维护过程快速排错都会记录请求的入参以及返回值,比较常用的方式是借助日志生成器通过硬编码...

网友评论

      本文标题:记录一次真实的维护过程

      本文链接:https://www.haomeiwen.com/subject/eugwdhtx.html