Open3
k8sでコンテナのCPUを決めるには
✏️CPUの指定方法
podやdeploymentでCPUのサイズを指定するにはresources
を記載する。
requests
は要求量でlimits
は制限量のこと。
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"
requests
にnodeのCPUサイズ以上を指定すると、podがスケジュールされない。
Events:
Reason Message
------ -------
FailedScheduling No nodes are available that match all of the following predicates:: Insufficient cpu (3).
📚参考
CPUの単位
複数の表記がある。
0.5 = 500m = 500millicores
また0.1未満は無視される
各ベンダーにおける1CPUは以下のようになる。
- 1 AWS vCPU
- 1 GCPコア
- 1 Azure vCore
ベンダーによる違いはない模様。
🐶Datadogのコンテナ
サイドカーとして配置するdatadog-agentコンテナはresources
を以下のようにしている。
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
EKS on Fargate
EKSで指定できる最小のvCPUは0.25なのでDatadogと合算して最小にするなら0.5vCPUとなる。