

 **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.

# Installez le contrôleur AWS Load Balancer avec Helm
<a name="lbc-helm"></a>

**Astuce**  
 [Inscrivez-vous](https://aws-experience.com/emea/smb/events/series/get-hands-on-with-amazon-eks?trk=4a9b4147-2490-4c63-bc9f-f8a84b122c8c&sc_channel=el) aux prochains ateliers Amazon EKS.

**Astuce**  
Avec le mode automatique Amazon EKS, il n’est pas nécessaire d’installer ou de mettre à niveau de modules complémentaires de mise en réseau. Le mode automatique inclut des fonctionnalités de mise en réseau des pods et d’équilibrage de charge.  
Pour de plus amples informations, veuillez consulter [Automatisation de l’infrastructure du cluster avec le mode automatique EKS](automode.md).

Cette rubrique décrit comment installer le AWS Load Balancer Controller à l'aide de Helm, un gestionnaire de packages pour Kubernetes, et. `eksctl` Le contrôleur est installé avec les options par défaut. Pour plus d'informations sur le contrôleur, notamment sur sa configuration à l'aide d'annotations, consultez la documentation du [contrôleur AWS Load Balancer](https://kubernetes-sigs.github.io/aws-load-balancer-controller/) sur. GitHub

Dans les étapes suivantes, remplacez les valeurs d’exemple par vos propres valeurs.

## Conditions préalables
<a name="lbc-prereqs"></a>

Avant de commencer ce tutoriel, vous devez suivre les étapes suivantes :
+ Créez un cluster Amazon EKS. Pour en créer un, consultez [Mise en route avec Amazon EKS](getting-started.md).
+ Installez [Helm](https://helm.sh/docs/helm/helm_install/) sur votre machine locale.
+ Assurez-vous que votre plug-in Amazon VPC CNI pour Kubernetes, `kube-proxy`, et les modules complémentaires CoreDNS sont au minimum aux versions indiquées dans les [jetons de compte de service](service-accounts.md#boundserviceaccounttoken-validated-add-on-versions).
+ Découvrez les concepts d' AWS Elastic Load Balancing. Pour plus d'informations, consultez le [Guide de l'utilisateur Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/).
+ Découvrez les ressources Kubernetes [Service](https://kubernetes.io/docs/concepts/services-networking/service/) et [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/).

### Considérations
<a name="lbc-considerations"></a>

Avant de procéder aux étapes de configuration décrites sur cette page, tenez compte des points suivants :
+ La politique et le rôle IAM (`AmazonEKSLoadBalancerControllerRole`) peuvent être réutilisés sur plusieurs clusters EKS du même AWS compte.
+ Si vous installez le contrôleur sur le même cluster où le rôle (`AmazonEKSLoadBalancerControllerRole`) a été créé à l’origine, passez à [l’étape 2 : installer le contrôleur d’équilibreur de charge](#lbc-helm-install) après avoir vérifié que le rôle existe.
+ Si vous utilisez les rôles IAM pour les comptes de service (IRSA), IRSA doit être configuré pour chaque cluster, et l’ARN du fournisseur OpenID Connect (OIDC) dans la politique de confiance du rôle est spécifique à chaque cluster EKS. De plus, si vous installez le contrôleur sur un nouveau cluster avec un `AmazonEKSLoadBalancerControllerRole` existant, mettez à jour la politique de confiance du rôle afin d’inclure le fournisseur OIDC du nouveau cluster et créez un nouveau compte de service avec l’annotation de rôle appropriée. Pour déterminer si vous disposez déjà d’un fournisseur OIDC ou pour en créer un, consultez [Créer un fournisseur d'identité OIDC IAM pour votre cluster](enable-iam-roles-for-service-accounts.md).

## Étape 1 : créer un rôle IAM à l’aide d’`eksctl`
<a name="lbc-helm-iam"></a>

Les étapes suivantes font référence à la **version 2.14.1** du AWS Load Balancer Controller. Pour plus d'informations sur toutes les versions, consultez la [page de mise à jour du AWS Load Balancer Controller](https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/) sur. GitHub

1. Téléchargez une politique IAM pour le AWS Load Balancer Controller qui lui permet de passer des appels en votre AWS APIs nom.

   ```
   curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.14.1/docs/install/iam_policy.json
   ```
   + Si vous êtes une AWS partition non standard, telle qu'une région gouvernementale ou chinoise, [consultez les politiques GitHub](https://github.com/kubernetes-sigs/aws-load-balancer-controller/tree/main/docs/install) et téléchargez la politique appropriée pour votre région.

1. Créez une politique IAM à l'aide de la politique téléchargée à l'étape précédente.

   ```
   aws iam create-policy \
       --policy-name AWSLoadBalancerControllerIAMPolicy \
       --policy-document file://iam_policy.json
   ```
**Note**  
Si vous consultez la politique dans le AWS Management Console, la console affiche des avertissements pour le service **ELB**, mais pas pour le service **ELB v2**. Cela est dû au fait que certaines des actions de la politique sont disponibles pour **ELB v2**, mais pas pour **ELB**. Vous pouvez ignorer les avertissements relatifs au service **ELB**.

1. Remplacez les valeurs pour le nom du cluster, le code régional et l’ID du compte.

   ```
   eksctl create iamserviceaccount \
       --cluster=<cluster-name> \
       --namespace=kube-system \
       --name=aws-load-balancer-controller \
       --attach-policy-arn=arn:aws: iam::<AWS_ACCOUNT_ID>:policy/AWSLoadBalancerControllerIAMPolicy \
       --override-existing-serviceaccounts \
       --region <aws-region-code> \
       --approve
   ```

## Étape 2 : Installation du AWS Load Balancer Controller
<a name="lbc-helm-install"></a>

1. Ajoutez le référentiel de `eks-charts` diagrammes Helm. AWS maintient [ce dépôt](https://github.com/aws/eks-charts) activé GitHub.

   ```
   helm repo add eks https://aws.github.io/eks-charts
   ```

1. Mettez à jour votre référentiel local pour vous assurer que vous disposez des graphiques les plus récents.

   ```
   helm repo update eks
   ```

1. Installez le AWS Load Balancer Controller.

   Si vous déployez le contrôleur sur des EC2 nœuds Amazon ayant un [accès restreint au service de métadonnées d' EC2 instance Amazon (IMDS)](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node), ou si vous déployez sur des nœuds hybrides Fargate ou Amazon EKS, ajoutez les indicateurs suivants `helm` à la commande suivante :
   +  `--set region={{region-code}} ` 
   +  `--set vpcId={{vpc-xxxxxxxx}} ` 

     Remplacez {{my-cluster}} par le nom de votre cluster. Dans la commande suivante, `aws-load-balancer-controller` est le compte de service Kubernetes que vous avez créé à l'étape précédente.

     Pour plus d'informations sur la configuration du graphique de barre, consultez [values.yaml](https://github.com/aws/eks-charts/blob/master/stable/aws-load-balancer-controller/values.yaml) on. GitHub

     ```
     helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
       -n kube-system \
       --set clusterName=my-cluster \
       --set serviceAccount.create=false \
       --set serviceAccount.name=aws-load-balancer-controller \
       --version 1.14.0
     ```

**Important**  
Le graphique déployé ne reçoit pas automatiquement les mises à jour de sécurité. Vous devez effectuer manuellement une mise à niveau vers un graphique plus récent lorsqu'il sera disponible. Lors de la mise {{install}} à niveau, `upgrade` passez à la commande précédente.

La `helm install` commande installe automatiquement les définitions de ressources personnalisées (CRDs) pour le contrôleur. Ce n’est pas le cas de la commande `helm upgrade`. Si vous utilisez, `helm upgrade,` vous devez installer manuellement le CRDs. Exécutez la commande suivante pour installer CRDs :

```
wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml
kubectl apply -f crds.yaml
```

## Étape 3 : vérifier que le contrôleur est installé
<a name="lbc-helm-verify"></a>

1. Vérifiez que le contrôleur est installé.

   ```
   kubectl get deployment -n kube-system aws-load-balancer-controller
   ```

   L'exemple qui suit illustre un résultat.

   ```
   NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
   aws-load-balancer-controller   2/2     2            2           84s
   ```

   Vous recevez la sortie précédente si vous avez déployé à l'aide de Helm. Si vous avez déployé à l'aide du manifeste Kubernetes, vous n'avez qu'un seul réplica.

1. Avant d'utiliser le contrôleur pour provisionner AWS des ressources, votre cluster doit répondre à des exigences spécifiques. Pour plus d'informations, consultez [Routage du trafic des applications et du trafic HTTP avec des équilibreurs de charge Application Load Balancer](alb-ingress.md) et [Acheminer le trafic TCP et UDP avec des Network Load Balancers](network-load-balancing.md).