这一小节讲述 如何对容器分配CPU资源和对CPU资源使用做限制。
一个容器被保证有足够的CPU资源可以被调用,但是也不允许使用超过CPU资源的限制。
创建一个命名空间
kubectl create namespace cpu-example
定义一个CPU资源请求和CPU资源限制
资源请求
resources:requests
资源限制
resources:limits
在这个练习中,你创建了一个POD拥有 0.5cpu和1cpu的限制
apiVersion: v1
kind: Pod
metadata:
name: cpu-demo
namespace: cpu-example
spec:
containers:
- name: cpu-demo-ctr
image: vish/stress
resources:
limits:
cpu: "1"
requests:
cpu: "0.5"
args:- -cpus
- "2"
args 设置了分配2个CPU
创建POD
kubectl create -f https://k8s.io/examples/pods/resource/cpu-request-limit.yaml --namespace=cpu-example
验证POD是否在运行
kubectl get pod cpu-demo --namespace=cpu-example
查看POD的详细信息
kubectl get pod cpu-demo --output=yaml --namespace=cpu-example
显示POD的资源分配为 500 milliCPU 和 1 CPU的限制
resources:
limits:
cpu: "1"
requests:
cpu: 500m
可以使用以下命令来获取容器的指标
kubectl top pod cpu-demo --namespace=cpu-example
以下为显示的内存分配指标
NAME CPU(cores) MEMORY(bytes)
cpu-demo 974m <something>
可以看到,虽然CPU设置了请求分配是2,但是限制是1,所以多于的资源请求会被砍掉。
CPU 单元
CPU资源使用CPU单元来衡量。
在k8s里面,一个CPU相当于:
原文地址:http://blog.51cto.com/binuu/2306650