在 Kubernetes 中創(chuàng)建工作負載時,您可以為 Pod 中的每一個容器指定其所需要的內(nèi)存(RAM)大小和 CPU 數(shù)量。如果這些信息被指定了磕蒲,Kubernetes 調(diào)度器可以更好的決定將 Pod 調(diào)度到哪一個節(jié)點蓖乘。對于容器來說,其所需要的資源也將依據(jù)其指定的數(shù)值得到保證峦睡。
資源類型及計量
當我們討論計算資源的時候翎苫,主要是指 CPU 和 內(nèi)存。CPU 的計量單位是內(nèi)核的單元數(shù)榨了,內(nèi)存的計量單位是 byte 字節(jié)數(shù)煎谍。應用程序可以按量請求、分配龙屉、消耗計算資源呐粘。
CPU 的計量
在 Kubernetes 中,1 個 CPU 代表:
- 1 AWS vCPU
- 1 GCP Core
- 1 Azure vCore
- 1 IBM vCPU
- 物理機上 Intel 超線程 CPU 的 1 個超線程(Hyperthread)
Kubernetes 中转捕,0.5 代表請求半個 CPU 資源作岖。表達式 0.1 等價于 表達式 100m (英文讀作 one hundred millicpu 或 one hundred millicores)。在 API Server 中瓜富,表達式 0.1 將被轉(zhuǎn)換成 100m鳍咱,精度低于 1m 的請求是不受支持的。 CPU 的計量代表的是絕對值与柑,而非相對值谤辜,例如,您請求了 0.1 個 CPU价捧,無論您的節(jié)點是 單核丑念、雙核、48核结蟋,您得到的 CPU 資源都是 0.1 核脯倚。
TIP
在 top 命令查看CPU消耗,100% 代表 1核;4核為 400%推正;10% 代表 0.1 核 或者 100m
內(nèi)存的計量
內(nèi)存的計量單位是 byte 字節(jié)恍涂。您可以使用一個整數(shù)來表達內(nèi)存的大小,也可以使用后綴來表示(E植榕、P再沧、T、G尊残、M炒瘸、K)。您也可以使用 2 的冪數(shù)來表示內(nèi)存大小寝衫,其后綴為(Ei顷扩、Pi、Ti慰毅、Gi隘截、Mi、Ki)事富。例如技俐,下面的幾個表達方式所表示的內(nèi)存大小大致相等:
128974848
, 129e6
, 129M
, 123Mi
示例
單位m:CPU的計量單位叫毫核(m)。一個節(jié)點的CPU核心數(shù)量乘以1000统台,得到的就是節(jié)點總的CPU總數(shù)量雕擂。如,一個節(jié)點有兩個核贱勃,那么該節(jié)點的CPU總量為2000m井赌。
下面拿雙核舉例:
resources:
requests:
cpu: 200m # 請求時申請CPU資源為0.2核
memory: 256Mi # 請求時申請內(nèi)存資源為256M
limits:
cpu: 500m # 限定CPU資源上限為0.5核
memory: 512Mi # 限定內(nèi)存資源上限為512M
- requests:代表容器啟動請求的資源限制,分配的資源必須要達到此要求
- limits:代表最多可以請求多少資源
含義:該容器啟動時請求200/2000的核心(10%)并且允許最多使用500/2000核心(25%)贵扰。