Kubernetes群集在yaml文件中进行资源限制

[复制链接]

1275

主题

1275

帖子

1013

积分

金牌会员

Rank: 6Rank: 6

积分
1013
分享到:
发表于 2022-6-28 13:18:49 | 显示全部楼层 |阅读模式
Kubernetes对资源的限制实际上是通过cgroup来控制的,cgroup是容器的一组用来控制内核如何运行进程的相关属性集合,针对内存、CPU各种设备都有对应的cgroup。
默认情况下,Pod运行没有CPU和内存的限制,这就意味着系统中的任何pod将能够像执行该pod所在的节点一样,消耗足够多的CPU和内存,一般会针对某些应用的Pod资源进行资源限制,这个资源限制是通过resources的limits来实现的。
注:以下只是在yaml文件中进行资源限制的一个片段,并不是完整的yaml文件!
1)针对pod的资源限制[root@master limit]# vim cgroup-pod.yaml spec: containers: - name: xxx ?image: xxx ?ports: ?- protocol: TCP ??containerPort: 80 ?resources: ??limits: ??????#硬限制 ???cpu: "4" ???memory: 2Gi ??requests: ?????#运行pod时请求的资源数量 ???cpu: 260m ???memory: 260Mirequests: 要分配的资源,limits为最高请求的资源值。可以简单的理解为初始值和最大值。
2)基于名称空间的资源限制(可以具体制定限制某一个名称空间)1)计算资源配额[root@master limit]# vim compute-resource.yaml apiVersion: v1kind: ResourceQuotametadata: name: compute-resourcesspec: hard: ?pods: "20" ????#所有pod数量不可以超过20个 ?requests.cpu: "20" ????#初始请求的CPU不可以超过20m ?requests.memory: 100Gi ?#初始请求的内存不可以超过100G ?limits.cpu: "40" ?????#CPU的硬限制 ?limits.memory: 200Gi ???#内存的硬限制2)资源对象数量配额限制[root@master limit]# vim object-counts.yaml apiVersion: v1kind: ResourceQuotametadata: name: object-countsspec: hard: ?configmaps: "10" ??#最多可以创建10个configmap ?persistentvolumeclaims: "4" ??#最多可以创建4个PVC ?replicationcontrollers: "20" ??????#最多可以创建20个RC资源对象 ?secrets: "10" ?????????#最多可以创建10个secrets ???service.loadbalancers: "2" ??#最多可以创建2个svc3)配置CPU和内存的limitRange[root@master limit]# vim limitRange.yaml apiVersion: v1kind: LimitRangemetadata: name: mem-limit-rangespec: limits: - default: ??????memory: 50Gi ?#硬限制 ??cpu: 5 ??#硬限制 ?defaultRequest: ???#初始请求 ??memory: 1Gi ??cpu: 1 ?type: Container ???#限制对象为容器default 即 limit的值,defaultRequest 即 request的值。

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表