• 【腾讯云原生降本增效大讲堂】Kubernetes云上资源的分析与优化


    嘉宾 | 胡启明

    出品 | CSDN云原生

    2022年6月30日,中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第2讲如期举行,腾讯云容器技术专家胡启明分享了Kubernetes云上资源的分析与优化。

    胡启明是开源项目Crane的Founder和负责人,专注Kubernetes云原生领域8年,负责专有云容器产品、云原生应用平台的研发和管理,是Kubernetes、Dapr、KubeEdge等多个开源项目的Contributor。本文整理自胡启明的分享。

    Kubernetes云上资源管理

    Kubernetes资源模型:Request和Limit

    • Request代表Kubernetes应用声明它希望获得的最小的资源使用量。

    • Limit代表Kubernetes应用声明它希望获得的最大的资源使用量。

    Kubernetes的调度器,会根据Request的申请量去调度应用到Kubernetes的节点上。

    资源预留带来的资源浪费

    关于Request的模型,用户设置时存在一个问题:用户的开发者不一定对业务线上运行情况完全感知。例如:不知道业务在线上运行时需要多少CPU和内存,以及业务洪峰的场景下资源使用量会上涨的维度。因此,基于这些问题,在业务开发、运维在配置Request时,开发者会选择保守策略,常把配置设高。

    同时,也带来另一个问题:资源浪费比较显著。如下图所示,应用的Request声明了4个核,但实际使用不超过2个核。这都是由于保守、业务运行不了解带来的资源浪费。

    资源紧缺带来的资源浪费

    CPU是可压缩资源。当CPU紧缺时,实际用量可以超过CPU总量,此时会出现资源的争抢,导致应用处理程序速度变慢。

    内存是不可压缩资源,如果业务运行中超过了上限,就会呈现下图的情况。

    如上图所示,Kubernetes中的节点上部署了两个容器,它们在处理业务都有规律:

    • 在晚上,业务的使用量会降低,白天高峰期业务容量就会偏高;

    • 昼夜规律比较相似,相似的业务部署在了同一个节点上;

    • 业务高峰期,容器的内存用量会达到它的Limit值,但由于调度应用是根据Request完成的,会导致在业务高峰期节点上内存被耗尽。

    资源被耗尽时候,会发生什么事?

    • 如果节点的内存耗尽,Kubernetes会按顺序驱逐容器,排序规则是容器实际内存使用超出Request的用量。如果去驱逐用量大于Request的东西,业务就会发生损伤,因为它的容器被Kill,并且这时候往往是处在于业务的高峰期,使

  • 相关阅读:
    SSM之Spring注解式缓存Redis
    笨蛋学C++【C++基础第六弹】
    C语言中文网 - Shell脚本 - 6
    关于Flask_自定义路由转换器的方法和使用
    【总线】设计fpga系统时,为什么要使用总线?
    软件测试 08功能自动化 08 基于Python语言的Selenium基础
    Qt - UI进阶
    学生个人网页设计作品:旅游网页设计与实现——成都旅游网站4个页HTML+CSS web前端网页设计期末课程大作业 学生DW静态网页设计 学生个人网页设计作品
    第2章_freeRTOS入门与工程实践之单片机程序设计模式
    Word处理控件Aspose.Words功能演示:在 Python 中从 Word 文档中提取图像
  • 原文地址:https://blog.csdn.net/m0_46700908/article/details/126153059