分享交流
合作共赢!

Kubernetes/K8S基础使用方法总结【十五】——资源限制

一、简述

kubernetes创建资源时,一般需要设置容器的资源(CPU和内存)需求(request,最低保障数量)和资源限制(limits最大限额)。CPU单位一般为阿拉伯数字或m,如500m(millicores)代表0.5个逻辑cpu,内存单位一般为Mi或Gi。

  • spec.containers[].resources.limits.cpu
  • spec.containers[].resources.limits.memory
  • spec.containers[].resources.limits.hugepages-<size>
  • spec.containers[].resources.requests.cpu
  • spec.containers[].resources.requests.memory
  • spec.containers[].resources.requests.hugepages-<size>

对容器资源限制官方使用文档:

[root@master1 yaml]# kubectl explain pods.spec.containers.resources
KIND:     Pod
VERSION:  v1

RESOURCE: resources <Object>

DESCRIPTION:
     Compute Resources required by this container. Cannot be updated. More info:
     https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

     ResourceRequirements describes the compute resource requirements.

FIELDS:
   limits	<map[string]string>
     Limits describes the maximum amount of compute resources allowed. More
     info:
     https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

   requests	<map[string]string>
     Requests describes the minimum amount of compute resources required. If
     Requests is omitted for a container, it defaults to Limits if that is
     explicitly specified, otherwise to an implementation-defined value. More
     info:
     https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

二、实例

分别限制cpu和内存

apiVersion: v1
kind: Pod
metadata:
  name: pod-normal
  labels:
    app: myapp
    tier: frontend
spec:
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
    resources:
      requests:
        memory: "256Mi"
        cpu: "500m"
      limits:
        memory: "512Mi"
        cpu: "1"

三、Pod的Qos参数

Qos(Quality of Service,服务质量),由系统自动分类,一般有如下三个资源类别选项:

  • Guranteed
  • Burstable
  • BestEffort

1.Guranteed

当一个pod中的所有容器,同时设置CPU和内存的requests和limits,且CPU的requests等于limits,内存的requests等于limits,即cpu.limits=cpu.requests, memory.limits=memory.requests。资源使用优先级最高,当节点资源紧缺时,会被优先保留。

2.Burstable

一个pod中,至少有一个容器设置了CPU或内存资源的requests属性。资源使用优先级中等。

3.BestEffort

pod资源中没有任何一个requests或limits属性,资源使用优先级最低,当节点资源紧缺时,会被优先关闭。

赞(1) 打赏
未经允许不得转载:琼杰笔记 » Kubernetes/K8S基础使用方法总结【十五】——资源限制

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏