首页 > 其他分享 >云计算-k8s超配理论

云计算-k8s超配理论

时间:2024-09-05 14:27:23浏览次数:8  
标签:超配 node namespace request 集群 计算 pod k8s 资源

在很多商业k8s方案中,存在所谓的超配,或者超卖,超售比的配置,只要开启就能大幅度提高k8s资源利用率。这里总结了一些原理概念

概念

当前很多业务有波峰和波谷,部署服务时,为了保证服务的性能和稳定性,通常会按照波峰时需要的资源申请,但是波峰的时间可能很短,这样在非波峰时段就有资源浪费。另外,由于在线作业SLA要求较高,为了保证服务的性能和可靠性,通常会申请大量的冗余资源,因此,会导致资源利用率很低、浪费比较严重。

云计算-k8s超配理论_Pod

超配理论及影响分析

超配理论

Kubernetes 生产态和测试态集群是任务态的容器作业执行环境。资源管理组件以资源组为单位对集群计算资源进行管理和分配。

从物理层面看,kubernetes 集群所有node 的可供给资源量(allocatable)可以看作集群的实际资源总量。在大数据云业务逻辑中,正常情况下,总可售资源量总是等于实际资源总量。开启超配后,集群的总可售资源量为集群所有node 的可供给资源量(allocatable)*超配比。

当总可售资源量大于实际资源总量时,理论上容器资源池可以接受更多node 的剩余可分配资源是该node 的可供给资源减去该node 的所有非终止状态的pod 的request 总和的值. 

一个node 的所有非终止状态pod 的request 总和占该node 的可供给资源量的比值就是这个node 的资源分配水位

因此,仅仅将一个集群的总可售资源量设置为大于实际资源总量并不能使集群接受更多 pod 提交。从node 层面看,只有降低pod 的request 值,kubernetes 调度引擎才能将更多的pod 调度到node. 降低pod 的request 值称为pod 压缩

pod的 limit 即对应于容器作业配置的资源量,这个limit 值同时也受资源组(namespace)的约束。注意,在大数据云资源组实现中,namespace resourcequota 约束的是该namespace 下pod 的limit. 如图,resourcequota 设定了当前namespace 的limits.cpu(namespace下所有pod的CPU限制总和) 和limits.memory (namespace下所有pod的内存限制总和)的Hard 值,约束当前namespace 下的所有pod 的limits.cpu 和limits.memory. 由于resourcequota 并没有设定任何request 指标,因此并不会约束该namespace 下的pod 的request 项。

云计算-k8s超配理论_大数据_02

正常情况下,一个 namespace 下所有非终止状态的pod 的limits 总和不能超过namespace resourcequota 规定的limits 值。

对于一个 node, 所有pod 的request 资源总量占比不能超过集群可分配资源的100%, 而limit 资源总量可以超过100%, 即overcommitted.

云计算-k8s超配理论_服务质量_03

综上所述,一个 Kubernetes 集群要接受更多pod 提交,

• (1)首先要降低pod 的request 值,以使Kubernetes 调度引擎将更多pod 调度到节点上——这是Kubernetes 本身的机制。

• (2)同时,要设置集群的可售资源总量大于集群实际资源总量,即设置sum(namespace quota) > sum(node allocatable),这一步即大数据云运营侧面向用户的超额配置设置。

以上两项核心措施可以概括为 pod 压缩集群超配。这两项措施的目标是使集群接受更多的 pod 提交,但跟集群的实际资源利用率(sum(使用量)/集群所有节点的实际物理资源)并没有直接关系

影响超配的因素

集群超额配置关注的侧重点是资源分配策略,而利用率跟应用程序的业务相关,是动态的。Kubernetes 的用户、应用开发者必须对自己的应用程序的资源需求(主要是 cpu, mem 资源)有深入理解和把握,据此设置合理的container request 和limit, 以向Kubernetes 提供调度和运行依据。

如果 pod 的实际资源利用率总是很低(低于声明的limit 甚至低于request),则开发者应考虑调整pod 声明的request 和limit. 

云计算-k8s超配理论_大数据_04

提升作业的资源利用率

• 调整作业的资源利用率有两个方向:

1、合理分配资源

需要项目的资源运营人员进行资源的把控,根据作业类型和业务量合理分配作业资源。

2、设置合理的request,limit比值

云计算-k8s超配理论_服务质量_05

风险及影响

开启超配功能后,当kubernetes集群的内存这种不可压缩的资源出现紧缺时会触发Pod 驱逐。Pod 驱逐策略包括驱逐指标阈值、驱逐监控策略等。kubelet 会将驱逐信号与节点状况对应起来。当节点压力大时,会触发Pod 驱逐。在驱逐Pod 时又会按照Pod 的Qos级别进行驱逐。

QoS(Quality of Service),大部分译为 “服务质量等级”,又译作“服务质量保证”,是作用在Pod 上的一个配置,服务质量等级是通过配置CPU/MEM的limits 与requests 值的大小来确认的,可以是以下等级之一:

• Guaranteed:request=limit

• Burstable:request<limit

• BestEffort:容器必须没有任何内存或者CPU 的限制或请求。

Pod的Qos优先级排名:Guaranteed > Burstable > Best-Effort,即Best-Effort等级的Pod在Node资源紧缺时将会最先被驱逐。

标签:超配,node,namespace,request,集群,计算,pod,k8s,资源
From: https://blog.51cto.com/u_11555417/11927785

相关文章

  • 3292. 称检测点查询 来源:第二十次CCF-CSP计算机软件能力认证 枚举 排序
    #include<iostream>#include<cstdio>#include<algorithm>usingnamespacestd;constintN=210;pair<int,int>p[N];intn,X,Y;intmain(){cin>>n>>X>>Y;for(inti=1;i<=n;i++){......
  • 3293. 风险人群筛查 来源:第二十次CCF-CSP计算机软件能力认证 模拟枚举
    #include<iostream>#include<cstring>#include<algorithm>#definexfirst#defineysecondusingnamespacestd;intn,k,t,x1,y1,x2,y2;intmain(){cin>>n>>k>>t>>x1>>y1>>x2......
  • 计算机毕业设计django+vue超市商品管理系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和电子商务的普及,传统超市行业正面临着前所未有的变革与挑战。传统的商品管理模式依赖于大量的人工操作和纸质记录......
  • 计算机网络基础(备考)
    1.分类按分布范围:局域网、城域网、广域网、因特网按拓扑结构:总线型、星型、环型2.七层网络体系结构及其设备应用层:HTTPDNSPOP3FTPTelnetSMTPDHCPTFIPSNMPDNS表示层:HTTPDNSPOP3FTPTelnetSMTPDHCPTFIPSNMPDNS会话层:HTTPDNSPOP3FTPTelnetSMTPDHCPTF......
  • NowCoder HJ75 公共子串计算
    前言题目:HJ75公共子串计算编程语言:C++解题状态:艰难完成思路暴力解法,要注意的是遍历的范围,以及如何求取连续子串的长度。代码#include<iostream>#include<string>usingnamespacestd;intmain(){stringa,b;cin>>a;cin>>b;str......
  • 部署K8S集群(一):环境准备
    环境介绍:以下操作使用三台基于Hyper-v的OpenEuler虚拟机IP主机名系统版本172.17.48.27masteropeneuler-22.03LTSSP3172.17.48.28worker01openeuler-22.03LTSSP3172.17.48.29worker02openeuler-22.03LTSSP3虚拟机准备操作:以下操作需要在全部三......
  • 部署K8S集群(二):主节点初始化
    主节点:以下操作只在master进行安装kubeletkubeadmkubectlyuminstall-ykubeletkubeadmkubectl安装containerd下载地址:https://github.com/containerd/containerd/releases找到标签为Latest的包,根据系统类型下载对应的包#解压tarCxzvf/usr/localcontainerd-1......
  • 基于nodejs+vue大学生社团活动平台[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高等教育的普及和大学生课余生活的日益丰富,社团活动已成为培养学生综合素质、促进人际交往、提升团队协作能力的重要载体。然而,传统的社团管理方式往往......
  • 基于nodejs+vue大学生食堂饭菜价格信息管理系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高校规模的不断扩大与学生群体的日益多元化,大学生食堂作为校园生活的重要组成部分,其饭菜价格管理成为了一个备受关注的议题。传统的手工记录与核算方式......
  • 基于nodejs+vue大学生数码租赁网站[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着科技的飞速发展,数码产品已成为大学生学习、生活及娱乐不可或缺的一部分。然而,高昂的购置成本往往让经济尚未独立的学生群体望而却步。同时,数码产品的更......