升级k8s集群node节点资源配置
升级k8s集群node节点资源配置
·
规划k8s集群,升级k8s集群node节点cpu、内存、磁盘配置
master节点
应用节点
监控节点 prometheus
工具节点 apollo、redis、mysql、sonarqube等
- 1、调研升级方案
- 2、整理升级文档
- 3、拉项目负责人与测试负责人,开会讨论方案,并确定升级时间,及测试人员测试
- 4、发升级邮件通知并说明影响范围
- 5、按照操作文档进行操作升级
- 6、回复升级完成邮件并通知测试进行测试
- 7、测试回复验证通过邮件,升级完成
我们可以使用cordon、drain、uncordor三个命令实现节点的主动维护。此时需要用到以下三个命令:
cordon:标记节点不可调度,后续新的pod不会被调度到此节点,但是该节点上的pod可以正常对外服务;
drain:驱逐节点上的pod至其他可调度节点;
uncordon:标记节点可调度;
具体操作过程如下:
1.标记节点不可调度
kubectl cordon node1
node/node1 cordoned
查看节点状态,此时node1被标记为不可调度
kubectl get nodes
2.驱逐pod
kubectl drain node1 --delete-local-data --ignore-daemonsets --force
node/node1 already cordoned
WARNING: ignoring DaemonSet-managed Pods:
evicting pod kube-system/
evicting pod kube-system/metrics-server-
evicting pod
参数如下:
–delete-local-data 删除本地数据,即使emptyDir也将删除;
–ignore-daemonsets 忽略DeamonSet,否则DeamonSet被删除后,仍会自动重建;
–force 不加force参数只会删除该node节点上的ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job,加上后所有pod都将删除;
3. 查看驱逐
kubectl get pod -o wide
daemonsets不用管 deployments会自动迁移, statefulset需要手动同时删除pvc + pod 让其调度到其他节点
此时与默认迁移不同的是,pod会先重建再终止,此时的服务中断时间=重建时间+服务启动时间+readiness探针检测正常时间,必须等到1/1 Running服务才会正常。因此在单副本时迁移时,服务终端是不可避免的。
4、下掉节点
kubectl delete nodes node1
5、阿里云控制台停机器,升级配置,重启机器
6、将节点加入集群,设置对应标签或者污点,并设置为可调度
7、按上面步骤依次操作其他node节点,最后升级master节点(可选)
更多推荐
已为社区贡献19条内容
所有评论(0)