kubernets之带有limit的资源
一 pod中容器的limits属性的作用
1.1 创建一个带有资源limits的pod
apiVersion: v1
kind: Pod
metadata:
name: limited-pod
spec:
containers:
- image: busybox
command: ["dd","if=/dev/zero","of=/dev/null"]
name: main
resources:
limits:
cpu: 1
memory: 20Mi
- 限制了cpu使用的时间,可以使用cpu的所有运行时间
- 限制了内存只能有20Mi
- 与requests资源不同limits资源可以超卖,即节点上面所有的pod的limits属性之和相加起来可以大于等于100
1.2 当容器内的应用超过这个使用配额的时候会发生什么?
当容器运行的应用超过这个配额的时候,kubernetes会将这个pod杀掉,并且当这个pod的重启策略是always的时候,第一次重启之后,接下来他还会继续重启,而且第二次重启的时间比第一次时间间隔要长,然后一直这样循环往复下去,直达达到300点这个临界值,之后会一直以这个时间进行重复启动,而且pod也会一直处于CrashLoopBackOff状态查询日志或者通过时间可以知道详细的原因

- 这个例子中,容器因为内存不足而被杀死了
1.3 容器中的应用是如何看待limits
在容器中查看内存的时候,显示的是容器所在节点上面的数量,而容器无法感知这个限制,任何利用这个信息来决定使用多少应用来说都具有非常不利的影响,在java应用程序中很有可能会出现OOMkill
容器内同样可以看到所有的所有节点的cpu内核,与内存完全一致,当在容器的limits上面限制了1,容器里面查看的时候也会是64,而且应用能够占用的cpu时间也只能1/64.并且它还不会只在一个cpu上面进行运行,而是会跑满所有的cpu,这对实际生产简直是灾难,它会占用大量的内存
综上所示,不能够依赖应用程序从系统里面或者cpu的数量,而是应该通过downwardAPI的形式将CPU限额传递到容器并使用这个值,或者也可以通过cgroup系统直接获取配置的CPU限制,查看下面所示文件
- /sys/fs/cgroup/cpu/cpu.cfs_quota_us
- /sys/fs/cgroup/cpu/cpu.cfs_period_us
kubernets之带有limit的资源的更多相关文章
- 001-RESTful服务最佳实践-RestFul准则、HTTP动词表示含义、合理的资源命名、响应格式XML和JSON
一.概述 因为REST是一种架构风格而不是严格的标准,所以它可以灵活地实现.由于这种灵活性和结构自由度,对设计最佳实践也有很大的差异. API的方向是从应用程序开发人员的角度考虑设计选择. 幂等性 不 ...
- Mysql:Error Code 1235,This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决 这次国庆节回来后的测试中,在一个Mysql表达式 ...
- This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
在一个Mysql表达式中使用嵌套查询,出现了这个错误.原因是内层select语句带有limit子句. 在网上查了下,有文章指出: 比如这样的语句是不能正确执行的. select * from ta ...
- 【Demo 0005】Android 资源
本章学习要点: 1. 了解Android中资源用途: 2. 掌握资源使用通用规则: 3. 掌握具体资源使用方法; 一.Android资源 a ...
- MYSQL Optimizing LIMIT Queries
如果要指定查询的数据行数,在查询语句中使用limit子句,而不是获取所有数据行结果集,然后去掉没用的数据. MYSQL有时会对没有having子句,带有limit关键字的查询进行优化: 1:如果用li ...
- Kubernets 第一讲 初探
1.kubernets的工作流程 (1)开始部署新的应用程序,使用kubectl客户端工具和一个准备好的包含应用程序的Deployment的yaml文件:用户通过kubectl命令将文件的内容发送给A ...
- Mysql中count(*)和limit同时使用的问题
1.带有count的sql语句只会返回一条记录 , 结果如下图: 2.带有limit的sql语句是最后执行的 , 以上sql语句将返回空行,因为count(*)只会使sql语句产生一条结果记录,所以后 ...
- Mysql:This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
From: http://blog.chinaunix.net/uid-22414998-id-2945656.html This version of MySQL doesn’t yet suppo ...
- mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
这次国庆节回来后的测试中,在一个Mysql表达式中使用嵌套查询,出现了这个错误.原因是内层select语句带有limit子句. 在网上查了下,有文章指出: 比如这样的语句是不能正确执行的. s ...
- Kubernetes 学习22 kubernetes容器资源需求资源限制及HeapSter(翻车章节)
一.概述 1.接下来介绍在k8s上运行pod对象时我们如何去监控我们系统级的资源指标以及业务级别的资源指标.数据如何获取和监控.在此之前先介绍一下Pod对象的资源请求和资源限制.即容器的资源需求和资源 ...
随机推荐
- C#中yield return的作用
C#中yield return的作用 yield return作用在 return 时,保存当前函数的状态,下次调用时继续从当前位置处理.示例说明如下代码所示,主函数使用 foreach 输出 Get ...
- web.xml最新配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmln ...
- java excel关联导入数据格式为一对多
java excel关联导入数据格式为一对多 java 表格读取时一行一行的读取 将每行数据放入list 根据 list.stream().filter(m->m.getCode().equa ...
- HarmonyOS—使用Web组件加载页面
页面加载是Web组件的基本功能.根据页面加载数据来源可以分为三种常用场景,包括加载网络页面.加载本地页面.加载HTML格式的富文本数据. 页面加载过程中,若涉及网络资源获取,需要配置ohos.pe ...
- 老者Java,奋战一线
1 语言优劣论 世上只有两种编程语言:一种被人骂,一种没人用. Java已经诞生20多年了,依然是企业级开发中使用最广泛的语言,也是挨骂最多的语言.技术圈经常有"A语言比B语言更好" ...
- Pytorch-tensor的创建,索引,切片
1.基本概念 标量:就是一个数,是0维的,只有大小,没有方向 向量:是1*n的一列数,是1维的,有大小,也有方向 张量:是n*n的一堆数,是2维的,n个向量合并而成 2.a.size(),a.shap ...
- 了解redis的单线程模型工作原理?一篇文章就够了
1.首先redis是单线程的,为什么redis会是单线程的呢?从redis的性能上进行考虑,单线程避免了上下文频繁切换问题,效率高:从redis的内部结构设计原理进行考虑,redis是基于Reacto ...
- 【ESP32 IDF】用RMT控制 WS2812 彩色灯带
在上一篇中,老周用 .NET Nano Framework 给大伙伴们演示了 WS2812 灯带的控制,包括用 SPI 和 红外RMT 的方式.利用 RMT 是一个很机灵的方案,不过,可能很多大伙伴对 ...
- 性能透明提升 50%!SMC + ERDMA 云上超大规模高性能网络协议栈
简介: 新的协议栈是不是重新发明轮子?一个协议栈能否解决所有问题?适配所有场景? 编者按:当前内核网络协议栈有什么问题?新的协议栈是不是重新发明轮子?一个协议栈能否解决所有问题?适配所有场景?本文整理 ...
- 你的 Sleep 服务会梦到服务网格外的 bookinfo 吗
简介: ASM 产品是基于社区 Istio 定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力.通过托管模式,解耦了 Istio 组件与所管理的 K8s 集群的生命周期管理 ...