个人名片:
因为云计算成为了监控工程师‍
个人博客:念舒_C.ying
CSDN主页️:念舒_C.ying

Kubernetes Node的隔离与恢复

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

创建配置文件unschedule_node.yaml,在spec部分指定unschedulabletrue:

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 replacekubectl patch 命令就能恢复系统对改 Node 的调度。

kubectl的子命令cordonuncordon也用于实现将Node进行隔离和恢复调度的操作。

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

kubectl cordon k8s-node1
node "kube-node1" cordoned

恢复

kubectl uncordon k8s-node1
node "kube-node1" uncordoned

期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~

【云原生 · Kubernetes】Kubernetes Node的隔离与恢复的更多相关文章

  1. Kubernetes Node的隔离与恢复

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

  2. 从零搭建云原生技术kubernetes(K8S)环境-通过kubesPhere的AllInOne方式

    前言 k8s云原生搭建,步骤有点多,但通过kubesphere,可以快速搭建k8s环境,同时有一个以 Kubernetes 为内核的云原生分布式操作系统-kubesphere,本文将从零开始进行kub ...

  3. 云原生应用 Kubernetes 监控与弹性实践

    前言 云原生应用的设计理念已经被越来越多的开发者接受与认可,而Kubernetes做为云原生的标准接口实现,已经成为了整个stack的中心,云服务的能力可以通过Cloud Provider.CRD C ...

  4. Fluid + GooseFS 助力云原生数据编排与加速快速落地

    前言 Fluid 作为基于 Kubernetes 开发的面向云原生存算分离场景下的数据调度和编排加速框架,已于近期完成了 v0.6.0 版本的正式发布.腾讯云容器 TKE 团队一直致力于参与 Flui ...

  5. 产品对话 | 愿云原生不再只有Kubernete

    从2013年,云原生(Cloud Native)的概念由 Pivotal 的 MattStine 首次提出,到现在,其技术细节不断得到社区的完善.云原生逐渐演变出包括 DevOps.持续交付.微服务. ...

  6. 云原生生态周报 Vol.9| K8s v1.15 版本发布

    本周作者 | 衷源.心贵 业界要闻 1.Kubernetes Release v1.15 版本发布,新版本的两个主题是持续性改进和可扩展性.(https://github.com/kubernetes ...

  7. 重大升级!灵雀云发布全栈云原生开放平台ACP 3.0

    云原生技术的发展正在改变全球软件业的格局,随着云原生技术生态体系的日趋完善,灵雀云的云原生平台也进入了成熟阶段.近日,灵雀云发布重大产品升级,推出全栈云原生开放平台ACP 3.0.作为面向企业级用户的 ...

  8. Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31

    作者 | 徐迪.李传云.黄珂.汪萌海.张晓宇.何淋波 .陈有坤.李鹏审核 | 陈俊 上游重要进展 1. Kubernetes v1.17 版本发布 功能稳定性是第一要务.v1.17 包含 22 个增强 ...

  9. [转帖]Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31

    Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31 https://www.kubernetes.org.cn/6252.html 2019-12-13 11:59 ali ...

  10. 第七章 云原生生态的基石 Kubernetes

    7.1 Kubernetes架构 K8s的核心组件: etcd: 协同存储,负责保存整个集群的状态. API:资源操作的唯一入口. controller manager: 维护集群的状态,执行故障检测 ...

随机推荐

  1. 关于KingbaseES临时文件过大问题

    背景 前几天碰到一个问题,现场并发很高,数据量很大(6T),主备库经常出现临时文件过多. 临时文件概念: 当私有进程buffer不够用时,会将buffer内容dump到tempfile供数据库正常sq ...

  2. kingbaseES R3 集群配置 SSL

    ​ 案例说明: 本测试是在非生产环境下,在官方没有明确声明支持KingbaseCluster使用ssl的前提下,建议只能在测试环境使用,避免生产环境下直接使用. 数据库版本: TEST=# selec ...

  3. Linux命令之find、grep、echo、tar、whoami、uname

    1. whoami--查看当前登录的用户名 book@100ask:~/linux$ whoami book 2. echo--打印命令,配合'>'或者'>>'使用 echo 打印信 ...

  4. Windows 11 新材质 Mica Alt 效果展示

    本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,若内容出现冲突以 GitHub 上的为准. 微软在 2022-09-02 更新了官方文档, ...

  5. 第六章:Django 综合篇 - 3:使用MySQL数据库

    在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库.一般较多的会选择MySQL. 下面介绍一下如何在Django中使用MySQL数据库. 一.安装MySQL ...

  6. 使用yum方式安装的openresty参数

    nginx version: openresty/1.19.3.1 built by gcc 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC) built with Ope ...

  7. Beats: 使用 Filebeat 进行日志json结构化 - Python

    文章转载自:https://elasticstack.blog.csdn.net/article/details/106688240

  8. 使用docker-compose部署Django项目

    先从最基本的功能开始 在一切工作开始前,需要先编辑好三个必要的文件. 第一步,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 Dockerfile 文件来指定 ...

  9. Centos7下的基本操作

    本系统是在centos7下最小化安装的 文件操作相关 创建文件夹mkdir name //创建一个文件夹 创建文本touch test.txt //创建文本 删除文件夹rm -rf 文件名 //删除文 ...

  10. 标题,ico动态化

    //获取ico元素 var link = document.querySelector("link[rel*='icon']"); link.href = "image/ ...