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 tout le monde.
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 des manifestes
Cette rubrique décrit comment installer le contrôleur en téléchargeant et en appliquant des Kubernetes manifestes. Vous pouvez afficher l'intégralité de la documentation
Dans les étapes suivantes, remplacez
par vos propres valeurs.example values
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.
-
Un EKS cluster Amazon existant. Pour en déployer un, consultez Commencez avec Amazon EKS.
-
Un fournisseur AWS Identity and Access Management (IAM) OpenID Connect (OIDC) existant pour votre cluster. Pour déterminer si vous en avez déjà un, ou pour en créer un, consultez Créez un IAM OIDC fournisseur pour votre cluster.
-
Assurez-vous que les versions de vos modules complémentaires Amazon VPC CNI plugin for Kubernetes,
kube-proxy
, et CoreDNS correspondent au moins à celles répertoriées dans Jetons de compte de service. -
Connaissance d' AWS Elastic Load Balancing. Pour plus d'informations, consultez le Guide de l'utilisateur Elastic Load Balancing.
-
Connaissance du service
Kubernetes et des ressources ingress .
Étape 1 : Configuration IAM
Note
Il vous suffit de créer un rôle pour AWS Load Balancer Controller un par AWS compte. Vérifiez s'AmazonEKSLoadBalancerControllerRole
il existe dans la IAMconsole
Créez une IAM politique.
-
Téléchargez une IAM politique AWS Load Balancer Controller qui lui permet de passer des appels AWS APIs en votre nom.
-
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.jsonNote
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.
Étape 2 : Installation cert-manager
Installez cert-manager
en utilisant l'une des méthodes suivantes pour injecter la configuration du certificat dans les webhooks. Pour plus d'informations, consultez le guide de démarragecert-manager
.
Nous vous recommandons d'utiliser le registre des quay.io
conteneurs pour l'installationcert-manager
. Si vos nœuds n'ont pas accès au registre des quay.io
conteneurs, installez-le à cert-manager
l'aide d'Amazon ECR (voir ci-dessous).
Étape 3 : Installation AWS Load Balancer Controller
Installation AWS Load Balancer Controller à l'aide d'un Kubernetes manifeste
-
Téléchargez la spécification du contrôleur. Pour plus d'informations sur le contrôleur, consultez la documentation
sur GitHub. curl -Lo v2_7_2_full.yaml https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/download/v2.7.2/v2_7_2_full.yaml
-
Effectuez les modifications suivantes dans le fichier.
-
Si vous avez téléchargé le fichier
v2_7_2_full.yaml
, exécutez la commande suivante pour supprimer la sectionServiceAccount
du manifeste. Si vous ne supprimez pas cette section, l'annotation requise que vous avez apportée au compte de service lors d'une étape précédente sera écrasée. La suppression de cette section préserve également le compte de service que vous avez créé à une étape précédente, si vous supprimez le contrôleur.$
sed -i.bak -e '612,620d' ./v2_7_2_full.yaml
Si vous avez téléchargé une version différente du fichier, ouvrez le fichier dans un éditeur et supprimez les lignes suivantes.
apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/name: aws-load-balancer-controller name: aws-load-balancer-controller namespace: kube-system ---
-
Remplacez
your-cluster-name
dans la sectionDeployment
spec
du fichier par le nom de votre cluster en remplaçant
par le nom de votre cluster.my-cluster
$
sed -i.bak -e 's|your-cluster-name|
my-cluster
|' ./v2_7_2_full.yaml -
Si vos nœuds n'ont pas accès aux référentiels ECR d'images EKS Amazon, vous devez extraire l'image suivante et la transférer vers un référentiel auquel vos nœuds ont accès. Pour plus d'informations sur l'extraction, l'identification et le transfert d'une image vers votre propre référentiel, consultez Copier une image de conteneur d'un référentiel vers un autre référentiel.
public.ecr.aws/eks/aws-load-balancer-controller:v2.7.2
Ajoutez le nom de votre registre au manifeste. La commande suivante suppose que le nom de votre référentiel privé est le même que celui du référentiel source et ajoute le nom de votre registre privé au fichier. Remplacez
par votre registre. Cette ligne suppose que vous avez nommé votre référentiel privé de la même manière que le référentiel source. Dans le cas contraire, remplacez le texte111122223333.dkr.ecr.
region-code
.amazonaws.comeks/aws-load-balancer-controller
après votre nom de registre privé par le nom de votre référentiel.$
sed -i.bak -e 's|public.ecr.aws/eks/aws-load-balancer-controller|
.amazonaws.com/eks/aws-load-balancer-controller|' ./v2_7_2_full.yaml111122223333
.dkr.ecr.region-code
-
(Obligatoire uniquement pour Fargate ou Restricted) IMDS
Si vous déployez le contrôleur sur des EC2 nœuds Amazon qui ont un accès restreint au service de métadonnées d'EC2instance Amazon (IMDS)
, ou si vous déployez sur Fargate, ajoutez le point ci-dessous. following parameters
- args:
[...] spec: containers: - args: - --cluster-name=
your-cluster-name
- --ingress-class=alb- --aws-vpc-id=
[...]vpc-xxxxxxxx
- --aws-region=region-code
-
-
Appliquez le fichier.
$
kubectl apply -f v2_7_2_full.yaml
-
Téléchargez l'attaque de l'homme du milieu (HDM)
IngressClass
etIngressClassParams
à votre cluster.$
curl -Lo v2_7_2_ingclass.yaml https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/download/v2.7.2/v2_7_2_ingclass.yaml
-
Appliquez le manifeste à votre cluster.
$
kubectl apply -f v2_7_2_ingclass.yaml
Étape 4 : vérifier que le contrôleur est installé
-
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.
-
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 Route TCP et UDP trafic avec Network Load Balancers.