ポッドのCPU要求を満たすのに十分なCPUを備えたノードがないため、スケジュールできないポッドを作成すると、_kubectl describe pod/...
_から出力されるイベントにはNo nodes are available that match all of the following predicates:: Insufficient cpu (3)
のようなメッセージが含まれます。
Insufficient cpu (3)
の_(3)
_はどういう意味ですか?
たとえば、すべてのノードに4つのCPUしかない場合に24 CPUを要求するポッドを作成しようとすると、次のようになります。
_$ kubectl describe pod/large-cpu-request
Name: large-cpu-request
Namespace: default
Node: /
Labels: <none>
Annotations: <none>
Status: Pending
IP:
Controllers: <none>
Containers:
cpuhog:
...
Requests:
cpu: 24
...
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
23m 30s 84 default-scheduler Warning FailedScheduling No nodes are available that match all of the following predicates:: Insufficient cpu (3).
_
また、ポッドのリソースリクエストが高すぎるときにNo nodes are available that match all of the following predicates:: Insufficient cpu (2), PodToleratesNodeTaints (1)
のようなイベントメッセージを見たことがあります。そのため、3は一定の数字ではなく、24のCPUリクエストにも関連していません。
これは、CPUが不十分なためにポッドが3つのノードに収まらず、 taints (おそらくマスター)が原因で1つのノードに収まらないことを意味します。
ポッドは、クラスター内にあるよりも多くのCPUを要求する場合はスケジュールできません。たとえば、合計8つのKubernetes CPUがある場合( このページ を参照して、所有しているKubernetes CPUの数を計算します)、既存のポッドがすでにそのCPUを消費している場合、それ以上ポッドをスケジュールすることはできません新しいポッドのスケジュールをリクエストするまでに既存のポッドの一部が削除されない限り。水平ポッドオートスケーラー(HPA)で従うことができる簡単な方程式を次に示します。
リソース要求CPU * HPA MAX PODS <= Total Kubernetes CPU
これらの数値はいつでも調整できます。私の場合、 my manifest RESOURCE REQUEST CPUのファイルを調整しました。 200mまたは1000m(= 1 kubernetes cpu)にすることができます。