Créer un module complémentaire Amazon EKS - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créer un module complémentaire Amazon EKS

Les modules complémentaires Amazon EKS sont des logiciels complémentaires destinés aux clusters Amazon EKS. Tous les modules complémentaires Amazon EKS :

  • Inclure les derniers correctifs de sécurité et corrections de bogues.

  • Sont validés par AWS pour fonctionner avec Amazon EKS.

  • Réduire la charge de travail nécessaire à la gestion du logiciel complémentaire.

Vous pouvez créer un module complémentaire Amazon EKS à l'aide eksctl de l'interface de AWS Management Console ligne de commande ou de la AWS CLI. Si le module complémentaire nécessite un rôle IAM, consultez les détails du module complémentaire spécifique dans Amazon EKS add-ons pour plus d’informations sur la création du rôle.

Conditions préalables

Avant de créer un module complémentaire, procédez comme suit :

Procédure

Vous pouvez créer un module complémentaire Amazon EKS à l'aide eksctl de l'interface de AWS Management Console ligne de commande ou de la AWS CLI. Si le module complémentaire nécessite un rôle IAM, consultez les détails du module complémentaire spécifique dans Modules complémentaires Amazon EKS disponibles AWS pour plus d’informations sur la création du rôle.

Créer un module complémentaire (eksctl)

  1. Affichez les noms des modules complémentaires disponibles pour une version de cluster. Remplacez 1.33 par la version de votre cluster.

    eksctl utils describe-addon-versions --kubernetes-version 1.33 | grep AddonName

    L'exemple qui suit illustre un résultat.

    "AddonName": "aws-ebs-csi-driver", "AddonName": "coredns", "AddonName": "kube-proxy", "AddonName": "vpc-cni", "AddonName": "adot", "AddonName": "dynatrace_dynatrace-operator", "AddonName": "upbound_universal-crossplane", "AddonName": "teleport_teleport", "AddonName": "factorhouse_kpow", [...]
  2. Consultez les versions disponibles pour le module complémentaire que vous souhaitez créer. Remplacez 1.33 par la version de votre cluster. Remplacez name-of-addon par le nom du module complémentaire dont vous souhaitez afficher les versions. Le nom doit être l’un des noms renvoyés à l’étape précédente.

    eksctl utils describe-addon-versions --kubernetes-version 1.33 --name name-of-addon | grep AddonVersion

    La sortie suivante est un exemple de ce qui est renvoyé pour le module complémentaire nommé vpc-cni. Vous pouvez voir que le module complémentaire dispose de plusieurs versions disponibles.

    "AddonVersions": [ "AddonVersion": "v1.12.0-eksbuild.1", "AddonVersion": "v1.11.4-eksbuild.1", "AddonVersion": "v1.10.4-eksbuild.1", "AddonVersion": "v1.9.3-eksbuild.1",
    1. Déterminez si le module complémentaire que vous souhaitez créer est un module complémentaire Amazon EKS ou AWS Marketplace. The AWS Marketplace propose des modules complémentaires tiers qui vous obligent à effectuer des étapes supplémentaires pour créer le module complémentaire.

      eksctl utils describe-addon-versions --kubernetes-version 1.33 --name name-of-addon | grep ProductUrl

      Si aucune sortie n'est renvoyée, le module complémentaire est un module Amazon EKS. Si une sortie est renvoyée, le module complémentaire est un module complémentaire AWS Marketplace. La sortie suivante concerne un module complémentaire nommé teleport_teleport.

      "ProductUrl": "https://aws.amazon.com/marketplace/pp?sku=3bda70bb-566f-4976-806c-f96faef18b26"

      Vous pouvez en savoir plus sur le module complémentaire sur le AWS Marketplace avec l'URL renvoyée. Si le module complémentaire nécessite un abonnement, vous pouvez vous y abonner via le AWS Marketplace. Si vous souhaitez créer un module complémentaire depuis AWS Marketplace, le principal IAM que vous utilisez pour créer le module complémentaire doit être autorisé à créer le rôle lié à un AWSServiceRoleForAWSLicenseManagerRoleservice. Pour plus d'informations sur l'attribution d'autorisations à une entité IAM, consultez la rubrique Ajout et suppression d'autorisations basées sur l'identité IAM dans le Guide de l'utilisateur IAM.

  3. Créez un module complémentaire Amazon EKS. Copiez la commande et remplacez la commande user-data comme suit :

    • Remplacez my-cluster par le nom de votre cluster.

    • Remplacez name-of-addon par le nom du module complémentaire que vous souhaitez créer.

    • Si vous souhaitez une version du module complémentaire antérieure à la dernière version, remplacez-la latest par le numéro de version renvoyé dans le résultat de l'étape précédente que vous souhaitez utiliser.

    • Si le module complémentaire utilise un rôle de compte de service, remplacez 111122223333 par votre ID de compte et role-name par le nom du rôle. Pour obtenir des instructions sur la création d’un rôle pour votre compte de service, consultez la documentation relative au module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez AWS modules complémentaires. Pour spécifier un rôle de compte de service, vous devez disposer d’un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez Créer un fournisseur d'identité OIDC IAM pour votre cluster.

      Si le module complémentaire n’utilise pas de rôle de compte de service, supprimez --service-account-role-arn arn:aws: iam::111122223333:role/role-name.

    • Cet exemple de commande remplace la configuration de toute version autogérée existante du module complémentaire, le cas échéant. Si vous ne souhaitez pas remplacer la configuration d'un module complémentaire autogéré existant, supprimez l'--forceoption. Si vous supprimez cette option et que le module complémentaire doit remplacer la configuration d'un module complémentaire autogéré existant, la création du module complémentaire Amazon EKS échoue et vous recevez un message d'erreur pour vous aider à résoudre le conflit. Avant de spécifier cette option, assurez-vous que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer, car ces paramètres sont remplacés par cette option.

      eksctl create addon --cluster my-cluster --name name-of-addon --version latest \ --service-account-role-arn arn:aws: iam::111122223333:role/role-name --force

      Vous pouvez consulter la liste complète des options disponibles pour la commande.

      eksctl create addon --help

      Pour plus d'informations sur les options disponibles, consultez Modules complémentaires dans la documentation eksctl.

Créer un module complémentaire (AWS console)

  1. Ouvrez la console Amazon EKS.

  2. Dans le volet de navigation de gauche, choisissez Clusters.

  3. Choisissez le nom du cluster pour lequel vous souhaitez créer le module complémentaire.

  4. Choisissez l’onglet Modules complémentaires.

  5. Choisissez Obtenez plus de modules complémentaires.

  6. Sur la page Select add-ons (Sélectionner les modules complémentaires), choisissez les modules complémentaires que vous souhaitez ajouter à votre cluster. Vous pouvez ajouter autant de modules complémentaires Amazon EKS et de modules complémentaires AWS Marketplace que vous le souhaitez.

    Pour les modules complémentaires AWS Marketplace, le principal IAM que vous utilisez pour créer le module complémentaire doit être autorisé à lire les droits relatifs au module complémentaire depuis le. AWS LicenseManager AWS LicenseManager nécessite un rôle AWSServiceRoleForAWSLicenseManagerRolelié au service (SLR) qui permet aux AWS ressources de gérer les licences en votre nom. Le SLR est une exigence unique, par compte, et vous n’aurez pas à créer de SLR distincts pour chaque module complémentaire ou chaque cluster. Pour plus d'informations sur l'attribution d'autorisations à un principal IAM, consultez la rubrique Ajout et suppression d'autorisations basées sur l'identité IAM du Guide de l'utilisateur IAM.

    Si les modules complémentaires AWS Marketplace que vous souhaitez installer ne figurent pas dans la liste, vous pouvez cliquer sur la numérotation des pages pour afficher des résultats supplémentaires ou effectuer une recherche dans le champ de recherche. Dans les Options de filtrage, vous pouvez également filtrer par catégorie, fournisseur, ou modèle de tarification puis choisir les modules complémentaires dans les résultats de la recherche. Une fois que vous avez sélectionné les modules complémentaires que vous souhaitez installer, cliquez sur Suivant.

  7. Sur la page Configurer les paramètres des modules complémentaires sélectionnés, procédez comme suit :

    1. Choisissez Afficher les options d'abonnement pour ouvrir le formulaire des Options d'abonnement. Passez en revue les sections Détails de la tarification et Mentions légales, puis cliquez sur le bouton S'abonner pour continuer.

    2. Pour la version, choisissez celle que vous souhaitez installer. Nous recommandons la version marquée comme la plus récente, à moins que le module complémentaire que vous créez ne recommande une version différente. Pour déterminer si un module complémentaire dispose d’une version recommandée, consultez la documentation relative au module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez AWS modules complémentaires.

    3. Vous disposez de deux options pour configurer les rôles des modules complémentaires : le rôle IAM EKS Pod Identities et les rôles IAM pour les comptes de service (IRSA). Suivez l’étape appropriée ci-dessous pour l’option que vous préférez. Si tous les modules complémentaires que vous avez sélectionnés ont la mention Nécessite un abonnement sous Statut, sélectionnez Suivant. Vous ne pouvez pas configurer davantage ces modules complémentaires tant que vous ne vous y êtes pas abonné après la création de votre cluster. Pour les modules complémentaires qui n’ont pas la mention Abonnement requis sous Statut, procédez comme suit :

      1. Pour le rôle IAM d’identité du pod pour le compte de service, vous pouvez soit utiliser un rôle IAM d’identité du pod EKS existant, soit en créer un à l’aide du bouton Créer un rôle recommandé. Ce champ ne proposera que les options correspondant à la politique de confiance appropriée. Si aucun rôle n’est sélectionnable, cela signifie qu’aucun rôle existant ne correspond à la politique de confiance. Pour configurer un rôle IAM d’identité du pod EKS pour les comptes de service du module complémentaire sélectionné, choisissez Créer un rôle recommandé. L’assistant de création de rôle s’ouvre dans une fenêtre séparée. L’assistant remplira automatiquement les informations relatives au rôle comme suit. Pour chaque module complémentaire pour lequel vous souhaitez créer le rôle IAM d’identité du pod EKS, suivez les étapes de l’assistant IAM comme suit.

        • À l'étape Sélectionner une entité de confiance, l'option de AWS service pour EKS et le cas d'utilisation pour EKS - Pod Identity sont présélectionnés, et la politique de confiance appropriée sera automatiquement renseignée pour le module complémentaire. Par exemple, le rôle sera créé avec la politique de confiance appropriée contenant le principal IAM pods.eks.amazonaws.com, comme détaillé dans Avantages des identités du pod EKS. Choisissez Suivant.

        • À l’étape Ajouter des autorisations, la stratégie gérée appropriée pour la stratégie de rôle est présélectionnée pour le module complémentaire. Par exemple, pour le module complémentaire Amazon VPC CNI, le rôle sera créé avec la politique gérée AmazonEKS_CNI_Policy telle que détaillée dans Plug-in CNI Amazon VPC pour Kubernetes. Choisissez Suivant.

        • À l’étape Nom, révision et création, dans Nom du rôle, le nom de rôle par défaut est automatiquement renseigné pour le module complémentaire. Par exemple, pour le module complémentaire Amazon VPC CNI, le rôle sera créé sous le nom Amazon. EKSPod IdentityAmazon VPCCNIRole Dans Description, la description par défaut est automatiquement remplie avec la description appropriée pour le module complémentaire. Par exemple, pour le module complémentaire Amazon VPC CNI, le rôle sera créé avec la description Autorise les pods exécutés dans le cluster Amazon EKS à accéder aux ressources. AWS Dans la stratégie de confiance, affichez la stratégie de confiance renseignée pour le module complémentaire. Choisissez Créer un rôle.

          REMARQUE : Conserver le nom de rôle par défaut permet à EKS de présélectionner le rôle pour les modules complémentaires dans les nouveaux clusters ou lors de l’ajout de modules complémentaires à des clusters existants. Vous pouvez toujours remplacer ce nom et le rôle sera disponible pour le module complémentaire dans tous vos clusters, mais il devra être sélectionné manuellement dans le menu déroulant.

      2. Pour les modules complémentaires qui ne comportent pas la mention Abonnement requis sous Statut et pour lesquels vous souhaitez configurer des rôles à l’aide d’IRSA, consultez la documentation relative au module complémentaire que vous créez afin de créer une politique IAM et de l’associer à un rôle. Pour obtenir la liste des modules complémentaires, consultez AWS modules complémentaires. Pour sélectionner un rôle IAM, vous devez disposer d’un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez Créer un fournisseur d'identité OIDC IAM pour votre cluster.

      3. Sélectionnez Optional configuration settings (Paramètres de configuration facultatifs).

      4. Si le module complémentaire nécessite une configuration, saisissez-la dans la zone Configuration values (Valeurs de configuration). Pour déterminer si le module complémentaire nécessite des informations de configuration, consultez la documentation du module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez AWS modules complémentaires.

      5. Choisissez l’une des options disponibles pour la méthode de résolution des conflits. Si vous sélectionnez Remplacer comme méthode de résolution des conflits, un ou plusieurs paramètres du module complémentaire existant peuvent être remplacés par les paramètres du module complémentaire Amazon EKS. Si vous n’activez pas cette option et qu’il y a un conflit avec vos paramètres existants, l’opération échoue. Vous pouvez utiliser le message d'erreur qui en résulte pour résoudre le conflit. Avant de sélectionner cette option, assurez-vous que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer vous-même.

      6. Si vous souhaitez installer le module complémentaire dans un espace de noms spécifique, saisissez-le dans le champ Espace de noms. Pour les modules complémentaires communautaires AWS et ceux de la communauté, vous pouvez définir un espace de noms Kubernetes personnalisé dans lequel installer le module complémentaire. Pour de plus amples informations, veuillez consulter Espace de noms personnalisé pour les modules complémentaires.

      7. Choisissez Suivant.

  8. Sur la page Vérifier et ajouter, choisissez Créer. Une fois l'installation des modules complémentaire terminée, vous pouvez voir les modules complémentaires installés.

  9. Si l'un des modules complémentaires que vous avez installés nécessite un abonnement, procédez comme suit :

    1. Cliquez sur le bouton Subscribe (S'abonner) dans le coin inférieur droit du module complémentaire. Vous êtes redirigé vers la page du module complémentaire AWS sur le Marketplace. Lisez les informations relatives au module complémentaire, telles que Product Overview (Présentation du produit) et Pricing Information (Informations sur la tarification).

    2. Cliquez sur le bouton Continue to Subscribe (Continuer pour s'abonner) en haut à droite de la page du module complémentaire.

    3. Lisez les Conditions générales. Si vous les acceptez, sélectionnez Accept Terms (Accepter les conditions). Le traitement de l'abonnement peut prendre plusieurs minutes. Pendant le traitement de l'abonnement, le bouton Return to Amazon EKS Console (Retourner à la console Amazon EKS) est grisé.

    4. Une fois le traitement de l'abonnement terminé, le bouton Return to Amazon EKS Console (Retourner à la console Amazon EKS) n'est plus grisé. Cliquez sur le bouton pour revenir à l'onglet Add-ons (Modules complémentaires) de la console Amazon EKS pour votre cluster.

    5. Pour le module complémentaire auquel vous êtes abonné, sélectionnez Remove and reinstall (Supprimer et réinstaller), puis Reinstall add-on (Réinstaller le module complémentaire). L'installation du module complémentaire peut prendre plusieurs minutes. Une fois l'installation terminée, vous pouvez configurer le module complémentaire.

Créer un module complémentaire (AWS CLI)

  1. Vous avez besoin d'2.12.3une version ou d'une version ultérieure 1.27.160 ou d'une version ultérieure de l'interface de ligne de AWS commande (AWS CLI) installée et configurée sur votre appareil ou AWS CloudShell. Pour vérifier votre version actuelle, utilisez aws --version | cut -d / -f2 | cut -d ' ' -f1. Les gestionnaires de packages tels que yum Homebrew pour macOS ont souvent plusieurs versions de retard sur la dernière version de la AWS CLI. apt-get Pour installer la dernière version, consultez la section Installation et configuration rapide avec aws configure dans le Guide de l'utilisateur de l'interface de ligne de AWS commande. La version de la AWS CLI installée AWS CloudShell peut également avoir plusieurs versions de retard par rapport à la dernière version. Pour le mettre à jour, consultez la section Installation de la AWS CLI dans votre répertoire de base dans le guide de AWS CloudShell l'utilisateur.

  2. Déterminez quels modules complémentaires sont disponibles. Vous pouvez voir tous les modules complémentaires disponibles, leur type et leur éditeur. Vous pouvez également consulter l'URL des modules complémentaires disponibles AWS sur le Marketplace. Remplacez 1.33 par la version de votre cluster.

    aws eks describe-addon-versions --kubernetes-version 1.33 \ --query 'addons[].{MarketplaceProductUrl: marketplaceInformation.productUrl, Name: addonName, Owner: owner Publisher: publisher, Type: type}' --output table

    L'exemple qui suit illustre un résultat.

    --------------------------------------------------------------------------------------------------------------------------------------------------------- | DescribeAddonVersions | +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+ | MarketplaceProductUrl | Name | Owner | Publisher | Type | +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+ | None | aws-ebs-csi-driver | aws | eks | storage | | None | coredns | aws | eks | networking | | None | kube-proxy | aws | eks | networking | | None | vpc-cni | aws | eks | networking | | None | adot | aws | eks | observability | | https://aws.amazon.com/marketplace/pp/prodview-brb73nceicv7u | dynatrace_dynatrace-operator | aws-marketplace | dynatrace | monitoring | | https://aws.amazon.com/marketplace/pp/prodview-uhc2iwi5xysoc | upbound_universal-crossplane | aws-marketplace | upbound | infra-management | | https://aws.amazon.com/marketplace/pp/prodview-hd2ydsrgqy4li | teleport_teleport | aws-marketplace | teleport | policy-management | | https://aws.amazon.com/marketplace/pp/prodview-vgghgqdsplhvc | factorhouse_kpow | aws-marketplace | factorhouse | monitoring | | [...] | [...] | [...] | [...] | [...] | +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+

    Votre sortie peut être différente. Dans cet exemple de sortie, trois modules complémentaires différents sont disponibles par type networking et cinq modules complémentaires avec un éditeur de type eks. Les modules complémentaires aws-marketplace figurant dans la colonne Owner peuvent nécessiter un abonnement avant de pouvoir être installés. Vous pouvez consulter l'URL pour en savoir plus sur le module complémentaire et vous y abonner.

  3. Vous pouvez voir quelles versions sont disponibles pour chaque module complémentaire. Remplacez 1.33 par la version de votre cluster et remplacez vpc-cni par le nom d'un module complémentaire renvoyé à l'étape précédente.

    aws eks describe-addon-versions --kubernetes-version 1.33 --addon-name vpc-cni \ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table

    L'exemple qui suit illustre un résultat.

    ------------------------------------------ | DescribeAddonVersions | +-----------------+----------------------+ | Defaultversion | Version | +-----------------+----------------------+ | False | v1.12.0-eksbuild.1 | | True | v1.11.4-eksbuild.1 | | False | v1.10.4-eksbuild.1 | | False | v1.9.3-eksbuild.1 | +-----------------+----------------------+

    La version avec True dans la colonne Defaultversion correspond à la version avec laquelle le module complémentaire est créé, par défaut.

  4. (Facultatif) Recherchez les options de configuration du module complémentaire de votre choix en exécutant la commande suivante :

    aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.12.0-eksbuild.1
    { "addonName": "vpc-cni", "addonVersion": "v1.12.0-eksbuild.1", "configurationSchema": "{\"$ref\":\"#/definitions/VpcCni\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Cri\":{\"additionalProperties\":false,\"properties\":{\"hostPath\":{\"$ref\":\"#/definitions/HostPath\"}},\"title\":\"Cri\",\"type\":\"object\"},\"Env\":{\"additionalProperties\":false,\"properties\":{\"ADDITIONAL_ENI_TAGS\":{\"type\":\"string\"},\"AWS_VPC_CNI_NODE_PORT_SUPPORT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_ENI_MTU\":{\"format\":\"integer\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CONFIGURE_RPFILTER\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOGLEVEL\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_RANDOMIZESNAT\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_VETHPREFIX\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_LEVEL\":{\"type\":\"string\"},\"DISABLE_INTROSPECTION\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_METRICS\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_NETWORK_RESOURCE_PROVISIONING\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_POD_ENI\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_PREFIX_DELEGATION\":{\"format\":\"boolean\",\"type\":\"string\"},\"WARM_ENI_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_PREFIX_TARGET\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"Env\",\"type\":\"object\"},\"HostPath\":{\"additionalProperties\":false,\"properties\":{\"path\":{\"type\":\"string\"}},\"title\":\"HostPath\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"},\"VpcCni\":{\"additionalProperties\":false,\"properties\":{\"cri\":{\"$ref\":\"#/definitions/Cri\"},\"env\":{\"$ref\":\"#/definitions/Env\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"}},\"title\":\"VpcCni\",\"type\":\"object\"}}}" }

    La sortie correspond à un schéma JSON standard.

    Voici un exemple de valeurs de configuration valides, au format JSON, fonctionnant avec le schéma ci-dessus.

    { "resources": { "limits": { "cpu": "100m" } } }

    Voici un exemple de valeurs de configuration valides, au format YAML, fonctionnant avec le schéma ci-dessus.

    resources: limits: cpu: 100m
  5. Déterminez si le module complémentaire nécessite des autorisations IAM. Si tel est le cas, vous devez (1) déterminer si vous souhaitez utiliser les identités de pod EKS ou les rôles IAM pour les comptes de service (IRSA), (2) déterminer l’ARN du rôle IAM à utiliser avec le module complémentaire et (3) déterminer le nom du compte de service Kubernetes utilisé par le module complémentaire. Pour de plus amples informations, veuillez consulter Récupérer les informations IAM sur un module complémentaire Amazon EKS.

    • Amazon EKS recommande d’utiliser les identités de pod EKS si le module complémentaire le prend en charge. Pour cela, l’agent d’identité du pod doit être installé sur votre cluster. Pour plus d’informations sur l’utilisation des identités de pod avec les modules complémentaires, consultez Rôles IAM pour les modules complémentaires Amazon EKS.

    • Si le module complémentaire ou votre cluster n’est pas configuré pour les identités de pod EKS, utilisez IRSA. Vérifiez que l’IRSA est configuré sur votre cluster.

    • Consultez la documentation relative aux modules complémentaires Amazon EKS afin de déterminer si le module complémentaire nécessite des autorisations IAM et le nom du compte de service Kubernetes associé.

      1. Créez un module complémentaire Amazon EKS. Copiez la commande qui suit sur votre appareil. Si nécessaire, apportez les modifications suivantes à la commande, puis exécutez la commande modifiée :

    • Remplacez my-cluster par le nom de votre cluster.

    • Remplacez vpc-cni par un nom de module complémentaire renvoyé dans le résultat de l'étape précédente que vous souhaitez créer.

    • Remplacez version-number par la version renvoyée dans le résultat de l'étape précédente que vous souhaitez utiliser.

    • Si vous souhaitez installer le module complémentaire dans un espace de noms Kubernetes personnalisé, ajoutez l’option --namespace-config 'namespace=<my-namespace>. Cette option n'est disponible que pour AWS les modules complémentaires communautaires. Pour de plus amples informations, consultez Espace de noms personnalisé pour les modules complémentaires.

    • Si le module complémentaire ne nécessite pas d'autorisations IAM, <service-account-configuration> supprimez-le.

    • Effectuez l’une des actions suivantes :

      • Si le module complémentaire (1) nécessite des autorisations IAM et (2) votre cluster utilise EKS Pod Identities, remplacez-le par <service-account-configuration> l'association d'identité de pod suivante. <service-account-name>Remplacez-le par le nom du compte de service utilisé par le module complémentaire. Remplacez <role-arn> par l'ARN d'un rôle IAM. Le rôle doit disposer de la politique de confiance requise par les identités EKS Pod.

        --pod-identity-associations 'serviceAccount=<service-account-name>,roleArn=<role-arn>'
      • Si le module complémentaire (1) nécessite des autorisations IAM et (2) votre cluster utilise IRSA, remplacez-le <service-account-configuration> par la configuration IRSA suivante. 111122223333Remplacez-le par votre identifiant de compte et role-name par le nom d'un rôle IAM existant que vous avez créé. Pour obtenir des instructions sur la création d’un rôle, consultez la documentation du module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez AWS modules complémentaires. Pour spécifier un rôle de compte de service, vous devez disposer d’un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez Créer un fournisseur d'identité OIDC IAM pour votre cluster.

        --service-account-role-arn arn:aws::iam::111122223333:role/role-name
    • Cet exemple de commande remplace l'option --configuration-values de toute version autogérée existante du module complémentaire, le cas échéant. Remplacez cela par les valeurs de configuration souhaitées, telles qu'une chaîne ou une entrée de fichier. Si vous ne voulez pas fournir de valeurs de configuration, supprimez l’option --configuration-values. Si vous ne souhaitez pas que la AWS CLI remplace la configuration d'un module complémentaire autogéré existant, supprimez l'--resolve-conflicts OVERWRITEoption. Si vous supprimez cette option et que le module complémentaire doit remplacer la configuration d'un module complémentaire autogéré existant, la création du module complémentaire Amazon EKS échoue et vous recevez un message d'erreur pour vous aider à résoudre le conflit. Avant de spécifier cette option, assurez-vous que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer, car ces paramètres sont remplacés par cette option.

      aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ <service-account-configuration> --configuration-values '{"resources":{"limits":{"cpu":"100m"}}}' --resolve-conflicts OVERWRITE
      aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ <service-account-configuration> --configuration-values 'file://example.yaml' --resolve-conflicts OVERWRITE

      Pour la liste complète des options disponibles, consultez create-addon dans la référence des lignes de commande Amazon EKS. Si le module complémentaire que vous avez créé possède aws-marketplace listé dans la colonne Owner d’une étape précédente, la création peut échouer et vous pouvez recevoir un message d’erreur similaire à l’erreur suivante.

      { "addon": { "addonName": "addon-name", "clusterName": "my-cluster", "status": "CREATE_FAILED", "addonVersion": "version", "health": { "issues": [ { "code": "AddonSubscriptionNeeded", "message": "You are currently not subscribed to this add-on. To subscribe, visit the AWS Marketplace console, agree to the seller EULA, select the pricing type if required, then re-install the add-on" } ] } } }

      Si vous recevez une erreur similaire à celle de la sortie précédente, consultez l'URL figurant dans la sortie d'une étape précédente pour vous abonner au module complémentaire. Une fois abonné, exécutez à nouveau la commande create-addon.