首页 > kubernetes(k8s) > Kubernetes Node的 隔离与恢复
2019
11-06

Kubernetes Node的 隔离与恢复

在硬件升级、硬件维护等情况下,我们需要将某些Node进行隔离,脱离Kubernetes集群的调度范围。Kubernetes提供了一种机制,即可以将Node纳入调度范围,也可以将Node脱离调度范围。

需要注意的是,将某个 Node 脱离调度范围时,在其上运行的pod并不会自动停止,管理员需要手动停止在该 Node 上运行的 Pod。

这里最好使用 Pod驱逐, 将要升级节点的pod驱逐到其他节点,比停止pod更人性化一些。

驱逐node1上的pod

  • –delete-local-data: 即使pod使用了emptyDir也删除
  • –ignore-daemonsets: 忽略deamonset控制器的pod,如果不忽略,deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,会成为死循环;
  • –force: 不加force参数只会删除该NODE上由ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job创建的Pod,加了后还会删除’裸奔的pod’(没有绑定到任何replication controller)

方法一 (可能系统会报错,不允许进行隔离,不建议用这个)

然后,通过 kubectl replace 命令完成对 Node 状态的修改:

查看 Node 的状态,可以观察到在Node的状态中增加了一项SchedulingDisabled:

对于后续创建的pod,系统将不会再向该 Node 进行调度。

方法二

另一种方法是不使用配置文件,直接使用 kubectl patch命令完成:

方法三

例如,使用kubectl cordon对某个Node进行隔离调度操作。

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。