Installation AWS Load Balancer Controller avec Helm - Amazon EKS

Aidez à améliorer cette page

Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tous.

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.

Installation AWS Load Balancer Controller avec Helm

Cette rubrique décrit comment installer le AWS Load Balancer Controller en utilisant Helm, un gestionnaire de paquets pour Kubernetes, eteksctl. Le contrôleur est installé avec les options par défaut. Pour plus d'informations sur le contrôleur, notamment pour savoir comment le configurer à l'aide d'annotations, consultez le AWS Load Balancer Controller Documentation sur GitHub.

Dans les étapes suivantes, remplacez example values par vos propres valeurs.

Prérequis

Avant de commencer ce didacticiel, vous devez installer et configurer les outils et ressources suivants dont vous avez besoin pour créer et gérer un EKS cluster Amazon.

  • Helm installé localement.

Étape 1 : créer un IAM rôle à l'aide de eksctl

Note

Il vous suffit de créer un IAM rôle pour AWS Load Balancer Controller un par AWS compte. Vérifiez s'AmazonEKSLoadBalancerControllerRoleil existe dans la IAMconsole. Si ce rôle existe, passez directement àÉtape 2 : Installation AWS Load Balancer Controller.

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

    AWS
    $ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy.json
    AWS GovCloud (US)
    $ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/docs/install/iam_policy_us-gov.json
    $ mv iam_policy_us-gov.json iam_policy.json
  2. Créez une IAM politique à l'aide de la stratégie 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 ELBservice, mais pas pour le service ELBv2. Cela se produit parce que certaines des actions de la politique existent pour la ELBversion 2, mais pas pour ELB. Vous pouvez ignorer les avertissements relatifs à ELB.

Créer un IAM rôle à l'aide de eksctl
  • Remplacez my-cluster par le nom de votre cluster, 111122223333 par votre ID de compte, puis exécutez la commande. Si votre cluster se trouve dans AWS GovCloud (USA Est) ou AWS GovCloud (USA Ouest) Régions AWS, remplacez-le pararn:aws:. arn:aws-us-gov:

    $ eksctl create iamserviceaccount \ --cluster=my-cluster \ --namespace=kube-system \ --name=aws-load-balancer-controller \ --role-name AmazonEKSLoadBalancerControllerRole \ --attach-policy-arn=arn:aws:iam::111122223333:policy/AWSLoadBalancerControllerIAMPolicy \ --approve

Étape 2 : Installation AWS Load Balancer Controller

Installation AWS Load Balancer Controller en utilisant Helm V3
  1. Ajoutez le référentiel de eks-charts diagrammes Helm. AWS maintient ce dépôt activé GitHub.

    $ helm repo add eks https://aws.github.io/eks-charts
  2. Mettez à jour votre référentiel local pour vous assurer que vous disposez des graphiques les plus récents.

    $ helm repo update eks
  3. Installer la   AWS Load Balancer Controller.

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

    Pour plus d'informations sur la configuration de l'organigramme, reportez-vous à values.yamlla section suivante 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
    1. 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'EC2instance Amazon (IMDS), ou si vous déployez sur Fargate, ajoutez les indicateurs suivants à helm la commande suivante :

      • --set region=region-code

      • --set vpcId=vpc-xxxxxxxx

    2. Pour consulter les versions disponibles du Helm Chart et du Load Balancer Controller, utilisez la commande suivante :

      helm search repo eks/aws-load-balancer-controller --versions
    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 helm upgrade commande. Si vous utilisez, helm upgrade, vous devez installer manuellement le CRDsExécutez la commande suivante pour installer le kit . 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é

  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 effectué un déploiement à l'aide du Kubernetes manifeste, vous n'avez qu'une seule réplique.

  2. 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 Application d'itinéraire et HTTP trafic avec Application Load Balancers et Acheminement TCP and UDP trafic avec Network Load Balancers.