Comment résoudre les erreurs de création de cluster dans Amazon EKS ?

Date de la dernière mise à jour : 12/02/2020

Je reçois des erreurs de service lorsque je mets en service un cluster Amazon Elastic Kubernetes Service (Amazon EKS) à l'aide d'AWS CloudFormation ou eksctl.

Brève description

Considérez les options de résolution suivantes :

  • Si vous recevez un message d'erreur indiquant que votre zone de disponibilité ciblée n'a pas une capacité suffisante pour prendre en charge le cluster, suivez les étapes décrites dans la section Recréer le cluster dans une zone de disponibilité différente.
  • Si vous recevez un message d'erreur indiquant que la création des ressources a échoué, suivez les étapes de la section Confirmer que vous disposez des autorisations IAM correctes pour créer un cluster ou de la section Surveiller vos ressources Amazon VPC.
  • Si vous recevez un message d'erreur indiquant que la création a expiré en attendant les nœuds de travail, suivez les étapes de la section Confirmer que vos nœuds de travail peuvent atteindre le point de terminaison de l'API du plan de contrôle.

Résolution

Recréer le cluster dans une autre zone de disponibilité

Si vous lancez des instances de plan de contrôle dans une zone de disponibilité avec une capacité limitée, vous pouvez recevoir une erreur similaire à celle-ci :

Cannot create cluster 'sample-cluster' because us-east-1d, the targeted availability zone, does not currently have sufficient capacity to support the cluster. Retry and choose from these availability zones: us-east-1a, us-east-1b, us-east-1c

Pour résoudre cette erreur, créez à nouveau le cluster à l'aide des zones de disponibilité recommandées à partir du message d'erreur.

Si vous mettez en service le cluster à l'aide d'AWS CloudFormation, transmettez des valeurs pour le paramètre Subnets (Sous-réseaux) pour les sous-réseaux qui correspondent aux zones de disponibilité.

--ou--

Si vous utilisez eksctl, utilisez l'indicateur -zones pour transmettre les valeurs des différentes zones de disponibilité. Par exemple, si vous recevez l'erreur précédente, exécutez la commande suivante :

$ eksctl create cluster 'sample-cluster' --zones us-east-1a,us-east-1b,us-east-1c

Remarque : remplacez sample-cluster par le nom de votre cluster. Remplacez us-east-1a, us-east-1b et us-east-1c par vos zones de disponibilité.

Confirmer que vous disposez des autorisations IAM appropriées pour créer un cluster

Vérifiez que vous disposez des autorisations AWS Identity and Access Management (IAM) appropriées lorsque vous créez un cluster, y compris les stratégies appropriées pour le rôle IAM du service Amazon EKS.

Vous pouvez utiliser eksctl pour créer les ressources prérequises pour votre cluster, telles que les rôles IAM et les groupes de sécurité. Les autorisations minimales requises dépendent de la configuration eksctl que vous lancez. Pour plus d'informations, consultez les solutions de résolution des problèmes de la communauté GitHub eksctl.

Si des problèmes d’autorisations IAM surviennent avec votre cluster, vous pouvez recevoir une erreur similaire à celle qui suit dans eksctl :

API: iam:CreateRole User: arn:aws:iam::your-account-id:user/your-user-name is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::your-account-id:role/eksctl-newtest22-cluster-ServiceRole-10NXBYLSN4ULP

Astuce : pour lire un message d'erreur plus facilement, examinez l'erreur dans la console AWS CloudFormation.

Pour résoudre l'erreur, consultez les directives IAM pour Amazon EKS ou résolvez les problèmes des stratégies IAM associées à votre utilisateur ou rôle.

Surveiller vos ressources Amazon VPC

Par défaut, eksctl crée un Amazon Virtual Private Cloud (Amazon VPC) lorsque vous créez un cluster, sauf si vous spécifiez vos propres Amazon VPC et sous-réseaux personnalisés dans le fichier de configuration.

Si votre cluster a des problèmes avec votre nombre limite d’Amazon VPC, vous pouvez recevoir le message d'erreur suivant :

The maximum number of VPCs has been reached. (Service: AmazonEC2; Status Code: 400; Error Code: VpcLimitExceeded; Request ID: a12b34cd-567e-890-123f-ghi4j56k7lmn)

Pour résoudre cette erreur, surveillez vos ressources, telles que le nombre d'Amazon VPC dans votre région AWS ou les passerelles Internet par région où vous créez le cluster. Pour plus d'informations, consultez Quotas Amazon VPC.

Si vous avez un problème concernant les contraintes de ressources sur le nombre de ressources Amazon VPC dans votre région, envisagez l'une des options suivantes :

(Option 1) Utiliser un Amazon VPC existant pour surmonter les contraintes de ressources

Pour créer un fichier de configuration qui spécifie le VPC et les sous-réseaux dans lesquels vous souhaitez que les nœuds de travail de votre cluster soient mis en service, exécutez la commande suivante :

$ eksctl create cluster sample-cluster -f cluster.yaml

--ou--

(Option 2) Demander une augmentation du quota de service pour surmonter les contraintes de ressources

Demandez une augmentation du quota de service sur les ressources qui font office de goulot d'étranglement dans les événements de pile AWS CloudFormation du cluster mis en service par eksctl.

Confirmer que vos nœuds de travail peuvent atteindre le point de terminaison de l'API du plan de contrôle

Lorsque eksctl déploie votre cluster, il attend que les nœuds de travail qui sont lancés rejoignent le cluster et atteignent le statut Ready (Prêt). Si vos nœuds de travail ne parviennent pas à atteindre le plan de contrôle ou ont un rôle IAM non valide, vous pouvez recevoir l'erreur suivante :

timed out (after 25m0s) waiting for at least 4 nodes to join the cluster and become ready in "eksfbots-ng1"

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?