Kubernetes Memory Requests超标引发的血案

news/2024/7/4 7:47:50 标签: kubernetes, 容器, 云原生

Namespace quotas(名称空间配额) 

Kubernetes 允许管理人员对特定的命令空间(namespace)设置配额, 以此对资源使用进行严格限制。如果在某命名空间下设置了 CPU 请求配额(request quotas), 那么该命名空间下的所有 Pod 都需要在其定义中设置 CPU 资源情况,否则将不会对其进行调度。

pod requests and limits

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
 name: redis
 labels:
   name: redis-deployment
   app: example-voting-app
spec:
 replicas: 1
 selector:
   matchLabels:
    name: redis
    role: redisdb
    app: example-voting-app
 template:
   spec:
     containers:
       - name: redis
         image: redis:5.0.3-alpine
         resources:
           limits:
             memory: 600Mi
             cpu: 1
           requests:
             memory: 300Mi
             cpu: 500m
       - name: busybox
         image: busybox:1.28
         resources:
           limits:
             memory: 200Mi
             cpu: 300m
           requests:
             memory: 100Mi
             cpu: 100m

现象

线程池里的线程无法继续进行大规模的内存操作

监控 (Prometheus)

  1. 紫色是代表应用的实际内存请求代销
  2. 红色的是k8s限制的大小
  3. 黄色的是代表pod的实际内存大小

 Kubernetes限制是针对每个容器而不是每个 Pod。

总结

在工作中使用了一段时间的 Kubernetes 集群后,发现合理设置 requests 和 limits 对应用程序和集群性能至关重要。

理想情况下,应用程序应该持续准确地使用请求(requests)的资源量。但现实往往不可预估,容器对资源的使用从来都不是经常性的或可预测的。一般可以考虑在求值上下浮动25%视为运行良好情况。如果资源使用量远低于设置的请求量,则资源存在极大浪费。如果资源使用量比请求量很多,则存在应用程序和节点性能下降风险。

参考文章

了解 Kubernetes 的 limits 和 requests - 知乎


http://www.niftyadmin.cn/n/1558834.html

相关文章

Android:ImageView控件显示图片

1)android显示图片可以使用imageView来呈现,而且也可以通过ImageButton来实现给button添加图片。 2)在创建一个ImageView后,显示图片绑定元素是:android:src"android:drawable/btn_dialog" 3)后台…

LeetCode072之编辑距离(相关话题:动态规划)

题目描述: 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 "horse&…

快速安装 Check MK

看到网上很多Check MK的安装方式都非常麻烦,让很多初学者望而却步,不太利于Check MK的广泛传播,故写了一篇极速安装Check MK的教程。希望能推动Check MK在国内的普及与发展。毕竟Zabbix的生态环境做的太好了,让很多人可以在网上轻…

Elasticsearch 企业级别性能优化(二)

目录 基本调优原则 1、搜索结果不要返回过大的结果集 2、避免超大的document 3、避免稀疏的数据 磁盘读写性能优化 1、禁用不需要的功能 2、不要用默认的动态string类型映射 3、禁止_all field 4、使用best_compression 5、用最小的最合适的数字类型 索引写入性能优…

Java异常错误重试方案研究(转)(spring-retry/guava-retryer)

业务场景 应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作。这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务逻辑包装给处理方法返回处理结果;第二步拿到第一步结果…

CSDN博客专家和万粉博主纪念章

旧书不厌百回读,熟读精思子自知 感谢csdn官方的认可,博主会继续再接再励产出优质博文。以下输出为大家所共勉

LeetCode004之寻找两个有序数组的中位数(相关话题:二分法,双指针)

题目描述 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1:输入:nums1 [1,3], nums2 [2] 输出:2.0000…

WebBrowser 显示Html内容不得不知的技巧

先上技术内容,后面再感慨几句:早在(新浪)微博粉丝精灵的评论平台(现在移到微博人气精灵)里,需要有空间来显示新浪微博的内容,如下图:在图片的右侧,是一个WebB…