web-dev-qa-db-fra.com

Lorsqu'un pod ne peut pas être planifié, à quoi fait référence le 3 dans "CPU insuffisant (3)"?

Lorsque je crée un pod qui ne peut pas être planifié car il n'y a pas de nœuds avec suffisamment de CPU pour répondre à la demande de CPU du pod, les événements sortis de kubectl describe pod/... Contiennent un message comme No nodes are available that match all of the following predicates:: Insufficient cpu (3).

Que signifie le (3) Dans Insufficient cpu (3)?

Par exemple, si j'essaie de créer un pod qui demande 24 CPU alors que tous mes nœuds n'ont que 4 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).

À d'autres moments, j'ai vu des messages d'événement comme No nodes are available that match all of the following predicates:: Insufficient cpu (2), PodToleratesNodeTaints (1) lorsque les demandes de ressources d'un pod étaient trop élevées, donc le 3 ne semble pas être un nombre constant - ni ne semble lié à ma demande de 24 CPU.

15
matt b

Cela signifie que votre pod ne tient pas sur 3 nœuds en raison d'un processeur insuffisant et d'un nœud en raison de taints (probablement le maître).

12
Janos Lenart

Un pod ne peut pas être planifié lorsqu'il demande plus de CPU que vous n'en avez dans votre cluster. Par exemple, si vous avez 8 CPU Kubernetes (voir cette page pour calculer combien de processeurs kubernetes vous avez) au total et si vos pods existants ont déjà consommé autant de CPU alors vous ne pouvez pas planifier plus de pods sauf si certains de vos pods existants sont détruits au moment où vous demandez à planifier un nouveau pod. Voici une équation simple qui peut être suivie dans Horizontal Pod Autoscaler (HPA):

DEMANDE DE RESSOURCES CPU * HPA MAX PODS <= Total Kubernetes CPU

Vous pouvez toujours régler ces chiffres. Dans mon cas, j'ai ajusté le fichier mon manifeste pour le CPU RESOURCE REQUEST. Il peut être de 200 m ou 1000 m (= 1 kubernetes cpu).

3
Abu Shoeb