J'essaie de créer un déploiement sur un cluster K8 avec un nœud principal et deux nœuds de travail. Le cluster s'exécute sur 3 instances AWS EC2. J'utilise cet environnement depuis quelque temps pour jouer avec Kubernetes. Il y a trois jours, j'ai commencé à voir l'état de tous les pods passer de ContainerCreating
à Running
. Seuls les modules programmés sur le maître sont affichés sous la forme Running
. Les pods s'exécutant sur des nœuds de travail sont représentés par ContainerCreating
. Quand je lance kubectl describe pod <podname>
, il montre dans l’événement ce qui suit
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 34s default-scheduler Successfully assigned nginx-8586cf59-5h2dp to ip-172-31-20-57
Normal SuccessfulMountVolume 34s kubelet, ip-172-31-20-57 MountVolume.SetUp succeeded for volume "default-token-wz7rs"
Warning FailedCreatePodSandBox 4s kubelet, ip-172-31-20-57 Failed create pod sandbox.
Normal SandboxChanged 3s kubelet, ip-172-31-20-57 Pod sandbox changed, it will be killed and re-created.
Cette erreur me dérange maintenant. J'ai essayé de rechercher en ligne sur erreur liée mais je ne pouvais rien obtenir de spécifique. J'ai fait la réinitialisation de kubeadm sur le cluster, y compris les nœuds maître et de travail, et j'ai à nouveau lancé le cluster. Le statut des noeuds indique Prêt. Mais je rencontre à nouveau le même problème chaque fois que j'essaie de créer un déploiement à l'aide de la commande ci-dessous, par exemple:
kubectl run nginx --image=nginx --replicas=2
Cela peut se produire si vous spécifiez une limite ou une demande en mémoire et utilisez la mauvaise unité.
Ci-dessous déclenché le message:
resources:
limits:
cpu: "300m"
memory: "256m"
requests:
cpu: "50m"
memory: "64m"
La ligne correcte serait:
resources:
limits:
cpu: "300m"
memory: "256Mi"
requests:
cpu: "50m"
memory: "64Mi"
C'est peut-être quelqu'un d'autre, mais j'ai passé un week-end là-dessus jusqu'à ce que je remarque que j'avais demandé 1000 mem, avec 1000Mi ...
Je lance K8s sur quelques gouttelettes de DO et je suis resté bloqué sur cette question. Aucune autre information n'a été donnée - juste la FailedCreatePodSandBox
se plaindre d'un fichier que je n'avais jamais vu auparavant.
J'ai passé beaucoup de temps à essayer de comprendre - la seule chose qui résolve le problème pour moi était de redémarrer mon maître et chaque noeud dans leur intégralité. Cela a tout fait instantanément.
Sudo shutdown -r now