k8s测试十八资源限制
资源限制基于podKubernetes对资源的限制实际上是通过cgroup来控制的,cgroup是容器的一组用来控制内核如何运行进程的相关属性集合。针对内存、CPU和各种设备都有对应的cgroup。默认情况下,Pod运行没有CPU和内存的限制。这一位这系统中的任何Pod将能够像执行该Pod所在的节点一样,消耗足够多的CPU和内存。一般会针对某些应用的pod资源进行资源限制,这个资源限制...
·
资源限制
基于pod
Kubernetes对资源的限制实际上是通过cgroup来控制的,cgroup是容器的一组用来控制内核如何运行进程的相关属性集合。针对内存、CPU和各种设备都有对应的cgroup。
默认情况下,Pod运行没有CPU和内存的限制。这一位这系统中的任何Pod将能够像执行该Pod所在的节点一样,消耗足够多的CPU和内存。一般会针对某些应用的pod资源进行资源限制,这个资源限制是通过resources的 requests和 limits来实现:
yaml:
requests要分配的资源,limits为最高请求的资源值。可以简单理解为初始值和最大值
spec:
containers:
- image: xxx
name: xxxx
resources:
limits: #最大
cpu: "4"
memory: 2Gi
requests: #初始
cpu: 250m
memory: 250Mi
基于namespace
计算资源配额yaml:
apiVersion: v1
kind: ResourceQuota
metadata:
name: computer-resources
namespace: spark-cluster
spec:
hard:
pods: "20"
requests.cpu: "20"
requests.memoryL "100Gi"
limits.cpu: "40"
limits.memory: 200Gi
配置对象数量配额限制:
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-counts
namespace: spark-cluster
spec:
hard:
configmaps: "10"
persistentvolumeclaims: "4"
replicationcontrollers: "20"
secrets: "10"
services: "10"
services.loadbalancers: "2"
配置CPU和内存LimitRange:
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
spec:
limits:
- default:
memory: 50Gi
cpu: 5
defaultRequest:
memory: 1Gi
cpu: 1
type: Container
更多推荐
已为社区贡献19条内容
所有评论(0)