Kubernetes Node的隔离与恢复
在硬件升级、硬件维护等情况下,我们需要将某些Node进行隔离,脱离Kubernetes集群的调度范围。Kubernetes提供了一种机制,即可以将Node纳入调度范围,也可以将Node脱离调度范围。
使用配置文件的方式
创建配置文件unschedule_node.yaml,在spec部分指定unschedulable为true:
apiVersion: V1
kind: Node
metadata:
name: kube-node1
lables:
kubernetes.io/hostname: kubernetes-minion1
spec:
unschedulable: true
然后,通过 kubectl replace 命令完成对 Node 状态的修改:
kubectl replace -f unschedule_node.yaml
nodes kube-node1 replaced
查看 Node 的状态,可以观察到在Node的状态中增加了一项SchedulingDisabled:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
kube-node1 Ready,SchedulingDisabled <none> 21d v1.10.4
kube-node2 Ready <none> 21d v1.10.4
kube-node3 Ready <none> 21d v1.10.4
对于后续创建的pod,系统将不会再向该 Node 进行调度。
使用命令的方式
直接使用 kubectl patch命令完成:
kubectl patch node kube-node1 -p '{"spec":{"unschedulable":true}}'
需要注意的是,将某个 Node 脱离调度范围时,在其上运行的pod并不会自动停止,管理员需要手动停止在该 Node 上运行的 Pod。
同样,如果需要将某个 Node 重新纳入集群调度范围,则将 unschedulable 设置为 false,再次执行 kubectl replace 或 kubectl patch 命令就能恢复系统对改 Node 的调度。
kubectl的子命令cordon和uncordon也用于实现将Node进行隔离和恢复调度的操作。
例如,使用kubectl cordon对某个Node进行隔离调度操作。
kubectl cordon k8s-node1
node "kube-node1" cordoned
恢复
kubectl uncordon k8s-node1
node "kube-node1" uncordoned
图形化界面操作
这里采用的时kuboard界面,查看集群节点,选择一个节点进入,会看到“暂停调度”,



Kubernetes Node的隔离与恢复的更多相关文章
- kubernetes node管理
目录 Node的扩缩容 删除node节点 Node的隔离与恢复 通过配置文件实现 通过命令行的方式实现 恢复 更新资源对象的label 给一个node添加一个label 将pod调度到指定的node ...
- 三、安装并配置Kubernetes Node节点
1. 安装并配置Kubernetes Node节点 1.1 安装Kubernetes Node节点所需服务 yum -y install kubernetes 通过yum安装kubernetes服 ...
- kubernetes之node隔离与恢复
需求: 在硬件升级, 硬件维护等情况下, 我们需要将某些node隔离, kubectl cordon <node_name> #禁止pod调度到该节点上, 在其上运行的pod并不会自动停止 ...
- Kubernetes Master节点灾备恢复操作指南---升级版
本文档简述了Kubernetes主节点灾备恢复的相关步骤,供在发生k8s master崩溃时操作. 就算是在k8s里部署了etcd群集, 主节点控制组件的高可用节点,灾备恢复也是必须要实现的操作,才能 ...
- kubernetes node节点失效 调度
kubernetes 配置: 测试node挂 机,发布需要等几分才会 在其它 的node机器 启动,这个明显不合理,对于大多数业务 kube-controller-manager配置: /etc/sy ...
- kubernetes Node节点部署(四)
一.部署kubelet 1.1.二进制包准备 将软件包从linux-node1复制到linux-node2中去 [root@linux-node1 ~]# cd /usr/local/src/kube ...
- kubernetes node SchedulingDisabled
问题: k8s 集群的节点处于 SchedulingDisabled 解决方案 kubectl patch node NodeName -p "{\"spec\":{\& ...
- 《Kubernetes权威指南》——运维技巧
1 Node的隔离和恢复 方法1: 创建新的Node配置文件指定spec.unschedulable: true 通过kubectl replace完成对Node的状态修改 kubectl repla ...
- 基于kubernetes集群的Vitess最佳实践
概要 本文主要说明基于kubernetes集群部署并使用Vitess; 本文假定用户已经具备了kubernetes集群使用环境,如果不具备请先参阅基于minikube的kubernetes集群搭建, ...
随机推荐
- [原创]移远RM500U-CN模组驱动移植
1. 简介 中国广电正式放号了,为了支持广电700MHz的5G基站,需要换用新的5G模组.移远通信的RM500U模组正好可以满足我们的使用要求; 我们选用该模组的原因:双卡单待 支持SIM卡热插拔 支 ...
- Identity Server 4使用OpenID Connect添加用户身份验证(三)
一.说明 基于上一篇文章中的代码进行继续延伸,只需要小小的改动即可,不明白的地方可以先看看本人上一篇文章及源码: Identity Server 4资源拥有者密码认证控制访问API(二) GitHub ...
- 快速体验Spring Boot了解使用、运行和打包 | SpringBoot 2.7.2学习系列
SpringBoot 2.7.2 学习系列,本节内容快速体验Spring Boot,带大家了解它的基本使用.运行和打包. Spring Boot 基于 Spring 框架,底层离不开 IoC.AoP ...
- Powerful Number 筛法
我也不想学筛法了,可你考试时候出一个新筛法就不厚道了吧,我还开始以为这是杜教筛... $tips:$学完杜教筛立马学$Powerful \ Number$筛法,此筛法强悍如斯 $Powerful \ ...
- 有事务冲突时节点怎么加入MGR集群
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 问题场景描述 2. 如何修复 2.1 找出事务差异点 2.2 决定如何处理 3. 小结 文章推荐: 关于 Gr ...
- react学习1-jsx语法注意点
* 1.定义虚拟DOM不要写引号 * 2.标签中使用js表达式的时候,要使用{} * 3.样式类名指定要使用className * 4.要使用内联样式的话,要使用style={{key:"v ...
- Map集合的遍历方式以及TreeMap集合保存自定义对象实现比较的Comparable和Comparator两种方式
Map集合的特点 1.Map集合中保存的都是键值对,键和值是一一对应的 2.一个映射不能包含重复的值 3.每个键最多只能映射到一个值上 Map接口和Collection接口的不同 Map是双列集合的根 ...
- Java学习--方法
Java学习 方法 方法 定义 Java方法是语句的集合,一起执行一个功能. 方法是解决一类问题的步骤的有序组合. 方法包含在类或对象中. 方法在程序中被创建,在其他地方被引用. 设计方法的时候,最好 ...
- i40e网卡驱动遇到的一个问题
最近在排查一个crash文件的时候,遇到一个堆栈,即软中断收包的时候,skb的关联的dev是null,导致oops, 然后去crash分析的时候,发现skb的dev去不是null. 从oops到cra ...
- 前端知识之CSS(1)-css语法、css选择器(属性、伪类、伪元素、分组与嵌套)、css组合器
目录 前端基础之css 1.关于css的介绍 2.css语法 3.三种编写CSS的方式 3.1.style内部直接编写css代码 3.2.link标签引入外部css文件 3.3.标签内直接书写 4.c ...