背景

我们的EKS的Master是托管的,Work节点是EC2,目前EC2的配置为c5.4large,现在需要降配成m5.2xlarge。

官网

## kubernetes
https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/## aws
https://docs.aws.amazon.com/eks/latest/userguide/connecting-cluster.html

基础背景知识

k8s命令对node调度 有三个命令,分别是: cordon,drain,delete 。

(1)cordon 停止调度

影响最小,只会将node调为SchedulingDisabled
之后再发创建pod,不会被调度到该节点
旧有的pod不会受到影响,仍正常对外提供服务

恢复调度

##
kubectl uncordon node_name

(2)drain 驱逐节点

首先,驱逐node上的pod,其他节点重新创建,接着,将节点会调为 SchedulingDisabled 状态。

(3)cordon节点

1) 封锁节点,先让节点变的不可调度

kubectl cordon <node name>

2) 对节点执行维护操作之前(例如:内核升级,硬件维护等),您可以使用 kubectl drain 安全驱逐节点上面所有的 pod。
安全驱逐的方式将会允许 pod 里面的容器遵循指定的 PodDisruptionBudgets 执行优雅的中止。
注: 默认情况下,kubectl drain 会忽略那些不能杀死的系统类型的 pod。

kubectl drain 返回成功表明所有的 pod (除了前面排除的那些)已经被安全驱逐(遵循期望优雅的中止期,并且没有违反任何应用程序级别的中断预算)。

然后,通过对物理机断电或者在云平台上删除节点所在的虚拟机,都能安全的将节点移除。

3)  kubectl uncordon <node name>  :  恢复调度pod

原生kubernetes平滑剔除节点

###
kubectl drain <node name>###
# kubectl delete nodename

AWS 之EKS降配

手工方式

因为老的节点组已经限制了机型,所以我们开新的节点组,配置和老的配置一样。在老的节点组里逐个驱逐老节点,最后全部驱逐完再删除。

检查和操作命令如下:

# (1) 添加新节点组,可以新添加一个计算节点进来,之后再去调整##
kubectl get nodes##  驱逐某个节点
kubectl drain <node name>## 查询状态
kubectl get nodes## 然后再查询
kubectl get po -A |grep node_name## 把老节点的EC2 进行停机操作### 然后再次查看状态
kubectl get nodes### 循环上面的步骤即可

自动方式

直接更改旧的节点组的个数即可,aws会自动去驱逐节点。

aws的eks平滑删除work节点实现降配相关推荐

  1. 在O(1)时间删除链表节点

    在O(1)时间删除链表节点 [题目]: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该节点. void deleteNode(ListNode* pListHead, ListN ...

  2. 单链表-删除重复节点(递增链表)

    单链表的存储结构: typedef struct LinkList{int data;LinkList * next;} 分析: 这里删除重复节点,分两种情况: 1.第一种是链表本身递增的 2.第二种 ...

  3. redis cluster 添加 删除 重分配 节点

    redis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢. 一,redis cluster命令行 //集群(cluster) CLUSTER INFO 打印集群的信 ...

  4. 链表--只知道当前节点指针删除当前节点

    有一个链表,1->2->3->4->5,只知道一个指针p指向3这个节点,不知道头指针,如何删除这个节点. 突然一看感觉无解,其实这题有点脑筋急转弯了.不过只要把问题解决就行,下 ...

  5. 递归删除父节点及所有子节点(转)

    --递归删除父节点及所有子节点create table tb(Id int, ParentId int, Name varchar(5))insert into tb select 1, 0, 'a1 ...

  6. javascript删除元素节点

    在javascript操作dom树的时候可能会经常遇到增加,删除节点的事情,比如一个输入框后一个增加按钮,一个删除按钮,点击增加就增加 个输入框,点击删除就删除对应的输入框.在一些js框架,如Prot ...

  7. neo4j删除所有节点

    neo4j删除所有节点 MATCH (n)OPTIONAL MATCH (n)-[r]-()DELETE n,r posted on 2019-03-10 13:11 luoganttcc 阅读(.. ...

  8. python链表删除尾部节点_python单链表中如何查找和删除节点?

    在之前的文章[python单链表中如何插入和输出节点?]中给大家介绍了单链表是什么,以及如何进行添加节点.输出所以节点.下面本篇文章给大家介绍如何查找和删除节点,希望对大家有所帮助. 如何从单链表中查 ...

  9. C语言通过链表指针删除链表节点的算法(附完整源码)

    C语言通过链表指针删除链表节点的算法 C语言通过链表指针删除链表节点的算法完整源码(定义,实现,main函数测试) C语言通过链表指针删除链表节点的算法完整源码(定义,实现,main函数测试) #in ...

最新文章

  1. 19. 删除链表的倒数第N个节点
  2. HTTP中post方法提交不同格式的数据
  3. 时光机穿梭---版本回退
  4. c语言转职,魔兽地图:3C转职版5.0C
  5. mysql查所有值的长度_MySQL查询以获取列中所有值的字符长度?
  6. Redis-数据结构与对象-对象
  7. python画雷达图-Python简单雷达图绘制
  8. bzoj 3028 食物——生成函数
  9. Python Window10 环境安装流程
  10. swig: c与其它语言接口文件
  11. 创建线程的三种方法c语言,创建线程 - Python教程 - C语言网
  12. Simscape Multibody --- 齿轮齿条约束
  13. 差分相干解调 matlab,2DPSK差分相干解调器Simulink仿真.doc
  14. ECS Windows服务器通过ie下载提示当前安全设置不允许下载该文件
  15. 备忘录形成html乱码,浏览器icloud网页版备忘录乱码不能显示中文汉字-企业网站设计之中的字体坑...
  16. ubuntu 下 ssd磁盘检测
  17. 10个最好的免费PS图象处理软件方案
  18. Linux的网络配置及jdk的安装
  19. echarts数据多项(多维度)数据展示,多个series
  20. vnc连接不上,为什么vnc连接不上,原因是什么

热门文章

  1. JADE盲源分离算法附MATLAB代码
  2. Wave(.wav)文件格式
  3. python-request(基本用法)
  4. 公路多孔箱涵设计_新规范箱涵结构设计(2010年7月)
  5. 最简单斐波那契数列输出C语言
  6. docker安装报错:docker-ce conflicts with 2:docker-1.13.1-208.git7d71120.el7_9.x86_64
  7. C#:实体框架EF(entity framework)
  8. 文件下载中文名乱码问题
  9. FHQ TREAP 学习总结
  10. 判别一个分解的无损连接性