1-2 給容器和PODS 分配CPU資源
這一小節講述 如何對容器分配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相當於: