背景
我们的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会自动去驱逐节点。文章来源:https://www.toymoban.com/news/detail-768574.html
文章来源地址https://www.toymoban.com/news/detail-768574.html
到了这里,关于aws的eks平滑删除work节点实现降配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!