开发者社区> joezxh> 正文

POD 平均调度到 不同 Node

简介: 1. 前言:      云上购买的 ECS 所支持的最大连接数,CPU 等资源有限,而 k8s 调度 pod 部署到 Node 按照资源水位等条件分配,部分高耗资源应用需要平均分布到不同的 Node 上,以防止同一个 Node 包含多个该应用 POD 导致网络链接数等资源消耗过大。 2. 实现思路: 将已经部署当前应用的Node 设置为不可调度; 获取部署
+关注继续查看

1. 前言:

     云上购买的 ECS 所支持的最大连接数,CPU 等资源有限,而 k8s 调度 pod 部署到 Node 按照资源水位等条件分配,部分高耗资源应用需要平均分布到不同的 Node 上,以防止同一个 Node 包含多个该应用 POD 导致网络链接数等资源消耗过大。

2. 实现思路:

  1. 将已经部署当前应用的Node 设置为不可调度;
  2. 获取部署当前应用且包含多个该应用 POD 的POD Name,删除该 POD, k8s 自动重新调度部署该 POD 到可调度的 Node 上;
  3. 如果还有未平均分布的 Node,多次循环执行以上操作;
  4. 将所有设置为不可调度的 Node 恢复为可以调度。

POD 均匀分布到 Node

3. 实现脚本

#!/bin/bash
## 设置 已经包含应用的Node为不可调度
for i in $(kubectl get nodes|grep Ready|awk '{print $1}') 
do
    echo $i
    check_results=$(kubectl describe node $i | grep {app_name} | awk "{print $2}"|wc -l)
    if (( $check_results > 0 )); then
       echo $check_results
       kubectl cordon $i 
    fi
done
## 删除多个 POD 部署的
for i in $(kubectl get nodes|grep Ready|awk '{print $1}')
do
    echo $i
    check_results=$(kubectl describe node $i | grep {app_name} | awk "{print $2}"|wc -l)
    if (( $check_results > 1 )); then
       echo $check_results
       check_results=$(kubectl describe node $i | grep {app_name} | awk '{print $2}'|head -1)
       echo $check_results
       kubectl delete pods $check_results --grace-period=0 --force -n {app_name}
    fi
done

## 设置 恢复Node 为可调度
for i in $(kubectl get nodes|grep Ready|awk '{print $1}') 
do
    echo $i
    kubectl uncordon $i 
done

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
同样指令bmp.LockBits不同平台(Windows/WinCE)获取位图的数据不同
同样指令bmp.LockBits不同平台(Windows/WinCE)获取位图的数据不同
414 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
18689 0
POD 平均调度到 不同 Node
1. 前言:  云上购买的 ECS 所支持的最大连接数,CPU 等资源有限,而 k8s 调度 pod 部署到 Node 按照资源水位等条件分配,部分高耗资源应用需要平均分布到不同的 Node 上,以防止同一个 Node 包含多个该应用 POD 导致网络链接数等资源消耗过大。
901 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
23683 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13913 0
为什么pg_basebackup或pg_start_backup好像hang住确没有开始拷贝文件 - checkpoint 的几种调度(checkpoint_completion_target)
标签 PostgreSQL , checkpoint , 调度 , lazy , immediate , pg_start_backup , pg_basebackup 背景 PostgreSQL支持在线全量备份与增量归档备份。在线全量备份实际上就是拷贝文件,增量备份则分为两种,一种是基于BLOCK lsn变化的BLOCK即增量备份,另一种是基于WAL的持续归档文件备份。 全量备份通常
1045 0
Android平台、屏幕、OpenGL不同版本用户数统计
Android平台的碎片化问题被开发者诟病已久。最近Google公布了一些Android设备的统计信息,开发者可以根据市场占有率决定不同设备开发和优化需要投入的经历。特别是人力较少的小公司和个人开发者,更需要集中精力,有所取舍。
128 0
阿里新一代分布式任务调度平台Schedulerx2.0破土而出
产品简介 Schedulerx2.0是阿里中间件自研的基于Akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能。使用Schedulerx2.0,您可以在控制台配置管理您的定时任务,查询历史执行记录,查看运行日志。
6784 0
+关注
joezxh
写代码写到60岁
33
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载