kubernetes资源对象--limitranges

 

置顶 2017年08月15日 17:55:16 lykops 阅读数:1694

版权声明:本文属于原创,欢迎转载,转载请保留出处:http://blog.csdn.net/liyingke112 https://blog.csdn.net/liyingke112/article/details/77198045

下文基于kubernetes 1.5.2版本编写

概念

 

LimitRange(简称limits)基于namespace的资源管理,包括pod和container的最小、最大和default、defaultrequests等。

一旦创建limits,以后创建资源时,K8S将该limits资源限制条件默认/强制给pod,创建后发现不符合规则,将暂停创建pod。

在创建资源时,用户可以为pod自定义资源管理限制,在创建时会去检查和匹配limits值,发现不匹配将在创建时报错。创建后,该pod的资源使用遵守自定义规则,而不会遵守namespace的limits限制。

例子

 
  1. kubectl delete -f lykops-limitrangerange.yaml

  2. cat << EOF > lykops-limitrangerange.yaml

  3. apiVersion: v1

  4. kind: LimitRange

  5. metadata:

  6. namespace: default

  7. name: lykops-limitrange

  8. labels:

  9. project: lykops

  10. app: limitrange

  11. version: v1

  12. spec:

  13. limits:

  14. - max:

  15. cpu: 1

  16. memory: 1Gi

  17. min:

  18. cpu: 0.05

  19. memory: 64Mi

  20. type: Pod

  21. #注意pod只能这么多参数

  22. - default:

  23. cpu: 0.2

  24. memory: 200Mi

  25. defaultRequest:

  26. cpu: 0.01

  27. memory: 16Mi

  28. max:

  29. cpu: 0.25

  30. memory: 256Mi

  31. min:

  32. cpu: 0.005

  33. memory: 8Mi

  34. #container只能这么多参数

  35. type: Container

  36. EOF

  37. kubectl create -f lykops-limitrangerange.yaml

参数说明

每容器(type: container)

 
  1. min:资源紧张时,最低保证可以使用的资源是: CPU 0.005个核,内存8M

  2. max:资源空闲时,最大可以使用的资源是:CPU 0.25个核,内存256M

  3. default:默认时,限制使用的资源是:CPU 0.2个核,内存200M

  4. defaultRequest:默认时,最低保证可以使用的资源是: CPU 0.01个核,内存16M

每pod(type: pod)

 
  1. min:最低保证可以使用的资源是: CPU 0.05个核,内存64M

  2. max最大可以使用的资源是:CPU 1个核,内存1G

使用规则

1、每个namespace应该只有一个limits;

2、limits值设置:

 
  1. 每容器(type: container)

  2. max>=default>=defaultRequest>min

  3. 每pod(type: pod)

  4. max>=min

  5. 整个

  6. 容器的max*容器数<=pod的max

  7. 容器的min*容器数<=pod的min

3、创建资源时,pod自定义资源限制的规则:

 
  1. 自定义的单个request>=limits的容器的defaultrequets

  2. 自定义的request的总和>=limits的pod的min

  3. 自定义的单个limit<=limits的容器的requets

  4. 自定义的limit的总和<=limits的pod的max

使用心得

为了防止出现创建资源失败的情况,个人建议:

 
  1. 1、只使用limits的pod或者container中的一种,尽量不使用同时使用,特别在pod中有多容器需求的情况下。

  2. 2、尽量使用max,尽量不同时使用max和min

  3. 3、由于limits会针对该namespace下的所有新建的pods,所以在该namespace下应该运行哪些资源需求相同的业务

  4. 4、在复杂的limits配置下,不要在创建资源时使用自定义配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值