• k8s Container资源控制: requests和limits


    为什么需要对Pod进行资源控制?

    假如我们不为Pod设置资源控制,那么

    • 每个节点都会尽可能容纳更多的Pod。
    • 当服务压力升高时,每个Pod都会尽可能侵占空闲资源,直到节点CPU全负荷运作,内存耗尽。
    • 系统业务延迟明显增加,服务大规模重启。
    • 各个节点资源占用比例严重失衡,甚至集群远程服务挂起,只能重启。

    我们能控制哪些资源的分配?

    CPU

    CPU属于弹性资源,因为CPU可以通过时间片轮转等算法实现多进程调度。

    因此CPU资源是按比例的形式为Pod进行分配,k8s将CPU资源定义为1000个单位,设置cpu.requests = 0.5 和cpu.requests = 500m是等价的,它代表该Pod所请求的资源是CPU资源的一半。

    但请记住,CPU资源是按每个Pod设置值的比例进行分配的,权重大的Pod会获得比权重小的Pod更多的 CPU 时间。CPU调度的公平性由操作系统内核算法来保证。

    CPU资源限制并不是绝对的,Pod可能会使用超出限制的CPU资源而不会被杀死。但节点CPU满负荷运转的最终结果是系统无法承载外部更多的请求,应用延时增加,响应变慢,同时节点会禁止新的Pod创建。

    Memory

    内存属于不可压缩资源,因为内存资源是进程独占的,这意味k8s对内存使用限制更加严格。

    一旦节点可用内存耗尽,或者Pod使用资源超过limits,Pod一定会被杀死并重启。

    内存分配的最小单位是字节,1m = 0.001字节。

    正常情况下我们会使用 M(Mi), G(Gi) 作为分配单位。 1M = 2^20字节。

    怎样控制Container资源分配?

    下面是官网上的一个例子:

    1. apiVersion: v1
    2. kind: Pod
    3. metadata:
    4. name: frontend
    5. spec:
    6. containers:
    7. - name: app
    8. image: images.my-company.example/app:v4
    9. resources:
    10. requests:
    11. memory: "64Mi"
    12. cpu: "250m"
    13. limits:
    14. memory: "128Mi"
    15. cpu: "500m"
    16. - name: log-aggregator
    17. image: images.my-company.example/log-aggregator:v6
    18. resources:
    19. requests:
    20. memory: "64Mi"
    21. cpu: "250m"
    22. limits:
    23. memory: "128Mi"
    24. cpu: "500m"

    requests

    requests 代表Container向节点申请的资源,节点必须确保有充足的空间满足Pod的requests,否则k8s会将Pod分配到其它节点,如果Pod的资源申请无法被满足,则将会一直陷入失败重启状态。

    limits

    limits代表Container最高资源使用限制。

    当CPU资源使用超过限制时,Pod将被限制使用CPU。对于没有设置limits的 pod ,一旦节点的空闲 CPU 资源耗尽,之前分配的 CPU 资源也会逐渐减少。

    而当内存资源使用超过限制时,Pod将被强制重启。

  • 相关阅读:
    ModuleNotFoundError: No module named ‘torchvision.models.utils‘
    openssl3.2 - 编译 - zlib.dll不要使用绝对路径
    后缀数组 学习笔记
    SB30100LCT-ASEMI插件肖特基二极管SB30100LCT
    Word Embedding与Word2Vec学习
    Java IO包之序列化与ObjectInputStream、ObjectOutputStream的简介说明
    Docker 日志自动轮转和清理配置
    java 不同方式的加锁
    [机缘参悟-63]:《兵者,诡道也》-4-孙子兵法解读-攻战计
    算法64-荷兰国旗问题
  • 原文地址:https://blog.csdn.net/qq_40404477/article/details/127697286