web-dev-qa-db-fra.com

AWS Eks 0/1 Les nœuds sont disponibles. 1 pods insuffisants

Nous essayons de déployer un service d'API Net Net Net à Amazon EKS en utilisant ECR. Le déploiement a réussi, mais les pods sont en attente de statut. Vous trouverez ci-dessous les étapes détaillées que nous avons suivies.

Étapes suivies. 1. Création d'une image Docker 2. poussé l'image sur ECR. L'image est maintenant visible dans AWS Console également. // L'image a l'air bien, j'ai pu l'exécuter à l'aide de mon docker localement.

  1. Création d'un cluster T2-Micro comme ci-dessous Eksctl Créer un cluster --Name Net-Core-Prod -Version 1.14 --Region US-West-2 - Nom -nométrice-Nom-Standard-Ordinateurs --Node Type T2.Micro --Nodes 1 --Nodes-min 1 --Nodes-max 1 -Managé // Cluster et Node Les groupes ont été créés avec succès. // Les rôles IAM ont également été créés

  2. Déployé un contrôleur de réplication à l'aide du JSON/YAML // NET-APP.JON // NET-APL.JON - enter image description here

  3. Déployé le service à l'aide du JSON joint/YAML //NET-APP-SCV.JON - enter image description here
  4. La commande get to to to TOW a-t-elle renvoyé. //get_all.png get all POD reste toujours en attente en attente.

  5. POD décrit a donné le résultat ci-dessous //descript_pod.png describe pod

  6. Nous avons également essayé d'ajouter une politique au rôle de Cluster IAM à inclure les autorisations de la CER attachées. //Ecr_policy.json

Points clés:
1. Nous utilisons un cluster T2-Micro Instance car il s'agit d'un compte AWS GRATUIT.
[.____] 2. Nous avons créé un cluster Linux et essayé de pousser l'application Core Dotnet. // cela a fonctionné bien dans notre machine locale
3. Le cluster n'avait que 1 nœud // - nœuds 1 --Nodes-min 1 --Nodes-max 1

Quelqu'un peut-il s'il vous plaît nous guider sur la façon de la configurer correctement.

8
snehgin

MISE À JOUR: J'ai essayé d'augmenter le nombre de nœuds à 6 et cela fonctionne maintenant.

4 pods de système Kube étaient déjà programmés et donnez donc un essai de l'augmentation de 6.

Je ne suis pas bon chez Kubes, c'est juste un résultat d'essai et d'erreur.

Ce sera vraiment utile, si une personne expérimentée peut avoir une lumière sur la façon dont cela fonctionne.

0
snehgin

La question est que vous utilisez t2.micro. Au minimum t2.small est requis. Le planificateur n'est pas capable de planifier la nœud sur le nœud, car il n'est pas assez de capacité disponible sur le t2.micro exemple. La plupart des capacités sont déjà prises par les ressources système. Utilisation t2.small Au minimum.

3
Rajesh Gupta

Sur le service d'Amazon élastique Kubetestes (EKS), le nombre maximum de gousses par nœud dépend du type de nœud et des plages de 4 à 737.

Si vous atteignez la limite maximale, vous verrez quelque chose comme:

❯ kubectl get node -o yaml | grep pods
      pods: "17" => this is allocatable pods that can be allocated in node
      pods: "17" => this is how many running pods you have created

Si vous n'obtenez qu'un numéro, il devrait être alloué. Une autre façon de compter tous les gousses d'exécution consiste à exécuter la commande suivante:

kubectl get pods --all-namespaces | grep Running | wc -l

Voici la liste des pods max par type de noeud: https://github.com/awslabs/amazon-eks-ami/blob/master/files/eni-max-pods.txt

Sur Google Kubettes Engine (GKE), la limite est de 110 pods par nœud. Vérifiez l'URL suivante:

https://github.com/kubernettes/community/blob/master/sig-scalability/configs-and-limit/thresholds.md

Sur Azure KubeTes Service (AKS), la limite par défaut est de 30 pods par nœud, mais il peut être augmenté jusqu'à 250. Le nombre maximum de gousses par défaut par nœud varie entre Kubenet et Azure CNI Networking, et la méthode de déploiement de grappes. Vérifiez l'URL suivante pour plus d'informations:

https://docs.microsoft.com/en-us/azure/aks/configure-azure-cni#maximum-pods-Per-node

0
Muhammad Soliman

La POD n'a pas été programmée.

Le problème pourrait être avec la configuration du nœud.

partagez la sortie des commandes ci-dessous pour identifier la cause première

1.  kubectl describe node <node-name>
2.  kubectl describe pod <pod-name>
3.  kubectl get ev

Il y a une limite de combien de gousses vous pouvez exécuter par nœud (quelles que soient les ressources), vous frappez cette limite. Vous pouvez trouver cette limite dans la sortie de Kubectl Obtenir le nœud -o Yaml

De la sortie du nœud, il est clair que vous avez atteint la limite des gousses par nœud. Vérifiez la capacité VS allouée pour les pods. Les deux montrent que le nombre a 4.

Résolution: Vous devez ajouter un noeud supplémentaire au cluster pour pouvoir déployer une charge de travail supplémentaire.

0
P Ekambaram