1、在创建容器的配置文件中指定
spec:
containers:
- image: gcr.io/google_containers/serve_hostname
imagePullPolicy: Always
name: kubernetes-serve-hostname
resources:
limits:
cpu: "1" #限制pod申请最大的cpu数量为1个cpu
memory: 512Mi #申请内存最大值
requests:
cpu: "0.5" #pod申请的cpu数量为0.5个cpu
memory: 400Mi #申请内存的最小值
2、参数解释
requests
requests用于schedule阶段,在调度pod保证所有pod的requests总和小于node能提供的计算能力
requests.cpu被转成docker的--cpu-shares参数,与cgroup cpu.shares功能相同
设置容器的cpu的相对权重
该参数在CPU资源不足时生效,根据容器requests.cpu的比例来分配cpu资源
CPU资源充足时,requests.cpu不会限制container占用的最大值,container可以独占CPU
requests.memory没有对应的docker参数,作为k8s调度依据
使用requests来设置各容器需要的最小资源
limits
limits限制运行时容器占用的资源
limits.cpu会被转换成docker的–cpu-quota参数。与cgroup cpu.cfs_quota_us功能相同
限制容器的最大CPU使用率
cpu.cfs_quota_us参数与cpu.cfs_period_us结合使用,后者设置时间周期
k8s将docker的–cpu-period参数设置100毫秒。对应着cgroup的cpu.cfs_period_us
limits.cpu的单位使用m,千分之一核
limits.memory会被转换成docker的–memory参数。用来限制容器使用的最大内存
当容器申请内存超过limits时会被终止