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

Dernière mise à jour : 26/08/2022

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 :

  • Vous recevez un message d'erreur indiquant que votre zone de disponibilité ciblée ne dispose pas d'une capacité suffisante pour prendre en charge le cluster. Suivez les étapes de la section Recréer le cluster dans une autre zone de disponibilité.
  • Vous recevez un message d'erreur indiquant que la création de la ressource 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.
  • Vous recevez un message d'erreur indiquant que le délai de création a expiré lors de l'attente des composants masters. Suivez les étapes de la section Confirmer que vos composants masters peuvent atteindre le point de terminaison de l'API du plan de contrôle.

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é dont la capacité est limitée, vous pouvez recevoir une erreur similaire à la suivante :

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 l'erreur précédente, créez à nouveau le cluster en utilisant les zones de disponibilité recommandées dans le message d'erreur.

Si vous provisionnez le cluster à l'aide de CloudFormation, ajoutez dans le paramètre Sous-réseaux des valeurs de sous-réseau 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 :

$ 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

Lorsque vous créez un cluster, vérifiez que vous disposez des autorisations AWS Identity and Access Management (IAM) correctes. Cela inclut les politiques correctes 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 dépannage de la communauté GitHub eksctl.

Si votre cluster rencontre des problèmes avec les autorisations IAM, vous pouvez recevoir une erreur similaire à la suivante 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

Surveiller vos ressources Amazon VPC

Lorsque vous créez un cluster, eksctl crée un nouveau Amazon Virtual Private Cloud (Amazon VPC) par défaut. Si vous ne souhaitez pas qu'eksctl crée un nouveau Amazon VPC, vous devez spécifier votre Amazon VPC personnalisé et vos sous-réseaux 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 l'erreur précédente, surveillez vos ressources. Par exemple, vérifiez le nombre de VPC Amazon dans votre région AWS ou les passerelles Internet par région dans laquelle vous créez le cluster. Pour plus d'informations, consultez Quotas Amazon VPC.

Pour les problèmes liés aux 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

Créez un fichier de configuration qui spécifie l'Amazon VPC et les sous-réseaux sur lesquels vous souhaitez provisionner les composants masters de travail de votre cluster :

$ 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 pour les ressources des événements de pile CloudFormation du cluster provisionné par eksctl.

Confirmer que composants masters 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 composants masters qui sont lancés rejoignent le cluster et atteignent le statut Ready (Prêt). Si vos composants masters 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 ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?